Filipove Programy pre Arduino

Zo stránky Robotický krúžok
Skočit na navigaci Skočit na vyhledávání

Na robotickom krúžku som pracoval s Arduinom a servom. Tu si môžete pozrieť video:


Program:

#define SERVO_PIN 5     

int position;
char c=0;

void setup() {
  pinMode(SERVO_PIN, OUTPUT);
  Serial.begin(9600);
  position = 90;
}

void set_servo(long angle)
{
  // tu poslite pulz podla hodnoty angle
  // ked je angle == 0, tak cas = 500
  // ked je angle == 180, tak cas = 2500
  // hocico medzitym umerne
  int cas = angle * 100 / 9;
  digitalWrite(SERVO_PIN,HIGH);
  delayMicroseconds(cas);
  digitalWrite(SERVO_PIN,LOW);
}

void show_servo(int angle)
{
  Serial.print("setting servo to ");
  Serial.print(angle);
  Serial.println(" degrees.");
}

void loop()
{
    if (Serial.available())
    {
       c = Serial.read();
       if (c == '+')
       {
          if (position < 180) position+=7;          
       }
       else if (c == '-')
       {
          if (position > 0) position-=7;
       }
       show_servo(position);     
    }
    set_servo(position);
    delay(20);
}