Stap 2: Het instellen van de verschillende gegevens
/ * Gewijzigd door Chris Targett
* Nu ook meer protocollen
* Novemeber 2011
* IRremote: IRrecvDump - dump details voor IR-codes met IRrecv
* Een IR detector/demodulator moet worden aangesloten op de ingang RECV_PIN.
* Versie 0.1 juli 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*
* Aangepast door Chris Targett te versnellen het proces van het verzamelen van
* De IR (HEX en DEC)-codes van een externe (te zetten in .h bestand)
*
*/
#include < IRremote.h >
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results resultaten;
VOID Setup
{
Serial.begin(9600);
irrecv.enableIRIn(); Start de ontvanger
}
Stortplaatsen uit de structuur decode_results.
Noemen dit na IRrecv::decode()
VOID * compiler probleem omzeilen
ongeldig dump(void *v) {}
decode_results * resultaten = (decode_results *) v
ongeldig dump(decode_results *results) {}
int count = resultaten -> rawlen;
Als (resultaten -> decode_type == onbekend) {}
Serial.Print ("Onbekende codering:");
}
anders als (resultaten -> decode_type == NEC) {}
Serial.Print ("gedecodeerd NEC:");
}
anders als (resultaten -> decode_type == SONY) {}
Serial.Print ("gedecodeerd SONY:");
}
anders als (resultaten -> decode_type == RC5) {}
Serial.Print ("gedecodeerd RC5:");
}
anders als (resultaten -> decode_type == RC6) {}
Serial.Print ("gedecodeerd RC6:");
}
anders als (resultaten -> decode_type == SAMSUNG) {}
Serial.Print ("SAMSUNG gedecodeerd:");
}
anders als (resultaten -> decode_type == JVC) {}
Serial.Print ("gedecodeerd JVC:");
}
anders als (resultaten -> decode_type == PANASONIC) {}
Serial.Print ("gedecodeerd Panasonic:");
}
Serial.Print (resultaten -> waarde, HEX);
Serial.Print("(");
Serial.Print (resultaten -> bits, DEC);
Serial.println ("bits)");
Serial.Print ("#define Something_DEC");
Serial.println (resultaten -> waarde, DEC);
Serial.Print ("#define Something_HEX");
Serial.println (resultaten -> waarde, HEX);
Serial.Print ("Raw (");
Serial.Print (telling, DEC);
Serial.Print("):");
voor (int i = 0; ik < telling; i ++) {}
Als ((i % 2) == 1) {}
Serial.Print (resultaten -> rawbuf [i] * USECPERTICK, DEC);
}
else {}
Serial.Print (-(int) resultaten -> rawbuf [i] * USECPERTICK, DEC);
}
Serial.Print("");
}
Serial.println("");
}
void loop {}
Als (irrecv.decode (& resultaten)) {}
dump (& resultaten);
irrecv.resume(); De volgende waarde ontvangen
}
}
In de afbeelding ziet u hoe link Arduino met het apparaat.
Na het laden van de code op de Arduino, we moeten druk op de knoppen op de afstandsbediening en kopieer ergens de resultaten die worden weergegeven door het serienummer.
In mijn geval heb ik de volgende reeks van coderingen:
Accensione 20 C ° Caldo
RAW (150):-5320 3000-3000 3000-4400 550-1600 600-550 550-1650 550-550 550-550 550-1650 550-550 550-1650 500-550 550-1650 550-550 550-500 600-500 600-550 550-550 550-1650 500-550 550-600 500-1700 500-550 550-550 550-550 550-600 500-550 550-550 550-550 550-550 550-1650 550-1650 550-1650 500-1650 550 550-1650-550 550-550 550-550 550-550 550 - 1650 550 550-1650-500 550-550 550-1700 500-1650 550-550 550-500 600-550 550-550 550-550 550-550 550-550 550-1650 500-1700 500-550 550-550 550-550 550-550 550-550 550-600 500-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-500 550-1700 500-550 550-550 550-550 550-1650 550
Spegnimento
RAW (150):-3276 3100-2900 2950-4400 700-1500 700-400 700-1500 700-400 650-450 550-1650 550-550 650-1500 600-500 600-1600 600-500 600-500 600-450 650-450 600-550 550-550 550-550 550-600 500-1600 600-500 600-500 600-550 550-500 600-500 600-550 550-550 550-1600 600-500 600-500 600-500 550-1650 550-1600 600-500 600-500 600-550 550-550 550 - 1600 600-1600 550-550 550-550 550-1650 550-1600 600-550 550-500 600-500 600-550 550-550 550-500 600-500 600-1600 600-1600 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-500 600-550 550-550 550-500 600-500 600-500 600-1600 600-500 600-1600 550-550 550-1600 600-550 550-550 550
Accensione 23 C ° Freddo 2 FAN
RAW (150):-16044 3050-3000 3000-4400 550-1600 600-550 550-1650 550-550 550-550 550-1650 550-500 600-1600 550-550 550-1650 550-1650 550 550-1650-550 550-550 550-500 600-1600 550-550 550-550 550-1650 550-550 550-550 550-550 550-550 550-550 550-550 550-500 600-1650 500-550 550-600 500-1700 500-550 550-550 550-550 550-550 550-550 550-550 550 - 1650 550 550-1650-550 550-500 550-1650 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-550 550-550 550-550 550-550 550-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-1600 600-550 550
Accensione 20 C ° Caldo e Swing
RAW (150): 18566 3000-3000 3000-4400 550-1650 550-500 600-1600 600-500 600-500 600-1600 550-550 550-1650 550-500 600-1600 600-550 550-550 550-550 550-1600 600-500 600-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550 550 van-550 550-1600-550 550-600 500-550 550-550 550-550 550-550 550-550 550 - 1650 550 550-1650-550 550-550 550-1600 550 550-1650-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-1650 550-550 550-550 550-550 550-550 500-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-1650 550-1650 500-1650 550-550 550-1700 500
Accensione 23 C ° Freddo 2 FAN e Swing
RAW (150): 2084 2950-3050 2950-4400 550-1600 600-550 550-1650 550-550 550-550 550-1600 600-500 600-1600 550-500 600-1650 550-1650 550-1600 600-500 600-1600 600-500 600-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-500 600-550 550-500 600-1650 550-550 550-1600 600-500 600-1600 550-1600 600-500 600-500 600-550 550-500 600 - 1650 550-1600 600-500 600-500 550-1650 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-500 600-500 600-500 600-500 600-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-1650 550-1600 600-1600 550-550 600-500 550-550 550-550 550
Zoals gemeld in de bibliotheek iRemote, om opnieuw deze gegevens, er moet enkele wijzigingen, in het bijzonder, moet vervangen van afbreekstreepjes, verwijderen van de eerste waarde en plaats tussen de verschillende waarden, een komma, zoals in de Arduino code zal worden ingevoegd in een vector van natuurlijke getallen.
Om dit te vergemakkelijken, ik heb een klein programma in Java dat deze taken automatisch doen kan gemaakt.
Ook dit programma is beschikbaar in de Github repo en heet AcToolArduino. In deze eerste versie automatiseert het programma het proces door het invoeren van de gegevens in het tekstveld. In de volgende versie, die u kunt laden uit bestand, de resultaten van de seriële Arduino.