Inhoudsopgave:

Tim's PCA9685-controller - Ajarnpa
Tim's PCA9685-controller - Ajarnpa

Video: Tim's PCA9685-controller - Ajarnpa

Video: Tim's PCA9685-controller - Ajarnpa
Video: Tim's PCA9685 Controller (Servo) 2024, November
Anonim
Tim's PCA9685-controller
Tim's PCA9685-controller

Veel projecten die met de Arduino zijn gedaan, hebben betrekking op het gebruik van een servo.

Als u slechts één of twee servo's gebruikt, kunnen deze rechtstreeks vanuit een Arduino worden bestuurd met behulp van een bibliotheek en het toewijzen van pinnen om dit te doen.

Maar voor projecten waarbij veel servo's moeten worden bestuurd, is de (laten we het zijn volledige naam geven) PCA9685 16-kanaals, 12-bit PWM Fm+ I2C-bus LED-controller misschien de betere keuze.

De PCA9685 LED-controller, hoewel ontworpen om LED's te besturen, kan worden geconfigureerd om Servo te besturen. (Data papier)

De PCA9685 communiceert via I2C en heeft 64 mogelijke adressen, dit betekent dat 64 van deze apparaten achter elkaar in serie kunnen worden geschakeld, elk met 16 servo's of LED's die aan elk zijn bevestigd. Dat is in totaal 1024 nummer dat kan worden bestuurd vanuit één Arduino.

Nu we een project hebben met veel servo's om te besturen, laten we zeggen een robot met vier poten. Elk been heeft twee servo's om het te besturen. (we beginnen simpel, in theorie kan mijn app 1024 aansturen)

Het instellen van acht servo's, het vinden van de triminstelling voor elk, het bepalen van de max. en min. posities, kan erg tijdrovend zijn.

Het schrijven en herschrijven van code om te zien wat er gebeurt, kan best lastig zijn.

Dus ik besluit een applicatie te maken om dingen eenvoudig te maken, en te helpen bij het vinden van elke vereiste Servo-instelling en om sequenties (script) uit te voeren om commando's die naar de servo worden gestuurd te testen.

Stap 1: Aansluitingen

"laden = "lui"

De sectie Script is het leuke gedeelte, hier kun je reeksen servoposities maken.

Zorg ervoor dat uw project doet wat u wilt.

  • De knop Waarde toevoegen voegt de huidige schuifregelaarinstellingen toe.
  • De knop Vertraging toevoegen voegt een vertraging in milliseconden toe die is ingesteld in het vak naast de knop.
  • De Add Address-knop voegt een commandoschakelaar toe aan een andere PCA9685, (wijzig adres naar linksboven) het werd ook gebruikt om de modus, servomodus of LED-modus te wijzigen.
  • Met de knop Script F uitvoeren wordt het huidige script voorwaarts uitgevoerd.
  • Met de knop Script R uitvoeren wordt het huidige script omgekeerd uitgevoerd.
  • Het selectievakje Loop zorgt ervoor dat het huidige script steeds opnieuw wordt uitgevoerd wanneer op een van de knoppen Script uitvoeren wordt gedrukt. Schakel het selectievakje uit om de lus te stoppen.
  • De knop Script wissen doet precies dat, het wist alle scriptcommando's.
  • De Load-knop, laadt een eerder opgeslagen script.
  • Met de knop Opslaan wordt het huidige script opgeslagen.

Opmerking!

Ik heb geen scriptcontrole in de applicatie geschreven, het script moet aan de volgende regels voldoen:

Eén regel per opdracht, waarden gescheiden door een spatie.

  • Servo-opdracht begint met "S" gevolgd door zestien waarden, elke waarde tussen 0 en 600
  • LED-opdracht begint met "L" gevolgd door zestien waarden, elke waarde tussen 0 en 4095
  • Dely-opdracht begint met "D" gevolgd door één waarde, tussen 0 en 10, 000
  • Adresopdracht begint met "A" gevolgd door één waarde en een woord. De waarde tussen 0 en 64. Het woord is "Servo" of "LED".

De applicatie kan Servo of LED besturen. Plaats LED en Servo niet op hetzelfde Breakout Board, Servo en LED hebben verschillende frequenties nodig om correct te werken.

Als je servo probeert te besturen met de LED-instellingen, kunnen ze in paniek raken, het zal ze niet schaden, maar als ze in een project zijn geïnstalleerd, wil je misschien niet dat ze naar een bepaalde positie gaan.

Ik heb een video gemaakt van een eenvoudig script.

Stap 5: Epiloog

Als instructies op Instructables gaan, verwachten de meeste mensen dat ze aan het einde van een instructie een fysiek item krijgen.

Ik vind dat er geen realistische categorie is voor software.

Ik veronderstel dat je het als een hulpmiddel zou kunnen classificeren, maar de instructie is niet hoe het hulpmiddel te maken, maar hoe het te gebruiken.

Hopelijk kunnen mensen met een tool als deze betere projecten maken met de Arduino met behulp van servo's of LED-arrays.

Excuses voor de video van het project in actie, ik gebruikte een ESP32-CAM breakout-bord met een andere applicatie die ik heb gemaakt om afbeeldingen van ESP32-CAM te bekijken.

BEWERKING

Ik heb het verbeterd.

Updates zijn hier te vinden: Tims_PCA_9685_Controller

Aanbevolen: