RC kontroll och Arduino: A färdiga arbeten (4 / 10 steg)
Steg 4: Första Program: läsa mottagaren
Skriv först ditt hjälpfilen så att du vet vad programmet är för, vad styrelsen du använder, hålla en liten förändringslogg och vardagliga eller större tillägg/ändra skapa en ny daterad fil. Jag sparar en fil varje dag jag jobbar på programvaran och hålla en separat förändringslogg. Detta verkar vara en smärta, men när du behöver hjälp gör det lätt att bara lämna in dina filer och be.
För det andra, skapa din konstant pin plats variabler och deras pinMode i inställningarna.
För det tredje skapa variabler och pulseIn funktioner för att läsa och lagra RC mottagare värden.
För det fjärde kommentera din kod om du inte har varit!
Det femte nu setup seriell överföringshastigheten i blocket setup och lägga till din utskriftsfunktionerna ska visas i terminal-fönstret.
Sjätte, spara den!
Nu kan koppla in maskinvaran, jag med en Mega2560 för denna första provning som den var ny och jag ville testa det lite. Om du har en Uno bara ändra variablerna pin plats. Alla 8 kanaler var ansluten via invändig/utvändig dupont kablar till digital stiften på Arduino. Jag kopplas sedan 5V och marken till sina respekterade platser. Mottagaren var redan bunden till sändaren så efter att slå på sändaren, Arduino, ladda upp skissen, och vi är redo att se värden i terminal-fönstret. Se min koden nedan. Jag har också mycket minimal kommentera så tveka inte att fråga om du behöver den.
Detta kommer att skissa vilja läsa alla 8 kanaler en RC mottagare och indatavärden via seriell monitor.
Programmerat för Arduino MEGA 2560!!!
Definiera variabler:
CONST int chA = 22. Konstant variabler avser pin platser
CONST int Chohung bank = 24.
CONST int chC = 26.
CONST int chD = 28;
CONST int chE = 30.
CONST int chF = 32.
CONST int chG = 34.
CONST int chH = 36.
int ch1; Varibles att lagra och visa värdena för varje kanal
int ch2;
int ch3;
int ch4;
int ch5;
int ch6;
int ch7;
int ch8;
Rutinen installationsprogrammet körs en gång när du trycker på reset:
void setup() {
initiera seriell kommunikation på 9600 bitar per sekund:
Serial.BEGIN(115200);
Ställ in ingång pins
pinMode (chA, ingång);
pinMode(chB,INPUT);
pinMode(chC,INPUT);
pinMode(chD,INPUT);
pinMode(chE,INPUT);
pinMode(chF,INPUT);
pinMode(chG,INPUT);
pinMode(chH,INPUT);
}
Huvudprogrammet
void loop() {
Läs de ingående kanalerna
CH1 = pulseIn (chA, hög); Läsa och lagra kanal 1
Serial.Print ("Ch1:"); Visar text snöre på Serial bildskärm skilja variabler
Serial.Print (ch1); Skriva ut värdet av kanal 1
Serial.Print ("|");
CH2 = pulseIn (Chohung bank, hög);
Serial.Print ("Ch2:");
Serial.Print (ch2);
Serial.Print ("|");
CH3 = pulseIn (chC, hög);
Serial.Print ("Ch3:");
Serial.Print (ch3);
Serial.Print ("|");
CH4 = pulseIn (chD, hög);
Serial.Print ("Ch4:");
Serial.Print (ch4);
Serial.Print ("|");
ch5 = pulseIn (chE, hög);
Serial.Print ("Ch5:");
Serial.Print (ch5);
Serial.Print ("|");
CH6 = pulseIn (chF, hög);
Serial.Print ("Ch6:");
Serial.Print (ch6);
Serial.Print ("|");
ch7 = pulseIn (chG, hög);
Serial.Print ("Ch7:");
Serial.Print (ch7);
Serial.Print ("|");
ch8 = pulseIn (chH, hög);
Serial.Print ("Ch8:");
Serial.println (ch8);
}