Introduction: The Stretching Doorbell_Xumeng Mou

If you have this interesting doorbell hanging beside the door, absolutely more people would like to knock at your door! Although as the video mentions, the doorbell is designed to prevent somebody ringing your doorbell too frequently, however, as ringing the doorbell becomes an interesting interaction, maybe people would enjoy keeping ringing your doorbell just to have fun?

Wanna have it now? Lets do it!

Tools and materials:

A paper spring

A doorbell

Arduino Uno board

A momentary

A mini servo motor

Stiff wires or conduct thread

A needle

Conduct tape

Translucent plastic board

Hot glue

Scissor

Soldering iron

A transistor

A relay

A red LED

Assembly and wiring:


First, you need to fold a paper spring. Thread the needle with conductive thread, penetrate the paper spring in the center. Fix one side of the thread with conductive tape and solder the other side on the momentary.

Then, find a spot on the conduct thread between the paper spring and the momentary and tie it to the servo.

Tear down the push button of the doorbell and find out the way it is triggered. In my case there should be two coper circles once they are connected, the bell is triggered. So I soldered one wire on each circle.

Wiring like the picture.

The red LED is just for testing because you will not want to make too much noise by triggering the doorbell every minute.

Coding:

#include

Servo myservo; int pos = 0; const int touchPin = 12; const int servoPin = 10; const int ledPin =7;

int touchState = 0; int buttonPushCounter = 0; int lastButtonState = 0;

void setup() { myservo.attach(servoPin); pinMode(touchPin, INPUT); Serial.begin(9600); pinMode(ledPin, OUTPUT); }

void loop() { touchState = digitalRead(touchPin); if (touchState != lastButtonState){ if (touchState == HIGH){ digitalWrite(ledPin, LOW); } else { digitalWrite(ledPin, HIGH); buttonPushCounter++; myservo.write(180); for(int pos=180; pos>=0; pos--){ myservo.write(pos); delay(15); myservo.write(0); } delay(50); }

lastButtonState=touchState;

} }