Control 2 Servo motorer med en vanlig fjärrkontroll (4 / 4 steg)
Steg 4: Att sätta den tillsammans
Den slutliga kretsen med batteri visas i en av bilderna. Inte att koppla från den seriella ännu finns det ett par saker att göra först. Kopiera och klistra in adressen och skicka som tidigare. Detta är det sista programmet.
http://www.byvac.com/mBlib/FLB/tutorial/PIC32MX1_Family/46_IRServo/IRServo_c.bas
Funktionen main)
Detta ser komplicerat men det är inte. Skriv huvudsakliga och se hur det fungerar, det fungerar inte alls beroende på vad din IR avkodning så låt oss ta en titt på funktionen Main (). För att komma ur funktionen måste du återställa.
Linjer 67-74: Dessa initiera IR och servo som innan. Jag har två konstanter överst i filen som jag fann vara de högsta och lägsta värdena av servo. Linjen = ((SERVOMAX-SERVOMIN)/2) + SERVOMIN plases servo till mitten av position början upp.
Linje 75: Denna tid vi kommer slinga för evigt med ingen får ut, detta är en bra idé på ett stativ ensam programmet som använder comkey? (2) metod kan sluta slingan om falska värdet tas emot i det viktiga buffert oavsett orsak. Emellertid under testning är det förmodligen en bra idé att lämna den ut - i.
Linje 78: Jag har en lysdiod ansluten till stift 4 och så detta är bara för lite extra information.
Lina 79: IR ordet fått är i två delar, de sista 8 bitarna är koden samband med nyckel och bitar 11 till 8 håll växla värdet, så att linjen blir bara nyckelvärdet (i irkey) utan att växla.
Linje 81: Som sagt innan växla är en del av den övre byten av 16-bitars ordet faktiskt denna linje kommer också att få i början och någon adress bitar också men det spelar egentligen ingen roll i det här programmet behöver vi bara se om växla är annorlunda än förra gången. Växla blir densamma om användaren har hållit ett finger på fjärr nyckel men kommer att vara annorlunda om användaren släpper nyckeln och pressar det igen. Vi använder denna funktion för att öka hastigheten på servo genom att lägga till 1 till variabeln hastighet om det finns någon förändring i växla. Om det har skett en förändring i växla får sedan hastighet återställas till 0 (linje 82).
Linjer 85-90: Detta är lite som identifierar vilka tangenter trycks, i detta fall vi söker 2 nycklar enligt denna tabell:
Värdet för nyckeln
+ V 10 (+ volym)
+ P 20 (+ kanal)
-V 11 (-volym)
-P 21 (-kanalen)
Dessa värden fanns under utvecklingsarbetet, kunde alla andra tangenter naturligtvis väljas. Tangenterna plus addera 1 för att påskynda och minustangenterna ta en bort.
Linjer 92 till 96: Ta itu med volymknappen och lägga till hastighet till servo PWM värde, en kontroll görs på 95 och 96 som servo värden inte har överskridits, detta ger bara fin sträng kontroll.
När du är nöjd med programvaran typ flsave("") och det kommer att spara de aktuella funktionerna i RAM-minnet till blixt. Eftersom funktionen kallas Main () körs det också vid återställning.
Tillbaka till utveckla
Det kan eller inte kan ha passerat ditt sinne som en funktion main () sparas till flash och denna börjar på reset - hur gör jag alla andra projekt med denna IC- eller sämre om du har en icke-arbetande projekt som har sparats till Main () är det fast där för evigt? Nå nej, uppenbarligen det måste finnas en komma ut.
Resumé
Detta har varit en demonstration av kontroll av servomotorer via IR. Det är verkligen en demonstration av IR och servo. IR har inte vara ansluten till en servo men kan till exempel vara ett relä och servo behöver inte styras av IR, detta kan ha en fast uppsättning rörelser som appliceras på den. Eller det kunde kontrolleras via PC eller en knappsats kanske öppna en låst dörr.