Arduino UNO R4 - Knop - Servo Motor

In deze tutorial leren we hoe we een servo motor besturen met een knop met behulp van een Arduino Uno R4. Het indrukken van de knop zal de servo motor naar 90 graden draaien, en het opnieuw indrukken beweegt deze terug naar 0 graden. Dit proces herhaalt zich elke keer dat de knop wordt ingedrukt.

De tutorial is verdeeld in twee secties:

Dit project is geweldig voor beginners om servo motor controle, knop inputs en debouncing-technieken met Arduino Uno R4 te begrijpen.

Over Servo Motor en Knop

Als u niet bekend bent met servo motors en knoppen, inclusief hun pinout, hoe ze werken, of hoe u ze programmeert, raadpleeg dan de volgende tutorials voor meer informatie.

Bedradingsdiagram

Arduino UNO R4 Knop Servo Motor Bedradingsdiagram

This image is created using Fritzing. Click to enlarge image

Zie De beste manier om Arduino Uno R4 en andere componenten van stroom te voorzien.

Arduino UNO R4 Code - Knop Bestuurt Servo Motor Zonder Debouncing

/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-button-servo-motor */ #include <Servo.h> #define BUTTON_PIN 7 // The Arduino Uno R4 pin connected to button's pin #define SERVO_PIN 9 // The Arduino Uno R4 pin connected to servo motor's pin Servo servo; // create servo object to control a servo int angle = 0; // the current angle of servo motor int lastButtonState; // the previous state of button int currentButtonState; // the current state of button void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); currentButtonState = digitalRead(BUTTON_PIN); } void loop() { lastButtonState = currentButtonState; // save the last state currentButtonState = digitalRead(BUTTON_PIN); // read new state if(lastButtonState == HIGH && currentButtonState == LOW) { Serial.println("The button is pressed"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // control servo motor arccoding to the angle servo.write(angle); } }

Snelle Stappen

Volg deze instructies stap voor stap:

  • Als dit uw eerste keer is met de Arduino Uno R4 WiFi/Minima, raadpleeg dan de tutorial over het opzetten van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
  • Bedraad de componenten volgens het meegeleverde diagram.
  • Verbind het Arduino Uno R4 board met uw computer met behulp van een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Selecteer het juiste Arduino Uno R4 board (bijv. Arduino Uno R4 WiFi) en COM-poort.
  • Kopieer en plak de bovenstaande code in de Arduino IDE.
  • Klik op de Upload knop in de Arduino IDE om de code over te dragen naar de Arduino UNO R4.
  • Druk meerdere keren op de knop.
  • Observeer de beweging van de servo motor.

※ Notiz:

Soms werkt de gegeven code niet goed. Om ervoor te zorgen dat het altijd correct functioneert, moeten we knop debouncing gebruiken. Knop debouncing kan uitdagend zijn voor beginners. Met behulp van de ezButton library wordt het echter veel gemakkelijker.

Arduino UNO R4 Code - Knop Bestuurt Servo Motor Met Debouncing

Waarom is debouncing belangrijk? ⇒ zie Arduino UNO R4 - Knop Debounce tutorial

/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-button-servo-motor */ #include <Servo.h> #include <ezButton.h> #define BUTTON_PIN 7 // The Arduino Uno R4 pin connected to button's pin #define SERVO_PIN 9 // The Arduino Uno R4 pin connected to servo motor's pin ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; Servo servo; // create servo object to control a servo int angle = 0; // the current angle of servo motor void setup() { Serial.begin(9600); // initialize serial button.setDebounceTime(50); // set debounce time to 50 milliseconds servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); } void loop() { button.loop(); // MUST call the loop() function first if(button.isPressed()) { Serial.println("The button is pressed"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // control servo motor arccoding to the angle servo.write(angle); } }

Snelle Stappen

  • Installeer de ezButton library. Zie Hoe Te Doen
  • Kopieer de code en open deze in Arduino IDE
  • Klik op de Upload knop in Arduino IDE om de code over te dragen naar Arduino UNO R4
  • Druk meerdere keren op de knop
  • Observeer hoe de servo motor beweegt

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!