Pentru a comanda un sevomotor impreuna cu Arduino va trebui sa folosim un potentiometru.
Servomotorul se poate alimenta la +5V iar terminalul de comanda va fi conectat la pinul D7.
Pretul acestui servomotor este de 16 lei si poate fi achizitionat de aici.
Potentiometrul folosit are o valoarea de 10KiloOhmi si va fi legat in felul urmator: cursorul se leaga la pinul A7 iar celelalte 2 terminale le vom conecta la GND si +5V.
Displayul folosit este cel din acest articol.
Servomotorul este cel din fotografia de mai jos:

Sketchul folosit este urmatorul:
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x3F, 20, 4);
Servo servo;
int potentiometru = A7;
int motor = 7;
int citire, unghi1, unghi2, citire_veche;
byte celsius[] = {
B00110,
B01001,
B01001,
B00110,
B00000,
B00000,
B00000,
B00000
};
void setup() {
lcd.begin();
lcd.setCursor(0, 0);
lcd.print("Testare");
lcd.setCursor(0, 1);
lcd.print("servomotor");
lcd.setCursor(1, 3);
lcd.print("electronicstore.ro");
delay(3000);
lcd.clear();
lcd.createChar(0, celsius);
servo.attach(motor);
}
void loop() {
// put your main code here, to run repeatedly:
int citire = analogRead(potentiometru);
int unghi1 = map(citire, 0, 1023, 0, 180);
int unghi2 = map(citire, 0, 1023, 0, 100);
servo.write(unghi1);
lcd.setCursor(0, 0);
lcd.print("Potentiometru: ");
lcd.print(unghi2);
lcd.setCursor(17, 0);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Servomotor: ");
if (citire != citire_veche) {
lcd.print(" ");
} else {
lcd.print(unghi1);
}
lcd.setCursor(15, 1);
lcd.write(byte(0));
lcd.setCursor(1, 3);
lcd.print("electronicstore.ro");
delay(500);
citire_veche = citire;
}
Poze cu montajul functional sunt mai jos:



