/******************************************************************/
// FILE 赤外線リモコン送信
// DATE :Tue, Jan 10, 2025
// DESCRIPTION : 赤外線リモコン送信 TLN105B
//
// CPU TYPE : Arduino UNO
// by Chiyabo
// This file is generated by Renesas Project Generator.
//
/******************************************************************/
#include < IRremote.hpp > // include the library
#define BAUDRATE 9600
#define SEND_IrDa_PIN 4
#define ARW_PIN1 A0
#define ARW_PIN2 A1
#define ARW_PIN4 A2
#define ARW_PIN8 A3
#define CRW_PIN1 5
#define CRW_PIN2 6
#define CRW_PIN4 7
#define CRW_PIN8 8
#define BUTTON_PIN 12
uint8_t OutAddress ;
uint8_t OutCommand ;
uint8_t sRepeats = 0 ; // Repeet Num
// aAddress
const unsigned char AddressSel[ ] = { 0x40, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90,
0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0x43
} ;
// Command
const unsigned char CommandSel[ ] = { 0x10, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x1B, 0x1F, 0x1A, 0x1E, 0x1C, 0x52
} ;
void setup( ){
Serial.begin( BAUDRATE ) ;
pinMode( ARW_PIN1, INPUT_PULLUP ) ;
pinMode( ARW_PIN2, INPUT_PULLUP ) ;
pinMode( ARW_PIN4, INPUT_PULLUP ) ;
pinMode( ARW_PIN8, INPUT_PULLUP ) ;
pinMode( CRW_PIN1, INPUT_PULLUP ) ;
pinMode( CRW_PIN2, INPUT_PULLUP ) ;
pinMode( CRW_PIN4, INPUT_PULLUP ) ;
pinMode( CRW_PIN8, INPUT_PULLUP ) ;
pinMode( BUTTON_PIN, INPUT_PULLUP ) ;
IrSender.begin( SEND_IrDa_PIN ) ;
}
void loop( ){
unsigned char AddressNo = 0 ;
unsigned char CommandNo = 0 ;
if( digitalRead( ARW_PIN1 ) == LOW ){
AddressNo = ( AddressNo + 1 ) ;
}
if( digitalRead( ARW_PIN2 ) == LOW ){
AddressNo = ( AddressNo + 2 ) ;
}
if( digitalRead( ARW_PIN4 ) == LOW ){
AddressNo = ( AddressNo + 4 ) ;
}
if( digitalRead( ARW_PIN8 ) == LOW ){
AddressNo = ( AddressNo + 8 ) ;
}
OutAddress = AddressSel[ AddressNo ] ;
if( digitalRead( CRW_PIN1 ) == LOW ){
CommandNo = ( CommandNo + 1 ) ;
}
if( digitalRead( CRW_PIN2 ) == LOW ){
CommandNo = ( CommandNo + 2 ) ;
}
if( digitalRead( CRW_PIN4 ) == LOW ){
CommandNo = ( CommandNo + 4 ) ;
}
if( digitalRead( CRW_PIN8 ) == LOW ){
CommandNo = ( CommandNo + 8 ) ;
}
OutCommand = CommandSel[ CommandNo ] ;
// Receiver output for the first loop must be: Protocol=NEC Address=0x102
//Command=0x34 Raw-Data=0xCB340102 (32 bits)
if( digitalRead( BUTTON_PIN ) == LOW ){
delay(10) ; //10msWait
if( digitalRead( BUTTON_PIN ) == LOW ){
Serial.println( "Button_On" ) ;
IrSender.sendNEC( OutAddress, OutCommand, sRepeats ) ;
Serial.println( OutAddress, HEX ) ;
Serial.println( OutCommand, HEX ) ;
while( digitalRead( BUTTON_PIN ) == LOW ) ; //HIGHになるまで待つ
}
}
// delay must be greater than 5 ms (RECORD_GAP_MICROS),
//otherwise the receiver sees it as one long signal
delay( 100 ) ;
}