Skip to content

Commit 54539ed

Browse files
committed
Add an example 'wiper'
1 parent 2e973f6 commit 54539ed

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

examples/Wiper/Wiper.ino

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/*
2+
Using a servo as a car Wiper, activated by switch.
3+
4+
The circuit:
5+
- switch is attached from pin 2 to ground
6+
- Servo's signal pin is attached to Pin 9
7+
8+
modified on 21 March 2020
9+
by Durgesh Pachghare
10+
*/
11+
12+
#include <Servo.h>
13+
14+
Servo myservo; // create servo object to control a servo
15+
16+
int button_pin = 2; // digital pin used to connect the button input
17+
int val; // variable to read the value from the analog pin
18+
int startpos = 10; //angle from which the servo wiper starts
19+
int endpos = 145; //angle till the servo wiper rotates
20+
21+
void setup()
22+
{
23+
myservo.attach(9); // attaches the servo on pin 9 to the servo object
24+
pinMode(button_pin, INPUT_PULLUP); //declares the pin as digital input
25+
myservo.write(startpos); // Initialize the servo wiper to start angle
26+
pinMode(LED_BUILTIN, OUTPUT); // to show the state of servo wiper
27+
}
28+
29+
void loop()
30+
{
31+
// The button_pin is declared as INPUT_PULLUP which means switch logic is inverted.
32+
// It gives LOW when the switch is pressed and HIGH when it is open
33+
if (digitalRead(button_pin) == LOW) // Start the servo if the button is pressed and complete the
34+
// entire rotation regardless of button state later
35+
{
36+
digitalWrite(LED_BUILTIN, HIGH); // status that wiper servo is activated
37+
for (int pos = startpos; pos <= endpos; pos += 1) // goes from starting angle to end angle in steps of 1 degree
38+
{
39+
myservo.write(pos); // tell servo to go to position in variable 'pos'
40+
delay(5); // waits for the servo to reach the position
41+
}
42+
for (int pos = endpos; pos >= startpos; pos -= 1) // goes from end angle to start angle again
43+
{
44+
myservo.write(pos); // tell servo to go to position in variable 'pos'
45+
delay(5); // waits for the servo to reach the position
46+
}
47+
}
48+
digitalWrite(LED_BUILTIN, LOW); //status that wiper servo has stopped
49+
}

0 commit comments

Comments
 (0)