Dzień 7 - Piny analogowe, potencjometr, serwo

Dzień 7 - Piny analogowe, potencjometr, serwo
Photo by Sahand Babali / Unsplash

include <Servo.h>

Servo serwo; // Tworzymy obiekt typu Servo

int pinPotencjometru = A0; // Ustawienie potencjometru na pinie analogowym A0
int wartoscPotencjometru; // Przechowuje wartość odczytaną z potencjometru
int katSerwa; // Kąt do ustawienia na serwomechanizmie

void setup() {
serwo.attach(9); // Podłącz serwomechanizm do pinu cyfrowego 9
Serial.begin(9600); // Rozpoczynamy komunikację szeregową dla monitorowania
}

void loop() {
wartoscPotencjometru = analogRead(pinPotencjometru); // Odczytaj wartość z potencjometru (0-1023)

// Mapowanie wartości potencjometru (0-1023) na zakres 0-3
int zmapowanaWartosc = map(wartoscPotencjometru, 0, 1023, 0, 3);

// Zależnie od zmapowanej wartości ustaw odpowiedni kąt obrotu serwomechanizmu
if (zmapowanaWartosc == 0) {
katSerwa = 0;
} else if (zmapowanaWartosc == 1) {
katSerwa = 22.5;
} else if (zmapowanaWartosc == 2) {
katSerwa = 45;
} else if (zmapowanaWartosc == 3) {
katSerwa = 90;
}

// Ustawienie kąta serwomechanizmu
serwo.write(katSerwa);

// Wyświetlanie wartości na monitorze szeregowym
Serial.print("Wartość potencjometru: ");
Serial.print(wartoscPotencjometru);
Serial.print(" | Zmapowana wartość: ");
Serial.print(zmapowanaWartosc);
Serial.print(" | Kąt serwa: ");
Serial.println(katSerwa);

delay(100); // Krótkie opóźnienie, aby odczyty były bardziej stabilne
}