#include <Servo.h>
Servo myservo;
int led = 13; //set first led on pin 13
int led2 = 12; // set second led on pin 12
int led3 = 11; // set third led on pin 11
int point of sale;
const int button1Pin = 2; //attach first switch to pin 2 (sweep)
const int button2Pin = 4; //attach second switch to pin 3 (sweep with delay)
const int button3Pin = 7; //attach third switch to pin 7 (point)
int button1State = 0;
int button2State = 0;
int button3State = 0;
int potpin = 0; //attach potentiometer (middle attachment point on potentiometer) to pin 0
int val;
void setup() {
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(button1Pin, INPUT);
pinMode(button2Pin, INPUT);
pinMode(button3Pin, INPUT);
myservo.attach(9); //servo signal wire is attached to pin 9 (power needs to be attached to vin will not operate on 3V or 5V)
}
void loop() {
button1State = digitalRead(button1Pin);
button2State = digitalRead(button2Pin);
button3State = digitalRead(button3Pin);
if (button1State == HIGH && button2State == LOW && button3State == LOW)
{
digitalWrite(led, HIGH);
for (point of sale = 80; point of sale <= 130; point of sale += 1) //set degrees for wavemaker turn angle (0-180) my setting is 80 to 130
{
val = analogRead(potpin);
myservo.write(point of sale);
delay(map(val, 0, 1023, 750, 15)); //delay is set from 15 milliseconds to 750 milliseconds, you can adjust as needed
Serial.println(point of sale);
}
for (point of sale = 130; point of sale >= 80; point of sale -= 1) //set degrees for wavemaker turn angle (0-180) my setting is 80 to 130
{
val = analogRead(potpin);
myservo.write(point of sale);
delay(map(val, 0, 1023, 750, 15)); //delay is set from 15 milliseconds to 750 milliseconds, you can adjust as needed
Serial.println(point of sale);;
}
}
else if (button1State == LOW && button2State == HIGH && button3State == LOW);
digitalWrite(led, LOW);
if (button1State == LOW && button2State == HIGH && button3State == LOW)
{
digitalWrite(led2, HIGH);
val = analogRead(potpin);
for (point of sale = 90; point of sale <= 130; point of sale += 1) //set degrees for wavemaker turn angle (0-180) my setting is 90 to 130
{
myservo.write(point of sale);
delay(40);
}
delay(map(val, 0, 1023, 60000, 1000)); //delay at end of sweep will be set from 1000 milliseconds (1 second) to 60,000 milliseconds (1 minute) depending on position of potentiometer. Can edit if necessary
for (point of sale = 130; point of sale >= 90; point of sale -= 1)//set degrees for wavemaker turn angle (0-180) my setting is 90 to 130
{
myservo.write(point of sale);
delay(40);
}
delay(map(val, 0, 1023, 60000, 1000)); //delay at end of sweep will be set from 1000 milliseconds (1 second) to 60,000 milliseconds (1 minute) depending on position of potentiometer. Can edit if necessary
}
else if (button1State == HIGH && button2State == LOW && button3State == LOW);
digitalWrite(led2, LOW);
if (button1State == LOW && button2State == LOW && button3State == HIGH)
{
digitalWrite(led3, HIGH);
val = analogRead(potpin);
val = map(val, 0, 1023, 60, 150);
myservo.write(val);
delay(15);
}
else if (button1State == LOW && button2State == LOW && button3State == LOW);
digitalWrite(led3, LOW);
}