Stap 4: Codering tijd!
Zodra u de code van de HEXUITDRAAI voor de knoppen die u wilt, kunnen we naar beneden naar je Arduino taalcode-instellingen om te reageren!Net als in het IRrecord-programma moet u de lijn opnemen:
#include < IRremote.h >
Nu moet u uw Arduino vertellen dat u voor de IR ontvanger pin 11 gebruikt:
int RECV_PIN = 11;
Uw variabelen te initialiseren:
String in;
Tekenreeks cur = "";
Cur2 koord = "";
Deze decoratieve items toevoegen:
IRrecv irrecv(RECV_PIN);
9
10 decode_results resultaten;
Maak nu uw setup:
void Setup
{
Serial.begin(9600);
irrecv.enableIRIn(); Start de ontvanger
}
Nu, in uw lus moet u een if() blok, zodat de Arduino weet dat het IR zoekt:
als (irrecv.decode (& resultaten))
Binnen dit if() blok moet u te vertellen van de Arduino te maken van de variabele "in" wat de code van de Hexuitdraai is een reeks, dan vertellen de volgende IR-waarde op te halen. Mijn code afdrukken "in" met de SM voor foutopsporing.
{
in = String(int(results.value), HEX);
irrecv.resume(); De volgende waarde ontvangen
Serial.println(in);
}
Nu moet je if() en anders if() blokken te vertellen je arduino wat te doen. Hier is wat ik heb:
als (in == "8422" || in == "422" || == in "906f" || in == "38c7"){hold();}
anders als (== in "841e" || in == "41e" || == in "18e7" || in == "a857"){straight();}
anders als (== in "841f" || == in "41f" || == in "4ab5" || in == "e01f"){backup();}
anders als (in == "8420" || in == "420" || == in "10ef" || in == "22dd"){left_turn();}
anders als (in == "8421" || in == "421" || == in "5aa5" || in == "2fd"){right_turn();}
De eerste if() zoekt de knop 5 ingedrukt worden (ik heb het instellen dus verschillende afstandsbedieningen zal werken). Na dat, u kunt laten meer if() blokken, die de Arduino vertragen zal hebt u genoeg van hen, of u kunt anders if() blokken. Elk blok bevat een subroutine aanroep, die roept dat specifieke subroutine om op te treden. Dit voorkomt dat uw code omhoog wordt weggegooid. Een subroutine in het volgende voorbeeld ziet er zo uit:
ongeldig straight()
{
Left.write(82);
right.write(101);
}
Het veelzeggend dat de Arduino aan de linker- en servo's op een bepaald bedrag inschakelen, zodat ze op gelijke snelheden rijden.
Nu dat we de kern stukken samen, kunnen we het allemaal samen!
#include < IRremote.h > String in; IRrecv irrecv(RECV_PIN); VOID Setup void loop in = String(int(results.value), HEX);
int RECV_PIN = 11;
decode_results resultaten;
{
Serial.begin(9600);
irrecv.enableIRIn(); Start de ontvanger
}
{
Als (irrecv.decode (& resultaten)) {}
irrecv.resume(); De volgende waarde ontvangen
Serial.println(in);
Als (in ==
anders als (in == < Hex-waarde > ) {< code >}
anders als (in == < Hex-waarde >) {< code >}
anders als (in == < Hex-waarde >) {< code >}
anders als (in == < Hex-waarde >) {< code >}
}
}
Nu kunt u eenvoudig wijzigen, uploaden, en start je Arduino met een afstandsbediening te besturen! Verbazingwekkend!