ESP32 - Actuator

Deze handleiding legt uit hoe u een ESP32 gebruikt om een lineaire actuator aan te sturen. We gaan in detail behandelen:

Deze tutorial is voor een lineaire actuator zonder feedback. Wilt u leren over lineaire actuators met feedback? Bekijk dan deze ESP32 - Actuator met Feedback tutorial.

Vereiste hardware

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Lineaire actuator
1×L298N Motordriver Module
1×12V Voeding adapter
1×(Optioneel) DC Power Jack
1×Breadboard (experimenteerprint)
1×Jumper wires
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 lineaire actuator

Lineaire actuator uitschuiven/intrekken

Aansluitingen lineaire actuator

Een lineaire actuator heeft twee draden:

  • Positieve draad: meestal rood
  • Negatieve draad: meestal zwart
Aansluitingen lineaire actuator

Hoe het werkt

Als u een lineaire actuator koopt, is het belangrijk om te weten op welke spanning de actuator werkt. We nemen een 12V lineaire actuator als voorbeeld.

Wanneer u de 12V actuator aansluit op een 12V voeding:

  • 12V en GND respectievelijk op de positieve en negatieve draad: de lineaire actuator schuift met maximale snelheid uit totdat hij de eindstand bereikt.
  • 12V en GND op de negatieve en positieve draad: de actuator trekt met maximale snelheid in totdat hij de eindstand bereikt.

Als u het vermogen onderbreekt tijdens het uitschuiven/intrekken (GND op beide draden), stopt de actuator direct met bewegen.

※ Notiz:

Voor DC-motoren, servo motoren en stappenmotoren zonder tandwieloverbrenging geldt dat bij het stoppen van de voeding de positie niet kan worden vastgehouden onder belasting. In tegenstelling tot deze motoren kan een lineaire actuator wél zijn positie behouden wanneer de voeding stopt, zelfs onder belasting.

Wanneer de voeding van de lineaire actuator onder 12V ligt, blijft deze wel uitschuiven/intrekken maar niet op maximale snelheid. Dit betekent dat door het aanpassen van de voedingsspanning ook de snelheid van de actuator verandert. Deze methode wordt echter zelden gebruikt vanwege de moeilijkheid om de voedingsspanning nauwkeurig te regelen. In plaats daarvan wordt de voedingsspanning vastgezet en wordt de snelheid van de lineaire actuator geregeld via een PWM-signaal. Hoe hoger de duty cycle van de PWM, hoe hoger de snelheid van uitschuiven/intrekken.

Hoe een lineaire actuator te besturen

Hoe een lineaire actuator te besturen met ESP32

Het besturen van een lineaire actuator omvat:

  • Het uitschuiven van de actuator met maximale snelheid
  • Het intrekken van de actuator met maximale snelheid
  • (optioneel) Het regelen van de snelheid tijdens het uitschuiven/intrekken

De ESP32 genereert het besturingssignaal voor de actuator. Dit signaal heeft echter een lage spanning en stroom, en kan niet direct de lineaire actuator aansturen. Daarom is een driver nodig tussen de ESP32 en de actuator. De driver vervult twee functies:

  • Het versterken van het aansturingssignaal van de ESP32 (zowel stroom als spanning)
  • Het ontvangen van een tweede aansturingssignaal van de ESP32 om de polariteit van de voeding om te keren → voor het regelen van de draairichting

※ Notiz:

  • Deze handleiding is toepasbaar op alle lineaire actuators. De 12V actuator is slechts een voorbeeld.
  • Bij een 5V lineaire actuator, ook al levert de ESP32-pin 5V (gelijke spanning als de actuator), is een driver toch nodig omdat de ESP32-pin niet genoeg stroom kan leveren voor de actuator.

Er zijn meerdere chips en modules (bijvoorbeeld L293D, L298N) die als driver kunnen dienen voor lineaire actuators. In deze tutorial maken we gebruik van de L298N driver.

※ Notiz:

Ook relais kunnen als driver worden gebruikt. Hiervoor zijn echter 4 relais nodig om één lineaire actuator te besturen (voor zowel uitschuiven als intrekken).

Over de L298N Driver

De L298N driver kan gebruikt worden om lineaire actuators, DC-motoren en stappenmotoren te besturen. In deze tutorial leert u hoe u de L298N inzet voor het aansturen van een lineaire actuator.

L298N Driver aansluitingen

L298N Driver Aansluitingen

De L298N driver beschikt over twee kanalen, kanaal A en kanaal B. Hierdoor kan hij twee lineaire actuators onafhankelijk tegelijk aansturen. Stel dat lineaire actuator A is aangesloten op kanaal A en lineaire actuator B op kanaal B. De L298N driver heeft 13 pins:

Gemeenschappelijke pins voor beide kanalen:

  • VCC pin: levert spanning aan de lineaire actuator, tussen 5 en 35V
  • GND pin: gemeenschappelijke massa (0V), moet verbonden zijn met GND
  • 5V pin: voeding voor de L298N-module, kan gevoed worden door 5V van de ESP32

Kanaal A pins:

  • ENA pin: wordt gebruikt om de snelheid van lineaire actuator A te regelen. Door de jumper te verwijderen en de ENA-pin te verbinden met een PWM-uitgang van de ESP32 kunt u de snelheid regelen.
  • IN1 en IN2 pins: regelen de bewegingsrichting van de actuator. Als één van beide HIGH is en de ander LOW, schuift de actuator uit of trekt hij in. Als beide inputs gelijk zijn (beide HIGH of beide LOW), stopt de actuator.
  • OUT1 en OUT2 pins: verbonden met lineaire actuator A

Kanaal B pins:

  • ENB pin: om de snelheid van lineaire actuator B te regelen (werkt hetzelfde als ENA)
  • IN3 en IN4 pins: voor het regelen van de rijrichting van actuator B (zelfde principe als IN1 en IN2)
  • OUT3 en OUT4 pins: verbonden met lineaire actuator B

Zoals hierboven beschreven, heeft de L298N driver twee voedingsspanningen nodig:

  • Eén voor de lineaire actuator (VCC en GND): tussen 5 en 35V
  • Eén voor de interne werking van de L298N module (5V en GND): tussen 5 en 7V

De L298N driver heeft daarnaast drie jumpers voor geavanceerde toepassingen. Voor deze tutorial adviseert het weghalen van alle jumpers op de L298N driver voor eenvoud.

Met een ESP32 en de L298N driver kunt u twee lineaire actuators onafhankelijk van elkaar aansturen. Voor het aansturen van elke actuator zijn slechts drie ESP32-pinnen nodig.

※ Notiz:

Deze tutorial behandelt de besturing van een lineaire actuator op kanaal A. Het besturen van een tweede actuator op kanaal B werkt op dezelfde manier.

Hoe een lineaire actuator aan te sturen

We leren hoe u een lineaire actuator aanstuurt met een L298N driver.

Bedradingsschema

Verwijder alle drie de jumpers van de L298N-module voordat u gaat bedraden.

ESP32 Lineaire Actuator L298N Driver Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Hoe een lineaire actuator uitschuiven/intrekken

De bewegingsrichting van een lineaire actuator wordt geregeld door een HIGH of LOW signaal op IN1 en IN2. De onderstaande tabel toont de aansturingslogica voor beide kanalen.

IN1 pin IN2 pin Richting
LOW LOW Lineaire actuator A stopt
HIGH HIGH Lineaire actuator A stopt
HIGH LOW Lineaire actuator A schuift uit
LOW HIGH Lineaire actuator A trekt in
  • Actuator A uitschuiven
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • Actuator A intrekken
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ Notiz:

De bewegingsrichting is omgekeerd als de OUT1 & OUT2 pinnen omgekeerd zijn aangesloten op de actuator. In dat geval hoeft u alleen OUT1 en OUT2 te verwisselen of de aansturingssignalen op IN1 en IN2 in uw code om te draaien.

Hoe een lineaire actuator stoppen met uitschuiven of intrekken

De lineaire actuator stopt automatisch wanneer hij bij de eindstand is aangekomen. U kunt hem ook programmeren om te stoppen voordat de eindstand is bereikt.

Er zijn twee manieren om de actuator te stoppen:

  • De snelheid instellen op 0
analogWrite(ENA_PIN, 0);
  • IN1 en IN2 pins beide hetzelfde signaal geven (beide LOW of beide HIGH)
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW);
  • Of
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH);

Hoe de snelheid van een lineaire actuator te regelen via de L298N driver

De snelheid van de actuator regelen is eenvoudig. In plaats van de ENA pin gewoon op HIGH te zetten, schakelen we een PWM-signaal naar de ENA pin. Dit kan door:

  • Een ESP32-pin te verbinden met de ENA-pin van de L298N
  • Het genereren van een PWM-signaal op de ENA-pin, bijvoorbeeld met de analogWrite() functie. De L298N module versterkt dit PWM-signaal naar de actuator.
analogWrite(ENA_PIN, speed); // speed is een waarde van 0 tot 255

De snelheid is een waarde tussen 0 en 255. Bij 0 stopt de actuator, bij 255 schuift of trekt hij met maximale snelheid.

Voorbeeldcode voor ESP32

De onderstaande code doet het volgende:

  • De actuator uitschuiven met maximale snelheid
  • De actuator stoppen
  • De actuator intrekken met maximale snelheid
  • De actuator stoppen
/* * 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-actuator */ #define ENA_PIN 27 // The ESP32 pin GPIO27 connected to the EN1 pin L298N #define IN1_PIN 26 // The ESP32 pin GPIO26 connected to the IN1 pin L298N #define IN2_PIN 25 // The ESP32 pin GPIO25 connected to the IN2 pin L298N // the setup function runs once when you press reset or power the board void setup() { // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } // the loop function runs over and over again forever void loop() { // extend the actuator digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); delay(20000); // actuator will stop extending automatically when reaching the limit // retracts the actuator digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); delay(20000); // actuator will stop retracting automatically when reaching the limit }

Snelle stappen

  • Verwijder alle drie de jumpers van de L298N-module
  • Kopieer bovenstaande code en plak deze in de Arduino IDE
  • Compileer en upload de code naar uw ESP32 bord door op de Upload knop te klikken in Arduino IDE
  • Observeer het volgende:
    • De lineaire actuator schuift uit en stopt wanneer de eindstand is bereikt
    • De actuator houdt de positie een tijdje vast
    • De actuator trekt in en stopt weer bij de eindstand
    • De actuator houdt weer even de positie vast
    • Dit proces wordt continu herhaald

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.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u bij het begrijpen van het gebruik van ESP32 met lineaire actuators.

Reacties

Gerelateerde Tutorials

※ 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!