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:

 

Nu sunt comentarii

Acest website foloseste cookie-uri pentru o experienta placuta in timpul navigarii.