Skip to content

Commit 77b5069

Browse files
committed
added INPUT_PULLUP and necessary changes
1 parent f2256cf commit 77b5069

File tree

1 file changed

+27
-17
lines changed

1 file changed

+27
-17
lines changed

examples/Wiper/Wiper.ino

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
/*
2-
Using a servo as a car Wiper, activated by switch.
2+
Using a servo as a car Wiper, activated by switch.
33
4-
modified on 19 March 2020
5-
by Durgesh Pachghare
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
610
*/
711

812
#include <Servo.h>
@@ -14,26 +18,32 @@ int val; // variable to read the value from the analog pin
1418
int startpos = 10; //angle from which the servo wiper starts
1519
int endpos = 145; //angle till the servo wiper rotates
1620

17-
void setup()
21+
void setup()
1822
{
1923
myservo.attach(9); // attaches the servo on pin 9 to the servo object
20-
pinMode(button_pin,INPUT); //declares the pin as digital input
24+
pinMode(button_pin, INPUT_PULLUP); //declares the pin as digital input
2125
myservo.write(startpos); // Initialize the servo wiper to start angle
26+
pinMode(13, OUTPUT);
2227
}
2328

24-
void loop()
29+
void loop()
2530
{
26-
if(digitalRead(button_pin)) //Start the servo if the button is pressed and complete the entire rotation regardless of button state later
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(13, 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 15ms 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
2743
{
28-
for (int pos = startpos; pos <= endpos; pos += 1) // goes from starting angle to end angle in steps of 1 degree
29-
{
30-
myservo.write(pos); // tell servo to go to position in variable 'pos'
31-
delay(15); // waits 15ms for the servo to reach the position
32-
}
33-
for (int pos = endpos; pos >= startpos; pos -= 1) // goes from end angle to start angle again
34-
{
35-
myservo.write(pos); // tell servo to go to position in variable 'pos'
36-
delay(15); // waits 15ms for the servo to reach the position
37-
}
44+
myservo.write(pos); // tell servo to go to position in variable 'pos'
45+
delay(5); // waits 15ms for the servo to reach the position
3846
}
47+
}
48+
digitalWrite(13, LOW); //status that wiper servo has stopped
3949
}

0 commit comments

Comments
 (0)