Gebruik een PIC-Microcontroller om een Hobby-Servo (4 / 6 stap)

Stap 4: De Firmware

Bijgevoegd is de firmware die ik voor deze kleine demo gebruikte. Ik gebruikte de vrije MPLAB IDE met de C18-compiler (gratis voor studenten). Beide zijn beschikbaar om te downloaden vanaf de website van de Microchip. De logica gaat als volgt:
1. de wachttijd voor ergens tussen de 10 en 20 ms (in dit geval, 12)
2. Indien de knop (pin 4) wordt geduwd, meet het voltage van de potentiometer (pin 2)
3. Stel de hoge stuursignaal (5 v)
4. vertraging voor een tijdsduur evenredig met de spanning gemeten in stap 2
5. Stel het besturingssignaal lage (grond)
6. lus terug naar stap 1

Misschien is een beetje meer informatie over de analoog-naar-digitaal conversie in orde. Dus we al weten dat de spanning op pin 2 is gonna be ergens tussen 0 en 5 volt vanwege de spanning divider. De foto's A/D conversie werkt (conceptueel) soort als een omgekeerde spanning divider. Het rapporteert de spanning als een deel van de voedingsspanning. Echter is het aandeel geschaald worden tussen 0 en 255 (dat is 8 bits van informatie, de grootte van een niet-ondertekende teken). Met andere woorden, is de volgende gelijkheid ingesteld:
(pin 2 spanning) / 5v = POT_VALUE / 255
of:
POT_VALUE = 255 * ((pin 2 voltage) / 5v)
De foto doet eigenlijk een 10-bits A/D-conversie, maar 8 bits is veel granulaire genoeg voor onze doeleinden, zodat de twee minst significante bits van de A/D-conversie in deze code zijn niet gebruikt. Bovendien, de laatste paar cijfers zijn waarschijnlijk het meten van lawaai in plaats van het signaal zelf, zodat we niet dat alles veel missen door het negeren van hen.

De vertragingen zijn berekend op basis van de tijd die het kost om één instructie op de PIC, compleet met een klok van 4 MHz. Ik herinner me niet waarom, maar een of andere manier dat dit werkt naar 1/6 ons per instructiecyclus. Dus als we vertraging voor 5400 cycli, thats 5400 cycli * 1/6 Amerikaanse / cyclus = 900 US = 0.9 ms. een ander belangrijk stuk is het vinden van de constante van evenredigheid die weegschaal POT_VALUE (op een bereik van de 255-0 = 255) naar onze pulsbreedte (op een bereik van 2,1 ms-0.9 ms = 1200 ons); of, om het frame van de vraag een andere manier: Hoeveel cycli moeten we vertraging voor elke telling van POT_VALUE?
(1200 US * 6 cycli / ons) / 255 telt 28 cycli/count =
Degenen onder u na samen met de code zult merken dat ik eigenlijk 20 cycli per tellen, niet 28 vertragen. Dit is een experimenteel bepaalde waarde (ik keek het signaal met een oscilloscoop) die voor alle factoren die effect de timing, voornamelijk de overhead van de for-lus van lijn 68 past.

Gerelateerde Artikelen

Lage kostentabel Hobby Servo XY

Lage kostentabel Hobby Servo XY

voor dit project, we wilden bouwen een lagere kosten, lagere precisie XY tabel voor een installatie op TeleToyland. Het doel is om webgebruikers om vormen te tekenen in een zandbak, dus we wilde een eenvoudige XY-tabel die is gemakkelijk te controler
Hoe te programmeren van een PIC Microcontroller & lezen een Encoder

Hoe te programmeren van een PIC Microcontroller & lezen een Encoder

Inleiding: van elektronisch speelgoed & games magnetrons, microcontrollers bevinden zich zowat overal deze dagen! Maar hoe kunnen we deze kleine computers werken voor onze eigen elektronica projecten maken? Dat is waar deze tutorial komt - met gedeta
Hoe een PIC microcontroller met Led knipperen?

Hoe een PIC microcontroller met Led knipperen?

Deze tutorial is voor PIC microcontroller beginners.* stappen om te installeren van MP Lab* stappen om te installeren xc8 compiler-programma te knipperen-De bouw van project en het branden naar de pic McStap 1: Onderdelen die vereist zijn 1) PIC16F88
Hoe maak je een Fullyrotational Servo

Hoe maak je een Fullyrotational Servo

In deze Instructables zal ik u tonen hoe te maken van een fullyrotational servo van een standaard 9g servo.Dit is mijn eerste Instructables, dus ik hoop dat het u bevalt.Sorry voor eventuele fouten, ik ben Nederlands.Stap 1: De onderdelen en Tools di
Draaien van een Hobby of favoriete onderwerp in een Showcase Foto

Draaien van een Hobby of favoriete onderwerp in een Showcase Foto

Heb je een hobby die u wilt om te pronken, maar iedereen zegt dat je bent over het vervelend? Doen u hou vuurtorens, ze wilt zien, maar niet wilt dat een hele boekenkast van knick knacks u moet aan stof elke maand?Laat het zien zonder een woord te ze
Een Hobby-Ace Ublox GPS Module ingebouwd kompas met Arduino Uno

Een Hobby-Ace Ublox GPS Module ingebouwd kompas met Arduino Uno

Onlangs vond ik mezelf helpen van mijn zoon samen te stellen een hoge hoogte ballon (HAB) voor een schoolproject en een van de dingen die hij voor het project verworven was een Hobby-Ace Ublox GPS-Module met ingebouwde kompas.Dit was oorspronkelijk o
How To Make & gebruik een zaad-kiemen tas

How To Make & gebruik een zaad-kiemen tas

Sprouted zaden zijn een krachtpatser van voeding. U kunt zaden sandwiches en salades, snijd ze omhoog in dips, of eet ze gewoon door het handjevol toevoegen.Terwijl ze gemakkelijk in de meeste kruidenierszaken gekocht zijn, biedt groeien uw eigen u e
Gebruik een soldeer pistool voor Delicate elektronica

Gebruik een soldeer pistool voor Delicate elektronica

Halfgeleiders, zoals LEDs en transistors kunnen gemakkelijk worden beschadigd door teveel warmte. Laag vermogen soldering ijzers in het bereik van 15 tot 25 Watt worden aanbevolen. Ik heb mijn bijna 50-jarige 100/140 Watt dual warmte solderen pistool
Gebruik een stofzuiger om te bouwen van uw eigen Skateboard

Gebruik een stofzuiger om te bouwen van uw eigen Skateboard

dit Instructable is een stap voor stap beschrijving van het proces van het opbouwen van een skateboard-dek, die omvat: een buigende mal maken, bouwen van een zak-pers en squishing /cutting multiplex in de vorm van een skateboard. Deze instructies zij
Sonic schakelaar: Gebruik een Sonic schroevendraaier te draaien op uw computer!

Sonic schakelaar: Gebruik een Sonic schroevendraaier te draaien op uw computer!

Wat het is: een Arduino-based lichtgevoelige schakelaar voor het inschakelen van een desktopcomputer.Waarom zijn koel: gebruik een Sonic schroevendraaier te draaien op uw computer!Verhaal: Dit project begon, als ik zeker dat veel van hen doen weet, a
Gebruik een Motorola met de handsfree als een Xbox 360 Headset

Gebruik een Motorola met de handsfree als een Xbox 360 Headset

gebruik een Motorola met de handsfree als een Xbox 360-HeadsetStap 1: Een gratis Motorola E1000-handen krijgen Krijgen een Motorola E1000 handsfree of kopen (3/4 euro)Stap 2: Plug & Play Gewoon plug & play!
Sbase/Smoothieware - gebruik een gratis PWM Pin en Power Expander of SSR aan controle Fans.

Sbase/Smoothieware - gebruik een gratis PWM Pin en Power Expander of SSR aan controle Fans.

Running out beschikbare plekken om te hechten op een verwarmd bed, hotend of een fan we hebben gelukkig de mogelijkheid om één van de General Purpose Input/Output (GPIO) te gebruiken pinnen op de MKS Sbase en combineer het met een Solid State Relais
Hoe gebruik een Wiimote Control een Lego Mindstorms NXT Robot

Hoe gebruik een Wiimote Control een Lego Mindstorms NXT Robot

Tutorial: Hoe gebruik een Wiimote Control een Lego Robot - de grappigste video clips hier zijn deze video zal u tonen hoe gebruik een wiimote control een Lego Mindstorms NXT Robot.Hier is de link naar Glovepie: http://carl.kenner.googlepages.com/glov
LED LYT Meter: LED, PIC Microcontroller en bewegende gemiddelde Code

LED LYT Meter: LED, PIC Microcontroller en bewegende gemiddelde Code

Hallo iedereen, dank u voor het controleren van mijn eerste Instructable. Ik heb genoten van het zien van je creaties door de jaren heen en hou van wat jullie allemaal dragen. Dit project is een spin-off van een die ik onlangs zag hier en ik wil een