// ARDUINO NANO CANON RC-1 infrared remote control
#define F_CPU 16000000L // 16 MHz
#include <util/delay.h> // from arduino library
#define NPULSES 16
#define HPERIOD 0.01524
#define INSTANT 7.33
#define DELAYED 5.36
void setup()
{
pinMode( 5, OUTPUT); // for IR-LED on data 5
pinMode(13, OUTPUT); // for TEST-LED on data 13
}
void loop()
{
// asm volatile ("nop");
// asm volatile ("nop");
/***************** INSTANT MODE ****************************/
digitalWrite(13, HIGH); // set the test LED to ON
for(int i=0; i<NPULSES; i++)
{
digitalWrite( 5, HIGH); // set IR-LED to ON
_delay_ms(HPERIOD);
digitalWrite( 5, LOW); // set IR-LED to OFF
_delay_ms(HPERIOD);
}
_delay_ms(INSTANT); // _delay_ms(7.33); // instant mode
for(int i=0; i<NPULSES; i++)
{
digitalWrite( 5, HIGH); // set IR-LED to ON
_delay_ms(HPERIOD);
digitalWrite( 5, LOW); // set IR-LED to OFF
_delay_ms(HPERIOD);
}
digitalWrite(13, LOW); // set the test LED to OFF
/***************** END OF INSTANT ****************************/
_delay_ms(5000); // 5 seconds delay
/***************** DELAYED MODE ******************************/
digitalWrite(13, HIGH); // set the test LED to ON
for(int i=0;i<NPULSES;i++)
{
digitalWrite( 5, HIGH); // set IR-LED to ON
_delay_ms(HPERIOD);
digitalWrite( 5, LOW); // set IR-LED to OFF
_delay_ms(HPERIOD);
}
_delay_ms(DELAYED); // _delay_ms(5.36); // delayed mode
for(int i=0;i<NPULSES;i++)
{
digitalWrite( 5, HIGH); // set IR-LED to ON
_delay_ms(HPERIOD);
digitalWrite( 5, LOW); // set IR-LED to OFF
_delay_ms(HPERIOD);
}
digitalWrite(13, LOW); // set the test LED to OFF
/***************** DELAYED MODE ******************************/
_delay_ms(5000); // 5 seconds delay
}