ESP8266 WiFi – Servo’s aansturen (SGXX) (NodeMCU)

Espressif logo

nodeMCU logo

Op deze pagina vind je een voorbeeld om via de ESP-01 module een servo (SG-XX) aan te sturen via de GPIO pinnen met de firmware NodeMCU.

Hardware

Servo SG90

BESTEL NU!

Deze mini servo’s kunnen 180 graden draaien (als je de beveiliging eruit haalt 360 graden), de servo wordt veelal gebruikt in vliegtuig modelbouw, andere toepassingen zijn uiteraard ook mogelijk.

Specificaties:

  • Modulatie: Analoog
  • Krachtkoppel: 1.80 kg-cm (op 4.8 volt)
  • Snelheid: 0.10 sec/60° (op 4.8 volt)
  • Motor Type: 3-polig
  • Tandwiel Type: Plastic
  • Maximale draairichting: 180°
  • Pulse breedte: 500-2400 µs

Pinout

Draadkleur:Functie:
Rood+5v
BruinGND
OranjeData (stuur signaal)

Hoe werkt het?

Deze mini servo werkt met PWM (Pulse Width Modulation), volgens de documentatie:

– ca. 2.5 ms puls voor positie naar rechts.
– 1.5 ms puls voor het midden.
– ca. 0.5 ms puls voor positie naar links.

Wat heb je nodig?

1) ESPlorer IDE

Sluit de servo aan volgens onderstaand schema:

esp8266 ESP-01 GPIO SERVO schema


Getest op firmware: nodemcu_float_0.9.6-dev_20150704.bin

Upload deze “library” code als servo.lua

Tip: Download de code sla het op als bestand, en gebruik de “Upload…” knop in ESPlorer.

Je kan nu bovenstaande bibliotheek aanroepen om de servo te configureren en in te stellen:

require('servo')


De hoek van de servo (1 t/m 180 graden) kan ingesteld worden met een getal tussen de 0 en 2000, met deze functie kun je de pin van de servo instellen en de juiste draaihoek (praktijktest)

defineservo([pin],[links],[rechts])

bijvoorbeeld:  defineservo(4,0,1700)


Met deze functie kun je een waarde opgeven tussen de 1 en 2000:

setservovalue (pin, svalue)


Om het makkelijk te maken is er een andere functie om de hoek in te stellen:

setservo([pin], [hoek])

bijvoorbeeld:  setservo(4, 180)


Let op: helaas werken er geen timers met de bibliotheek, je kan de hoek instellen per LUA script en deze aanroepen:


Bron:
piandmore.wordpress.com