Inhoudsopgave:

556 servostuurprogramma: 5 stappen (met afbeeldingen)
556 servostuurprogramma: 5 stappen (met afbeeldingen)

Video: 556 servostuurprogramma: 5 stappen (met afbeeldingen)

Video: 556 servostuurprogramma: 5 stappen (met afbeeldingen)
Video: 5 minuten hiervan verbrandt snel buikvet 2024, November
Anonim
556 servostuurprogramma
556 servostuurprogramma

Servo's (ook RC-servo's) zijn kleine, goedkope, in massa geproduceerde servomotoren die worden gebruikt voor radiobesturing en kleinschalige robotica. Ze zijn ontworpen om gemakkelijk te kunnen worden bediend: de positie van de interne potentiometer wordt continu vergeleken met de opgedragen positie van het bedieningsapparaat (d.w.z. de radiobesturing). Elk verschil geeft aanleiding tot een foutsignaal in de juiste richting, die de elektromotor naar voren of naar achteren drijft en de as naar de opgedragen positie beweegt. Wanneer de servo deze positie bereikt, neemt het foutsignaal af en wordt dan nul, waarna de servo stopt met bewegen.

Radiogestuurde servo's worden aangesloten via een standaard driedraadsverbinding: twee draden voor een gelijkstroomvoeding en één voor besturing, met een pulsbreedtemodulatie (PWM) signaal. De standaardspanning is 4,8 V DC, maar op enkele servo's wordt ook 6 V en 12 V gebruikt. Het stuursignaal is een digitaal PWM-signaal met een framerate van 50 Hz. Binnen elk tijdsbestek van 20 ms regelt een actief-hoge digitale puls de positie. De puls varieert nominaal van 1,0 ms tot 2,0 ms, waarbij 1,5 ms altijd het middelpunt van het bereik is.

Je hebt geen microcontroller of computer nodig om een servo te besturen. U kunt het eerbiedwaardige 555 timer-IC gebruiken om de vereiste pulsen aan een servo te geven.

Veel op microcontrollers gebaseerde circuits zijn beschikbaar op het internet. Er zijn ook een paar circuits beschikbaar om servo's mee te testen op basis van enkele 555's, maar ik wilde een nauwkeurige timing zonder dat de frequentie varieerde. Toch moest het goedkoop en gemakkelijk te bouwen zijn.

Stap 1: PWM Wat?

PWM Wat?
PWM Wat?

Zoals de naam al doet vermoeden, werkt de pulsbreedtemodulatiesnelheidsregeling door de motor aan te drijven met een reeks "AAN-UIT" -pulsen en de werkcyclus te variëren, de fractie van de tijd dat de uitgangsspanning "AAN" is in vergelijking met wanneer deze "UIT" is”, van de pulsen terwijl de frequentie constant wordt gehouden.

Het concept achter dit circuit is dat het twee timers gebruikt om het output PWM-signaal (Pulse Width Modulation) te genereren om de servo mee aan te drijven.

De eerste timer werkt als een astabiele multivibrator en genereert de "draagfrequentie", oftewel de frequentie van de pulsen. Klinkt verwarrend? Welnu, hoewel de pulsbreedte van de uitgang kan variëren, willen we dat de tijd vanaf het begin van de eerste puls tot het begin van de tweede puls hetzelfde is. Dit is de frequentie van het optreden van de puls. En dit is waar dit circuit de variërende frequentie van de meeste afzonderlijke 555-circuits overwint.

De tweede timer werkt als een monostabiele multivibrator. Dit betekent dat het moet worden getriggerd om een eigen puls te genereren. Zoals hierboven vermeld, activeert de eerste timer de tweede met een vast, door de gebruiker te definiëren interval. De tweede timer heeft echter een externe pot die wordt gebruikt om de breedte van de outputpuls in te stellen, of in feite de duty-cycle en op zijn beurt de rotatie van de servo te bepalen. Laten we naar het schema gaan…

Stap 2: Een beetje wiskunde… Frequentie

Een beetje wiskunde… Frequentie
Een beetje wiskunde… Frequentie

Het circuit gebruikt een LM556 of NE556, die kan worden vervangen door twee 555's. Ik heb net besloten om de 556 te gebruiken omdat het een dubbele 555 in één pakket is. De linker timerschakeling, of frequentiegenerator, is ingesteld als een astabiele multivibrator. Het idee is om het een draaggolffrequentie van ongeveer 50 Hz te laten produceren, van waaruit een duty cycle wordt toegevoegd door de rechterhandtimer of pulsbreedtegenerator.

C1 laadt op via R1, R4 (gebruikt voor het instellen van de frequentie) en R2. Gedurende deze tijd is de output hoog. Dan ontlaadt C1 via R1 en is de output laag.

F = 1,44 / ((R2+R4 + 2*R1) * C1)

F= 64Hz voor R1 = 0

F= 33Hz voor R1 = 47k

Op de vereenvoudigde gesimuleerde schakeling wordt R1 echter weggelaten en is de frequentie een vaste 64 Hz.

Erg belangrijk! We willen dat de tijd dat de output laag is korter is dan de minimale pulsbreedte van de pulsbreedtegenerator.

Stap 3: Een beetje wiskunde… Pulse

Een beetje wiskunde… Pulse
Een beetje wiskunde… Pulse

De pulsbreedtegenerator, of rechterhand timer, is ingesteld in monostabiele modus. Dit betekent dat elke keer dat de timer wordt geactiveerd, deze een uitgangspuls geeft. De pulstijd wordt bepaald door R3, R5, R6 en C3. Een externe potentiometer (100k LIN POT) is aangesloten om de pulsbreedte te bepalen, die de rotatie en de mate van rotatie op de servo zal bepalen. R5 en R6 worden gebruikt om de buitenste posities voor de servo fijn af te stemmen, om te voorkomen dat deze gaat klapperen. De gebruikte formule is als volgt:

t = 1,1 * (R3 + R5 + (R6 * POT)/(R6 + POT)) * C4

Dus de minimale pulstijd wanneer alle variabele weerstanden op nul zijn ingesteld, is:

t = 1,1 * R3 * C4

t = 0,36 ms

Merk op dat deze minimale pulsduur langer is dan de triggerpuls om ervoor te zorgen dat de pulsbreedtegenerator niet constant 0,36 ms pulsen na elkaar genereert, maar op een constante +- 64Hz frequentie.

Als de potentiometers op maximum staan, is de tijd

t = 1,1 * (R3 + R5 + (R6 * POT)/(R6 + POT)) * C4

t = 13 ms

Inschakelduur = Pulsbreedte / Interval.

Dus bij een frequentie van 64 Hz is het pulsinterval 15,6 ms. Dus de Duty Cycle varieert van 2% tot 20%, waarbij het midden 10% is (onthoud dat een puls van 1,5 ms de middenpositie is).

Voor de duidelijkheid zijn de potentiometers R5 en R6 uit de simulatie verwijderd en vervangen door een enkele weerstand en een enkele potentiometer.

Stap 4: Genoeg met de wiskunde! Laten we nu spelen

Genoeg met de wiskunde! Laten we nu spelen!
Genoeg met de wiskunde! Laten we nu spelen!

Je kunt de simulatie HIER spelen: klik gewoon op de knop "Simuleren", wacht terwijl de simulatie laadt en klik vervolgens op de knop "Simulatie starten": wacht tot de spanning is gestabiliseerd, klik vervolgens op de linkermuisknop op de potentiometer en houd deze ingedrukt. Sleep de muis en verplaats de potentiometer om de servo te besturen.

U kunt de pulsbreedte zien veranderen op de bovenste oscilloscoop, terwijl de frequentie van de puls hetzelfde blijft op de tweede oscilloscoop.

Stap 5: Last but not least … het echte ding

Last but not least … het echte ding!
Last but not least … het echte ding!
Last but not least … het echte ding!
Last but not least … het echte ding!

Als je verder wilt gaan en het circuit zelf wilt bouwen, kun je hier het schema, de PCB-lay-out (het is een enkelzijdige PCB die je gemakkelijk thuis kunt fabriceren), de lay-out van de componenten, de koperen lay-out en de onderdelenlijst vinden.

Een kleine opmerking over de trimmers:

  • de blauwe trimmer stelt de frequentie van het signaal in
  • de middelste zwarte trimmer stelt de onderste rotatielimiet in
  • de resterende zwarte trimmer stelt de bovenste rotatielimiet in

Een korte opmerking die handig is om het circuit voor een bepaalde servo te kalibreren:

  1. zet de hoofdpotentiometer op nul
  2. pas de middelste zwarte trimmer aan totdat de servo stabiel op de ondergrens staat zonder te klapperen
  3. zet nu de hoofdpotentiometer op maximum
  4. pas de resterende zwarte trimmer aan totdat de servo stabiel op de hogere limiet is ingesteld zonder te klapperen

Als je deze instructable leuk vond, stem dan op mij in de wedstrijd!:)

Elektronica Tips & Trucs Uitdaging
Elektronica Tips & Trucs Uitdaging
Elektronica Tips & Trucs Uitdaging
Elektronica Tips & Trucs Uitdaging

Juryprijs in de Electronics Tips & Tricks Challenge

Aanbevolen: