Turning the potentiometer will turn the ventil valve by 0° to 90°.
#include <Wire.h> | |
#include <LiquidCrystal_I2C.h> | |
#include <Servo.h> | |
Servo myservo; | |
int servo_pos = 0; | |
LiquidCrystal_I2C lcd(0xbf, 16, 4); | |
int potenzio_pin = A0; | |
int potenzio_value = 0; | |
void setup() { | |
myservo.attach(9); | |
myservo.write(servo_pos); | |
lcd.begin(); | |
lcd.backlight(); | |
lcd.setCursor(0,0); | |
pinMode(potenzio_pin, INPUT); | |
read_potenzio(); | |
delay(3000); | |
} | |
void read_potenzio() { | |
potenzio_value = analogRead(potenzio_pin); | |
potenzio_value = potenzio_value - 10; | |
if (potenzio_value < 0) { | |
potenzio_value = 0; | |
} | |
if (potenzio_value > 1000) { | |
potenzio_value = 1000; | |
} | |
lcd.setCursor(0,0); | |
lcd.print("p: " + String(potenzio_value)+" "); | |
} | |
void loop() { | |
read_potenzio(); | |
servo_pos = int((float(potenzio_value)/1000)*9+0.5)*10; // 0 to 90° in 10° steps | |
lcd.setCursor(0,1); | |
lcd.print("s: " + String(servo_pos)+String(char(0xDF))+" "); | |
myservo.write(servo_pos); | |
delay(100); | |
} |