X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=rf433ctl%2Frf433ctl.pde;h=ca214f704866a52cc31d0b79d5eac291bac23052;hb=261cd787a2c81663849b6638be5f5b444a8e9ad0;hp=c4a3133c70811085b41d1bb29bd24fcee963db9a;hpb=d40b5b73c1900b89761fa38d87401a762a7e32a6;p=svn42.git diff --git a/rf433ctl/rf433ctl.pde b/rf433ctl/rf433ctl.pde index c4a3133..ca214f7 100644 --- a/rf433ctl/rf433ctl.pde +++ b/rf433ctl/rf433ctl.pde @@ -11,7 +11,8 @@ #define IR_MOVEMENT_PIN 9 #define ONE_WIRE_PIN 8 #define PANIC_BUTTON_PIN 7 -#define BLUELED_PWM_PIN 6 +#define BLUELED_PWM_PIN 5 +#define PANICLED_PWM_PIN 6 #define BLUELED2_PWM_PIN 11 #define PHOTO_ANALOGPIN 0 //movement is reported if during IR_SAMPLE_DURATION at least IR_TRESHOLD ir signals are detectd @@ -31,27 +32,64 @@ IRsend irsend; //********************************************************************// // IR Codes, 32 bit, NEC -const int YAMAHA_CODE_BITS=32; -const unsigned long int YAMAHA_POWER = 0x000000005EA1F807; -const unsigned long int YAMAHA_CD = 0x000000005EA1A857; -const unsigned long int YAMAHA_TUNER = 0x000000005EA16897; -const unsigned long int YAMAHA_SAT = 0x000000005EA19867; -const unsigned long int YAMAHA_DVD = 0x000000005EA118E7; -const unsigned long int YAMAHA_DVD_SPDIF = 0x000000005EA1E817; -const unsigned long int YAMAHA_VCR_1 = 0x000000005EA1F00F; -const unsigned long int YAMAHA_TUNER_PLUS = 0x000000005EA108F7; -const unsigned long int YAMAHA_TUNER_ABCDE = 0x000000005EA148B7; -const unsigned long int YAMAHA_FRONT_LEVEL_P = 0x000000005EA101FE; -const unsigned long int YAMAHA_FRONT_LEVEL_M = 0x000000005EA1817E; -const unsigned long int YAMAHA_CENTRE_LEVEL_P = 0x000000005EA141BE; -const unsigned long int YAMAHA_CENTRE_LEVEL_M = 0x000000005EA1C13E; -const unsigned long int YAMAHA_REAR_LEVEL_P = 0x000000005EA17A85; -const unsigned long int YAMAHA_REAR_LEVEL_M = 0x000000005EA1FA05; -const unsigned long int YAMAHA_DELAY_TIME_P = 0x000000005EA14AB5; -const unsigned long int YAMAHA_DELAY_TIME_M = 0x000000005EA1CA35; -const unsigned long int YAMAHA_MUTE = 0x000000005EA138C7; -const unsigned long int YAMAHA_VOLUME_UP = 0x000000005EA158A7; -const unsigned long int YAMAHA_VOLUME_DOWN = 0x000000005EA1D827; +const int YAMAHA_CODE_BITS = 32; +const unsigned long int YAMAHA_CODE_BASE = 0x0000000005EA10000; + +const char YAMAHA_POWER_TOGGLE =0xF8; //Power On/Off +const char YAMAHA_POWER_OFF =0x78; //Power Off !!! +const char YAMAHA_SLEEP =0xEA; //Toggle Sleep 120/90/60/30min or Off + +const char YAMAHA_CD =0xA8; //Input CD +const char YAMAHA_TUNER =0x68; //Input Tuner +const char YAMAHA_TAPE =0x18; //Input Toggle Tape/CD +const char YAMAHA_DVD_SPDIF =0xE8; //Input Toggle DVD Auto / DVD Analog +const char YAMAHA_SAT_SPDIFF =0x2A; //Input Toggle Sat-DTV Auto / Sat-DTV Analog +const char YAMAHA_AUX =0xAA; //Input AUX (mode) +const char YAMAHA_VCR =0xF0; //Input VCR +const char YAMAHA_EXT51DEC =0xE1; //Input Ext. Decoder On/Off + +const char YAMAHA_TUNER_PLUS =0x08; //Tuner Next Station 1-7 (of A1 - E7) +const char YAMAHA_TUNER_ABCDE =0x48; //Tuner Next Station Row A-E (of A1 - E7) + +const char YAMAHA_MUTE =0x38; +const char YAMAHA_VOLUME_UP =0x58; +const char YAMAHA_VOLUME_DOWN =0xD8; + +//const char YAMAHA_FRONT_LEVEL_P =0x01; //no function +//const char YAMAHA_FRONT_LEVEL_M =0x81; //no function +//const char YAMAHA_CENTRE_LEVEL_P =0x41; //no function +//const char YAMAHA_CENTRE_LEVEL_M =0xC1; //no function +//const char YAMAHA_REAR_LEVEL_P =0x7A; //no function +//const char YAMAHA_REAR_LEVEL_M =0xFA; //no function +const char YAMAHA_PLUS =0x4A; //unteres Steuerkreuz: Taste Rechts (Plus) +const char YAMAHA_MINUS =0xCA; //unteres Steuerkreuz: Taste Links (Minus) +const char YAMAHA_MENU =0x39; // Menu: Settings +const char YAMAHA_TEST =0xA1; // Test Sounds +const char YAMAHA_TIME_LEVEL =0x19; //Settings for Delay, Subwfs, Right Surround, Left Surround, Center +const char YAMAHA_TIME_LEVEL2 =0x61; //(also) Settings for Delay, Subwfs, Right Surround, Left Surround, Center +const char YAMAHA_TIME_LEVEL3 =0x99; //(also) Settings for Delay, Subwfs, Right Surround, Left Surround, Center + +const char YAMAHA_EFFECT_TOGGLE =0x6A; //Effect Toggle On/Off +const char YAMAHA_PRG_DOWN =0x9A; //Effect/DSP Programm Toggle in down direction +const char YAMAHA_PRG_UP =0x1A; //Effect/DSP Programm Toggle in up direction +const char YAMAHA_EFFECT1 =0x31; //Effect TV Sports +const char YAMAHA_EFFECT2 =0x71; //Effect Rock Concert +const char YAMAHA_EFFECT3 =0xB1; //Effect Disco +const char YAMAHA_EFFECT4 =0xD1; //Mono Movie +const char YAMAHA_EFFECT5 =0x91; //Effect Toggle 70mm Sci-Fi / 70mm Spectacle +const char YAMAHA_EFFECT6 =0x51; //Effect Toggle 70mm General / 70mm Adventure +const char YAMAHA_P5 =0xFB; //P5 PRT (1 Main Bypass)? (1587674115) + + +void send_yamaha_ir_signal(char codebyte) +{ + unsigned long int code = codebyte & 0xFF; + code <<= 8; + code |= (0xff ^ codebyte) & 0xFF; + code |= YAMAHA_CODE_BASE; + irsend.sendNEC(code,YAMAHA_CODE_BITS); + Serial.println("Ok"); +} //********************************************************************// @@ -318,9 +356,9 @@ void calculate_led_level(unsigned int pwm_pin) if (flash_led_brightness_ == 255) { if (flash_led_time_) - analogWrite(BLUELED_PWM_PIN, 255-c); + analogWrite(PANICLED_PWM_PIN, c); else - analogWrite(BLUELED_PWM_PIN, c); + analogWrite(PANICLED_PWM_PIN, 255-c); } } @@ -342,10 +380,11 @@ void setup() pinMode(RF_DATA_OUT_PIN, OUTPUT); digitalWrite(RF_DATA_OUT_PIN, HIGH); pinMode(IR_MOVEMENT_PIN, INPUT); // set pin to input - digitalWrite(IR_MOVEMENT_PIN, LOW); // turn off pullup resistors + digitalWrite(IR_MOVEMENT_PIN, LOW); // turn off pulldown resistors pinMode(PANIC_BUTTON_PIN, INPUT); // set pin to input - digitalWrite(PANIC_BUTTON_PIN, HIGH); // turn on pullup resistors - analogWrite(BLUELED_PWM_PIN,0); + digitalWrite(PANIC_BUTTON_PIN, LOW); // turn on pulldown resistors + analogWrite(BLUELED_PWM_PIN,255); + analogWrite(PANICLED_PWM_PIN,255); analogWrite(BLUELED2_PWM_PIN,255); //pwm sink(-) instead of pwm + (better for mosfets) pinMode(IRREMOTE_SEND_PIN, OUTPUT); digitalWrite(IRREMOTE_SEND_PIN, HIGH); @@ -382,7 +421,7 @@ void loop() if (pb_time < PB_TRESHOLD) pb_time++; - pb_state=(digitalRead(PANIC_BUTTON_PIN) == LOW); + pb_state=(digitalRead(PANIC_BUTTON_PIN) == HIGH); if (ir_time == 0) { @@ -401,7 +440,7 @@ void loop() { pb_postth_state=1; Serial.println("PanicButton"); - flash_led(7,1,2); + flash_led(14,1,2); } else if (!pb_state) pb_postth_state=0; @@ -413,7 +452,7 @@ void loop() } updateLightLevel(PHOTO_ANALOGPIN); - calculate_led_level(BLUELED_PWM_PIN); + calculate_led_level(PANICLED_PWM_PIN); check_frame_done(); if(Serial.available()) { @@ -464,41 +503,48 @@ void loop() sensorEchoCommand(command); printLightLevel(); } + else if (command == '0') + send_yamaha_ir_signal(YAMAHA_POWER_OFF); else if (command == '1') - { - irsend.sendNEC(YAMAHA_POWER,YAMAHA_CODE_BITS); - Serial.println("Ok"); - } + send_yamaha_ir_signal(YAMAHA_POWER_TOGGLE); else if (command == '2') - { - irsend.sendNEC(YAMAHA_CD,YAMAHA_CODE_BITS); - Serial.println("Ok"); - } + send_yamaha_ir_signal(YAMAHA_VOLUME_UP); else if (command == '3') - { - irsend.sendNEC(YAMAHA_DVD_SPDIF,YAMAHA_CODE_BITS); - Serial.println("Ok"); - } + send_yamaha_ir_signal(YAMAHA_VOLUME_DOWN); else if (command == '4') - { - irsend.sendNEC(YAMAHA_TUNER,YAMAHA_CODE_BITS); - Serial.println("Ok"); - } + send_yamaha_ir_signal(YAMAHA_MUTE); else if (command == '5') - { - irsend.sendNEC(YAMAHA_VOLUME_UP,YAMAHA_CODE_BITS); - Serial.println("Ok"); - } + send_yamaha_ir_signal(YAMAHA_CD); else if (command == '6') - { - irsend.sendNEC(YAMAHA_VOLUME_DOWN,YAMAHA_CODE_BITS); - Serial.println("Ok"); - } + send_yamaha_ir_signal(YAMAHA_TUNER); else if (command == '7') - { - irsend.sendNEC(YAMAHA_MUTE,YAMAHA_CODE_BITS); - Serial.println("Ok"); - } + send_yamaha_ir_signal(YAMAHA_DVD_SPDIF); + else if (command == '8') + send_yamaha_ir_signal(YAMAHA_MENU); + else if (command == '+') + send_yamaha_ir_signal(YAMAHA_PLUS); + else if (command == '-') + send_yamaha_ir_signal(YAMAHA_MINUS); + else if (command == 'ยง') + send_yamaha_ir_signal(YAMAHA_TEST); + else if (command == '$') + send_yamaha_ir_signal(YAMAHA_TIME_LEVEL); + else if (command == '%') + send_yamaha_ir_signal(YAMAHA_EFFECT_TOGGLE); + else if (command == '&') + send_yamaha_ir_signal(YAMAHA_PRG_DOWN); + else if (command == '/') + send_yamaha_ir_signal(YAMAHA_PRG_UP); + else if (command == '(') + send_yamaha_ir_signal(YAMAHA_TUNER_PLUS); + else if (command == ')') + send_yamaha_ir_signal(YAMAHA_TUNER_ABCDE); + else if (command == '9') + send_yamaha_ir_signal(YAMAHA_TAPE); + else if (command == '?') + send_yamaha_ir_signal(YAMAHA_VCR); + else if (command == '=') + send_yamaha_ir_signal(YAMAHA_EXT51DEC); else Serial.println("Error: unknown command"); }