#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
Servo servo1;
Servo servo2;
Servo servo3;
int val1 = 0;
int val2 = 0;
int val3 = 0;
int prevVal1 = -1;
int prevVal2 = -1;
int prevVal3 = -1;
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
Serial.begin(115200);
Serial.println("เริ่ม");
servo1.attach(11);
servo2.attach(10);
servo3.attach(9);
lcd.begin(20, 4);
lcd.backlight();
}
void loop() {
val1 = analogRead(A0);
val2 = analogRead(A1);
val3 = analogRead(A2);
val1 = map(val1, 0, 1023, 0, 100);
val2 = map(val2, 0, 1023, 0, 100);
val3 = map(val3, 0, 1023, 0, 100);
servo1.write(map(val1, 0, 100, 0, 180));
servo2.write(map(val2, 0, 100, 0, 180));
servo3.write(map(val3, 0, 100, 0, 180));
Serial.print("val1: ");
Serial.print(val1);
Serial.print("%\tval2: ");
Serial.print(val2);
Serial.print("%\tval3: ");
Serial.println(val3 + "%");
if (val1 != prevVal1) {
lcd.setCursor(0, 0);
lcd.print("Val 1 : ");
lcd.print(val1);
lcd.print("% ");
prevVal1 = val1;
}
if (val2 != prevVal2) {
lcd.setCursor(0, 1);
lcd.print("Val 2 : ");
lcd.print(val2);
lcd.print("% ");
prevVal2 = val2;
}
if (val3 != prevVal3) {
lcd.setCursor(0, 2);
lcd.print("Val 3 : ");
lcd.print(val3);
lcd.print("% ");
prevVal3 = val3;
}
delay(500);
}