#include <Servo.h>
Servo arm; // Vytvorenie objektu "Servo" s názvom "arm"
float pos = 90.0; // Premenná, kde bude uložená poloha ramena (v stupňoch)
float step = 1.0; // Premenná použitá pre krok polohy ramena
void setup()
{
Serial.begin(9600); // Inicializácia sériovej komunikácie
// Nastavenie pinov A1 a A2 na vstupy v režime s interným pull-up rezistorom
DDRC &= ~(1 << PC1); // A1 (pin A1)
PORTC |= (1 << PC1); // Aktivácia interného pull-up rezistora pre A1
DDRC &= ~(1 << PC0); // A2 (pin A2)
PORTC |= (1 << PC0); // Aktivácia interného pull-up rezistora pre A2
// Pripojenie serva k pinu 2
arm.attach(2);
// Inicializácia polohy serva na 90 stupňov (stred)
arm.write(pos);
}
void loop()
{
// Kontrola stlačenia tlačidla A1
if (!(PINC & (1 << PC1)))
{
Serial.println("Button A1 pressed");
// Ak je poloha väčšia ako 0, posunieme ju o krok doľava
if (pos > 0)
{
pos -= step; // Dekrementácia polohy o hodnotu kroku
arm.write(pos); // Nastavenie polohy serva na hodnotu "pos"
delay(5); // Čakanie 5 ms, aby servo dosiahlo požadovanú polohu
}
}
// Kontrola stlačenia tlačidla A2
if (!(PINC & (1 << PC0)))
{
Serial.println("Button A2 pressed");
// Ak je poloha menšia ako 180, posunieme ju o krok doprava
if (pos < 180)
{
pos += step; // Inkrementácia polohy o hodnotu kroku
arm.write(pos); // Nastavenie polohy serva na hodnotu "pos"
delay(5); // Čakanie 5 ms, aby servo dosiahlo požadovanú polohu
}
}
}