// https://wokwi.com/projects/344912588111348306
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = A0; // analog pin used to connect the potentiometer
int servoPin = 6;
int VCC2 = 5;
int val; // variable to read the value from the analog pin
int buttonValue = 0;
int button = 7;
int ledComplete = 9;
int ledAcute = 10;
int ledRight = 11;
int ledObtuse = 12;
int ledStraight = 13;
//#include <LiquidCrystal_I2C.h>
//#include <Wire.h>
//LiquidCrystal_I2C lcd(0x27, 16, 2);
//int VCC3 = 4;
int degPos;
String angleType;
void setup(){
Serial.begin(9600); // setup serial
myservo.attach(servoPin ); // attaches the servo on pin 9 to the servo object
pinMode(button, INPUT_PULLUP);
pinMode(ledComplete, OUTPUT);
pinMode(ledAcute, OUTPUT);
pinMode(ledRight, OUTPUT);
pinMode(ledObtuse, OUTPUT);
pinMode(ledStraight, OUTPUT);
pinMode(VCC2, HIGH);
digitalWrite(VCC2, HIGH);
//pinMode(VCC3, HIGH);
//digitalWrite(VCC3, HIGH);
// lcd.begin();
// lcd.backlight();
}
void loop(){
digitalWrite(ledComplete, LOW);
digitalWrite(ledAcute, LOW);
digitalWrite(ledRight, LOW);
digitalWrite(ledObtuse, LOW);
digitalWrite(ledStraight, LOW);
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180)
Serial.print(val);
Serial.println();
buttonValue = digitalRead(button);
if(buttonValue == 0){
val = 90;
}
if(val == 0){
digitalWrite(ledComplete, HIGH);
angleType = "Complete Angle";
val = 0;
}
if(val > 0 && val <90){
digitalWrite(ledAcute, HIGH);
angleType = "Acute Angle";
val = val;
}
if(val == 90){
digitalWrite(ledRight, HIGH);
angleType = "Right Angle";
val = 90;
}
if(val > 90 && val < 179){
digitalWrite(ledObtuse, HIGH);
angleType = "Obtuse Angle";
val = val;
}
if(val > 178){
digitalWrite(ledStraight, HIGH);
angleType = "Straight Angle";
val = 180;
}
myservo.write(val); // sets the servo position according to the scaled value
//lcd.clear();
//lcd.print(angleType);
//lcd.setCursor (0, 1);
//lcd. print("Angle: ");
//lcd.setCursor (8, 1);
//lcd.print(val);
if(val > 99){
degPos = 11;
}
if(val > 9 && val < 100){
degPos = 10;
}
if(val >= 0 && val < 10){
degPos = 9;
}
//lcd.setCursor(degPos, 1);
//lcd.print((char)223);
delay(200); // waits for the servo to get there
}