Stap 3: Software
Hieronder vindt u de link van de software. Terwijl het wordt gericht voor de 12F683, is het gemakkelijk ported aan andere versies van de PIC. U zult moeten veranderen de regel waarmee de PIC-versie (lijst =) en het INCLUDE-bestand, maar die zijn intuïtieve veranderingen. De __CONFIG lijn wellicht ook tweaken alleen maar omdat een of twee van de gebruikte etiketten zijn anders gespeld in sommige van de INCLUDE-bestanden. U moet ook een PIC die PWM ondersteunt selecteren. Mijn andere favoriete PIC (de 16F688) heeft helaas geen PWM vermogen.
De software is vrij eenvoudig zodra de PWM-initialisatie is bedacht. Ik gebruikte om te helpen met de register-waardeberekeningen een PWM berekening website op:
www.micro-examples.com/Public/microex-navig/doc/09...
Wanneer ik voor het eerst de PIC code schreef instellen ik de PWM-mailfrequentie op 20-kHz. Ik aangesloten dan een digitale voltmeter op de PIC-uitgang en het gevarieerde in een mooie lineaire mode van 0 tot 5 volt. Helaas, toen ik de PIC op de L298N module aangesloten ontdekte ik dat toen de PWM begon het eerste niet-nul resultaat meer dan 10 volt was. Het drong tot me door dat misschien die de L298N module was niet staat dat snel inschakelen pulsen zodat ik de frequentie naar beneden en tenslotte geknikt op 500-Hz vaste te reageren.
Één van de "Eigenschappen" van trein gesmoord is een gevoel van momentum versnelling en remmen om te simuleren hoe een echte trein werkt. Om te bereiken dat, is een eenvoudige vertraging ingevoegd in Main_Loop. Met de waarden die worden weergegeven, duurt het ongeveer 13 seconden om van 0 tot 12 volt of van 12 volt terug naar nul te gaan. De vertraging kan eenvoudig worden aangepast voor langere of kortere tijden. Het enige geval dat momentum is niet van kracht wanneer de schakelaar richting wordt gewijzigd. Behoeve van de bescherming is de taakcyclus van de PWM onmiddellijk ingesteld op 0% wanneer deze schakeloptie wordt gewijzigd. Dus, in feite de richting schakelaar ook verdubbelt als een noodrem.
Om ervoor te zorgen onmiddellijke behandeling van de richting schakelaar we plaatst u de programmacode in een interrupt handler. Dat staat ons toe ook om een functie van de PIC genoemd in een eerdere aflevering genaamd "onderbreken op verandering" te gebruiken. Wat er gebeurt is dat de interrupt niet is gebaseerd op het niveau van de logica voor de pin (dat wil zeggen: hoog of laag) zoals de meeste interrupt ingangen. In plaats daarvan wordt het onderbroken als het niveau van de logica verandert van wat het vroeger was. Dat is waarom onze richting switch één kant getrokken tot heeft + 5 en de andere kant verbonden met grond.
Nou, thats it voor aflevering 9 van plezier met PIC montage. Stay tuned voor meer afleveringen.