Project 5: een servomotor aansturen met een knopje

Welkom terug bij ons volgend spannend project! Tot nu toe heb je geleerd hoe je LEDs kunt laten knipperen en hoe je een LED of een buzzer kunt aansturen met een knopje. Vandaag gaan we een stapje verder door te leren hoe je een servomotor kunt aansturen met een knopje. Dit is een geweldige manier om te ontdekken hoe je bewegingen kunt controleren met Arduino. Laten we aan de slag gaan!

Stap 1: het circuit bouwen

Wat is een servomotor?

Een servomotor is een speciaal soort motor waarmee je precieze bewegingen kunt maken. Je kunt de servo bijvoorbeeld laten draaien naar een specifieke hoek, zoals 90 graden, 45 graden, of helemaal van 0 tot 180 graden. Dit is anders dan gewone motoren, die meestal gewoon blijven draaien.

Benodigdheden:
  • 1x Arduino Uno
  • 1x servomotor
  • 1x drukknop (push button)
  • 1x weerstand van 10kΩ (voor het knopje) (kleuren: bruin-zwart-oranje-goud)
  • 6x man-man jumper wires

Hier is hoe je alles met elkaar verbindt:

  • Verbind de 5V-pin met de rode rij
    • Door de 5V-pin van de Arduino met de rode rij van het breadboard te verbinden, kun je de 5V gemakkelijk gebruiken voor verschillende componenten op het breadboard. Dit maakt het aansluiten van meerdere 5V-componenten eenvoudiger en overzichtelijker.
  • Servo Aansluiten:
    • Rode draad (VCC) van de servo naar de rode rij op het breadboard.
    • Bruine draad (GND) van de servo naar een GND-pin op de Arduino.
    • Oranje draad (Signaal) van de servo naar pin 9 op de Arduino.
  • Knopje Aansluiten:
    • Verbind de pin linksboven op het knopje met de rode rij op het breadboard.
    • Verbind de pin rechtsboven op het knopje met pin 2 van je Arduino.
    • Verbind de pin rechtsonder op het knopje met het ene uiteinde van de 10kΩ weerstand en het andere uiteinde met de GND-pin op je Arduino.
Schema:
Les 5 circuit

Stap 2: De code schrijven

Nu we het circuit hebben opgebouwd, is het tijd om de code te schrijven die de servomotor zal aansturen als het knopje is ingedrukt.

Open de Arduino IDE en volg deze stappen:

#include <Servo.h>  // Inclusief de Servo-bibliotheek

Servo myServo;  // Creëer een Servo-object

int knopStatus; // Maak een  variabele
void setup() {
  myServo.attach(9);  // Verbind de servo met pin 9
  pinMode(2, INPUT);  // Stel pin 2 in als ingang voor het knopje
}
void loop() {
  int knopStatus = digitalRead(2);  // Lees de status van het knopje
  if (knopStatus == HIGH) {
    myServo.write(180);  // Draai de servo naar 180 graden
    delay(1000);         // Wacht 1 seconde
    myServo.write(0);    // Draai de servo terug naar 0 graden
    delay(1000);         // Wacht nog 1 seconde
  }
}

Wat doet deze code?

  • Servo myServo;: Dit maakt een object aan waarmee we de servo kunnen aansturen.
  • myServo.attach(9);: Dit verbindt de servo met pin 9 van de Arduino.
  • digitalRead(2);: Leest de status van het knopje. Als het knopje is ingedrukt (HIGH), dan…
  • myServo.write(180);: Draaien we de servo naar 180 graden.
  • delay(1000);: Wacht 1 seconde.
  • myServo.write(0);: Draai de servo terug naar 0 graden.
  • delay(1000);: Wacht weer 1 seconde.

 

Stap 3: De code uploaden

  1. Klik links op het middelste icoontje (stapeltje boeken) en zoek servo. Klik op de bovenste install.
  2. Sluit je Arduino aan op je computer met de USB-kabel.
  3. Klik op de uploadknop (pijltje) in de Arduino IDE om de code naar je Arduino te sturen.
  4. (Kies “Select board” en selecteer “Arduino Uno”.)

Als alles goed is gegaan, zal de servomotor draaien van 0 naar 180 graden en weer terug naar 0 zodra je het knopje indrukt.

Gefeliciteerd! 🎉

Je hebt nu geleerd hoe je een servomotor kunt aansturen met een knopje. Dit opent de deur naar allerlei coole projecten waarbij je iets kunt laten bewegen met een druk op de knop! Wat zou je de volgende keer willen proberen? Misschien een robotarm of een bewegend kunstwerk? De mogelijkheden zijn eindeloos!

qoute symbool

"Eén servomotor is het begin van een hele robot!"

Schrijf een comment

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

logo

Copyright © 2024 Arduinolessen.org | Gebouwd door Arduinolessen.org