first commit
This commit is contained in:
55
IRHacking/IRHacking.ino
Executable file
55
IRHacking/IRHacking.ino
Executable file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
Hacking Infrarouge
|
||||
*/
|
||||
|
||||
// initialise la broche 2 en mode brut
|
||||
#define IRpin_PIN PIND
|
||||
#define IRpin 2
|
||||
// définit le nombre de µs maximum à utiliser pour récupérer le signal
|
||||
#define MAXPULSE 65000
|
||||
// définit la résolution
|
||||
#define RESOLUTION 20
|
||||
// définit le tableau qui contiendra les 100 impulsions
|
||||
uint16_t pulses[100][2];
|
||||
uint8_t currentpulse=0;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
Serial.println("Ready to decode IR !");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
uint16_t highpulse, lowpulse;
|
||||
highpulse = lowpulse = 0;
|
||||
while (IRpin_PIN & (1 << IRpin)) {
|
||||
highpulse++;
|
||||
delayMicroseconds(RESOLUTION);
|
||||
if ((highpulse >= MAXPULSE) && (currentpulse != 0)) {
|
||||
printpulses();
|
||||
currentpulse = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
pulses[currentpulse][0] = highpulse;
|
||||
while (! (IRpin_PIN & _BV(IRpin))) {
|
||||
lowpulse++;
|
||||
delayMicroseconds(RESOLUTION);
|
||||
if ((lowpulse >= MAXPULSE) && (currentpulse != 0)) {
|
||||
printpulses();
|
||||
currentpulse = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
pulses[currentpulse][1] = lowpulse;
|
||||
currentpulse++;
|
||||
}
|
||||
|
||||
void printpulses(void) {
|
||||
Serial.println("\n\r\n\rReceived:\n\rOFF \tON");
|
||||
for (uint8_t i = 0; i < currentpulse; i++) {
|
||||
Serial.print(pulses[i][0] * RESOLUTION, DEC);
|
||||
Serial.print(" usec, ");
|
||||
Serial.print(pulses[i][1] * RESOLUTION, DEC);
|
||||
Serial.println(" usec");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user