Arduino R3 Basic Servo With Button Project
This is a simple project showing how to connect an inexpensive servo to the Arduino which is button enabled.
ref : https://www.youtube.com/watch?v=ksNbEuhO4fU
Wiring Diagram
- 1 x Arduino
- 1 x Servo
- 1 x LED 9Light Emitting Diode)
- 1 x Button
- 1 x 1K ohm Resistor (Button)
- 1 x 330 ohm Resistor (LED)
- Blue Wire – Analogue Wire to determine if the button has been pressed.
- Red Wires – 5 Volts Power Wires.
- Black Wires – Ground Wires.
- Yellow Wires – Digital Signal Wires.
Arduino Sketch
// Includes #include <Servo.h> // include the servo library // Constants int baudRate = 115200; // set the baud rate value // Pins int buttonPin = A0; // set analog pin A0 as the button input pin int ledPin = 2; // set pin 2 as the output pin for the LED int servoPin = 9; // set pin 9 as the output pin for the servo // Initialize Values int buttonValue = 0; // set the initial value of the button to off int iDelay = 25; // set the delay value // Smoothing Variables float switchScaled; float switch1Smoothed; float switch1Prev; // Create Servo Servo servo1; // create the servo object void setup() { Serial.begin(baudRate); // start the serial terminal / plotter pinMode(ledPin, OUTPUT); // enable the LED output pin pinMode(buttonPin, INPUT); // enable the Button input pin servo1.attach(servoPin); // attach the servo to the pin servo1.writeMicroseconds(1200); // define the servo listening time } void loop() { buttonValue = digitalRead(buttonPin); // read the value of the button pin if (buttonValue != 0) { digitalWrite(ledPin, HIGH); // turn on the LED } else { digitalWrite(ledPin, LOW); // turn off the LED } switchScaled = buttonValue * 100; // value = 0 result = 0 else value = 1 result = 100 switch1Smoothed = (switchScaled * 0.05) + (switch1Prev * 0.95); // smooth the value switch1Prev = switch1Smoothed; // store the value for the next loop Serial.print(switchScaled); // print to serial terminal/plotter Serial.print(" , "); Serial.println(switch1Smoothed); servo1.writeMicroseconds(switch1Smoothed); // set the servo position delay(iDelay); }