Servo

Uit TrompBot
Naar navigatie springen Naar zoeken springen

Beginnen | Hardware | Software | Voorbeeldprogramma | Inkscape & lasersnijden | Errors & Tips | Kekbot | [TrompBot Website] | Trompbots | Percussie & ritme | Fioretti programma


Hardware

De servo is een motor die met de microcontroller aangestuurd kan worden.

Servo-aanlsuiting.png
Servo.gif

De servo heeft ook een sensor. Deze sensor meet de stand van de as. Als de as rechts of links moet draaien, dan geeft de sensor aan hoever hij nog moet draaien.

Het aansturen wordt gedaan door een bepaalde tijd het stuur-signaal van de servo hoog te maken. De stand van de servo is afhankelijk van hoe lang het signaal hoog is. Dat is te zien in de volgende grafiek.

Servo-puls.png


Software

Om de aanstuurpuls te maken met de Software moet je een paar opdrachten gebruiken:

Vertellen dat je een servo wilt gebruiken

Om een servo te gebruiken geeft je aan het begin van je programma alle servo's een naam.

Servo mijnServo;  // maak een Servo met de naam 'mijnServo'

Dit doe je aan het begin van je programma (voor setup() en loop() functie) De ServoNaam mag vanalles zijn (bijvoorbeeld arm of draai). Die naam gebruik je later weer om de servo iets te laten doen. Als je meerdere servos wilt gebruiken, moet je deze opdracht meerdere keren gebruiken, en iedere keer een andere ServoNaam verzinnen.

  Servo hooglaag; // de naam van de eerste servo
  Servo draai;    // de naam van de tweede servo

Verbinding maken met de servo

Dit doe je 1 keer in de setup() functie) voor ieder servo die je wilt gebruiken. pennummer is een getal. Dit is het nummer van de aansluitpen op de microcontroller. (in ons geval 10 of 11). ServoNaam is de naam die je eerder verzonnen hebt, toen je hebt verteld dat je een servo wou gebruiken.

void setup()
{
  mijnServo.attach(10);  // verbind de servo met de uitgang van aannsluitpen 10
}

Een nieuwe hoek in stellen

Dit kan je zo vaak je wilt doen in de setup() en loop() functie. De hoek loopt van 0 naar 180 graden. Dat is een halve omwenteling.

void loop()
{
  mijnServo.write(90); // ga naar stand 90 graden
}

Voorbeeldprogramma

Dit is een voorbeeldprogramma wat de hoek van de servo verandert als je op een knop drukt.