ESP32 - MG996R

In deze handleiding gaan we leren hoe u de MG996R high-torque servo motor kunt gebruiken met ESP32.

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB Kabel Type-C
1×MG996R Servomotor
1×Jumper Draden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de Servo Motor

De MG996R servo motor is een high-torque (hoog koppel) servo motor die in staat is om tot 15 kg gewicht te tillen. De motor kan zijn as draaien van 0° tot 180°, wat precieze controle over de hoekpositie mogelijk maakt. Voor basisinformatie over servo motoren verwijzen we u naar de ESP32 - Servo Motor handleiding.

Pinout

De MG996R servo motor die in dit voorbeeld wordt gebruikt, heeft drie pinnen:

  • VCC pin: (meestal rood) moet worden aangesloten op VCC (4.8V – 7.2V)
  • GND pin: (meestal zwart of bruin) moet worden aangesloten op GND (0V)
  • Signaal pin: (meestal geel of oranje) ontvangt het PWM besturingssignaal van een pin van de ESP32.
MG996R Servo Motor Pinout

Bedradingsschema

Omdat de MG996R een high-torque servo motor is, verbruikt deze motor veel stroom. We mogen deze motor daarom niet voeden via de 5V pin van de ESP32. In plaats daarvan moeten we een externe voeding gebruiken voor de MG996R servo motor.

ESP32 MG996R Servo Motor Wiring Diagram

This image is created using Fritzing. Click to enlarge image

ESP32 Code

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-mg996r */ #include <ESP32Servo.h> Servo servo; // maak een servo object om een servo te besturen void setup() { servo.attach(9); // koppelt de servo aan pin 9 servo.write(0); // roteer langzaam de servo meteen naar 0 graden } void loop() { for (int angle = 0; angle <= 180; angle += 1) { // draai langzaam van 0 naar 180 graden, stap voor stap per graad // in stappen van 1 graad servo.write(angle); // stuur de servo naar positie 'angle' delay(10); // wacht 10 ms zodat de servo de positie bereikt } for (int angle = 180; angle >= 0; angle -= 1) { // draai van 180 naar 0 graden, stap voor stap per graad servo.write(angle); // stuur de servo naar positie 'angle' delay(10); // wacht 10 ms zodat de servo de positie bereikt } }

Snel aan de slag

  • Als u voor het eerst met ESP32 werkt, bekijk dan hoe u de omgeving instelt voor ESP32 op Arduino IDE.
  • Maak de bedrading zoals afgebeeld in de afbeelding hierboven.
  • Sluit de ESP32 aan op uw pc via een micro USB-kabel.
  • Open de Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 bord (bijv. ESP32 Dev Module) en COM-poort.
  • Klik op het Libraries icoon in de linker zijbalk van de Arduino IDE.
  • Typ ESP32Servo in het zoekvak en zoek de servo bibliotheek van Kevin Harrington, John K. Bennett.
  • Klik op de Install knop om de servo motor bibliotheek voor ESP32 te installeren.
ESP32 servo motor library
  • Verbind ESP32 met uw pc via USB-kabel
  • Open Arduino IDE, selecteer het juiste bord en de juiste poort
  • Kopieer de bovenstaande code en open deze in Arduino IDE
  • Klik op de Upload knop in Arduino IDE om de code naar ESP32 te uploaden
Arduino IDE - Hoe code uploaden
  • Bekijk het resultaat: de servo motor draait langzaam van 0 naar 180° en draait daarna langzaam terug van 180 naar 0°

Code Uitleg

Lees de regel-voor-regel uitleg in de commentaarregels van de code!

Hoe de Snelheid van de Servo Motor te Beïnvloeden

Met behulp van de map() en millis() functies kunnen we de snelheid van de servo motor vloeiend regelen zonder andere code te blokkeren.

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-mg996r */ #include <ESP32Servo.h> Servo myServo; unsigned long MOVING_TIME = 3000; // beweegtijd is 3 seconden unsigned long moveStartTime; int startAngle = 30; // 30° int stopAngle = 90; // 90° void setup() { myServo.attach(9); moveStartTime = millis(); // start de beweging // TODO: andere code } void loop() { unsigned long progress = millis() - moveStartTime; if (progress <= MOVING_TIME) { long angle = map(progress, 0, MOVING_TIME, startAngle, stopAngle); myServo.write(angle); } // TODO: andere code }

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!