Arduino UNO R4 - Servomotor

Deze tutorial leert u hoe u een servomotor kunt bedienen met een Arduino UNO R4. Specifiek gaan we leren:

Arduino UNO R4 Servo Motor

Over de Servomotor

Een servomotor is een component dat zijn arm kan draaien, meestal van 0 graden tot 180 graden. Het wordt gebruikt om de hoek van een object te besturen.

Pinout

Dit voorbeeld gebruikt een servomotor met drie pinnen:

  • VCC-pin: Verbind de rode draad met VCC (5 volt).
  • GND-pin: Verbind de zwarte of bruine draad met GND (0 volt).
  • Signaalppin: Verbind de gele of oranje draad om het PWM-regelsignaal van een Arduino UNO R4 pin te ontvangen.
Servo Motor Pinout

Bedradingsschema

Soms ziet u online bedradingsschema's die een verbinding tonen tussen de VCC-pin van een servomotor en de 5V-pin op het Arduino UNO R4 bord. Het is beter om deze methode te vermijden omdat dit het Arduino UNO R4 bord zou kunnen beschadigen.

Arduino UNO R4 Servo Motor Wiring Diagram

This image is created using Fritzing. Click to enlarge image

Om uw Arduino UNO R4 bord te beschermen, is het het beste om een externe voeding te gebruiken voor de servomotor. Het onderstaande bedradingsschema toont hoe u de servomotor op een externe voedingsbron aansluit.

Arduino UNO R4 servo motor external power supply wiring diagram

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.

Zorg ervoor dat u de GND (massa) van de externe voeding verbindt met de GND van het Arduino UNO R4 bord. Deze stap is zeer belangrijk voor een juiste werking.

Hoe Te Programmeren Voor Servomotor

  • Voeg de bibliotheek toe:
#include <Servo.h>
  • Maak een Servo-object aan:
Servo servo;

Als u meerdere servomotoren beheert, declareert u eenvoudig extra Servo-objecten.

Servo servo1; Servo servo2;
  • Verbind de regelpin van de Arduino UNO R4 met de signaalpin van de servomotor, zoals pin 9.
servo.attach(9);
  • Tot slot, draai de servomotor naar de hoek die u nodig heeft, zoals 90 graden.
servo.write(90);

Arduino UNO R4 Code

/* * 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-servo-motor */ #include <Servo.h> Servo servo; // Initialize a Servo object to manage a servo void setup() { servo.attach(9); // Connects the servo on pin 9 to the servo object servo.write(0); // Moves the servo to 0 degrees immediately upon startup } void loop() { for (int pos = 0; pos <= 180; pos += 1) { // Gradually move the servo from 0 to 180 degrees servo.write(pos); // Set servo position to 'pos' degrees delay(10); // Delay 10ms to allow the servo to reach the new position } for (int pos = 180; pos >= 0; pos -= 1) { // Gradually move the servo from 180 back to 0 degrees servo.write(pos); // Set servo position to 'pos' degrees delay(10); // Delay 10ms to allow the servo to reach the new position } }

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 instellen van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
  • Bedrading de componenten volgens het meegeleverde schema.
  • Verbind het Arduino Uno R4 bord met uw computer met een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Selecteer het juiste Arduino Uno R4 bord (bijv., Arduino Uno R4 WiFi) en COM-poort.
  • Plak bovenstaande code in Arduino IDE.
  • Druk op de Upload knop in Arduino IDE om code naar Arduino UNO R4 te verzenden.
Arduino IDE - How to Upload Code
  • Bekijk wat er gebeurt: De servomotor draait langzaam van 0 naar 180 graden en draait vervolgens langzaam terug van 180 naar 0 graden.

Code Uitleg

U kunt de uitleg zien in het commentaargedeelte van de Arduino-code hierboven.

Hoe De Snelheid Van Een Servomotor Te Regelen

Het gebruik van de map() en millis() functies stelt ons in staat om de snelheid van een servomotor soepel aan te passen terwijl andere code zonder onderbrekingen kan blijven draaien.

/* * 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-servo-motor */ #include <Servo.h> Servo servo; #define MOVING_TIME 3000 // Duration for the servo to move from startAngle to stopAngle unsigned long moveStartTime; // Timestamp when the servo starts moving int startAngle = 30; // Initial angle in degrees int stopAngle = 90; // Final angle in degrees void setup() { servo.attach(9); // Attach the servo on pin 9 to the servo object moveStartTime = millis(); // Initialize timer at the start of setup() // Additional initialization code can be added here } void loop() { unsigned long progress = millis() - moveStartTime; // Calculate elapsed time since start if (progress <= MOVING_TIME) { // During the defined MOVING_TIME period long angle = map(progress, 0, MOVING_TIME, startList and stopAngle); // Calculate intermediate servo angle servo.write(angle); // Set servo position to calculated angle } // Additional repetitive code can be added here }

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!