Terug

Arduino 2 – Knop en Servomotor

Switch

  1. Bouw de volgende schakeling en upload de code die er onder staat:

    /*
      Digital pin 2 is connected to a switch
      Digital pin 13 is connected to a LED
     */
    
    void setup() {
      // initialize the LED pin as an output:
      pinMode(13, OUTPUT);
      // initialize the pushbutton pin as an input:
      pinMode(2, INPUT);
    }
    
    void loop() {
      // check if the pushbutton is pressed.
      // if it is, the buttonState is HIGH:
      if (digitalRead(2) == HIGH) {
        // turn LED on:
        digitalWrite(13, HIGH);
      } else {
        // turn LED off:
        digitalWrite(13, LOW);
      }
    }
    

Servomotor

  1. Laat de knop uit de vorige oefening aangesloten, maar sluit er nu een servomotor bij aan. Upload de onderstaande code.

    /*
      Digital pin 2 is connected to a switch
      Digital pin 6 is connected to a servo
     */
    
    #include <Servo.h> // include a special file that is needed for servo motors, do this only once
    
    Servo motor1; // create a servo object for each motor
    
    void setup() {
      // initialize the pushbutton pin as an input:
      pinMode(2, INPUT);
      // initialize the servo on pin 6
      motor1.attach(6);
    }
    
    void loop() {
      // check if the pushbutton is pressed.
      // if it is, the buttonState is HIGH:
      if (digitalRead(2) == HIGH) {
        // turn the motor in one direction:
        motor1.write(0);
      } else {
        // turn the motor in another direction:
        motor1.write(180);
      }
    }
    
  2. Lees de setup en loop functies en probeer elke zin te begrijpen. Tip: vertaal de comments naar je eigen woorden.

  3. Experimenteer wat er gebeurt als je in regel 22 en 25 andere getallen gebruikt dan 0 en 180. (Niet hoger dan 180)

Verdubbelen

  1. Sluit ook de tweede servomotor aan. Gebruik hiervoor een andere digitale poort met een ~ tekentje ervoor.
  2. In de code moet je natuurlijk ook aangeven dat je een tweede motor hebt.
    Zoek in je code naar elke regel waar motor1 genoemd wordt (het zijn er vier). Zet daaronder dezelfde regel, maar pas motor1 aan naar motor2. Geef in de setup functie aan op welke poort je motor2 aangesloten hebt.
    Tip: De namen motor1 en motor2 hebben we zelf bedacht, je kunt ze bijvoorbeeld ook motorLinks en motorRechts noemen, als je dat makkelijker vindt.

  3. Sluit ook de tweede knop aan, zodat je in totaal twee motoren en twee knoppen op de Arduino hebt aangesloten. Pas je code aan zodat elke knop een ándere motor bestuurt.

Gedrag programmeren

  1. Pas zelf je code aan zodat je robot zich als een Beetlebot gaat gedragen:
    ○ Normaal draaien allebei de wielen vooruit
    ○ Als de linker knop wordt ingedrukt, gaat het rechter wiel 250 milliseconden achteruit
    ○ Als de rechter knop wordt ingedrukt, gaat het linker wiel 250 milliseconden achteruit
    ○ Test het gedrag, en pas je code aan waar nodig

    Tip: je hebt delay( ) nodig, die heb je eerder gezien, bij het ‘Blink’ voorbeeld.