X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=rf433ctl%2Frf433ctl.pde;h=47673143c322f50ce8aefb730da2b4c27b586fc8;hb=8476c3f31a5e7e8949feb8ae618df8bcb421c991;hp=2edb9d4c5b8781355681487a29d437b1ab4b6fff;hpb=1ec80d18c4e5fd7d1be61cf8814d0658d5acdb49;p=svn42.git diff --git a/rf433ctl/rf433ctl.pde b/rf433ctl/rf433ctl.pde index 2edb9d4..4767314 100644 --- a/rf433ctl/rf433ctl.pde +++ b/rf433ctl/rf433ctl.pde @@ -11,6 +11,7 @@ #define ONE_WIRE_PIN 8 #define PANIC_BUTTON_PIN 7 #define BLUELED_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 #define IR_SAMPLE_DURATION 15000 @@ -140,9 +141,9 @@ void init_word(const word_t w) bit_cnt = 0; if(bit_defs[current_word[bit_cnt]][chunk_cnt].state) - digitalWrite(RF_DATA_OUT_PIN, HIGH); + digitalWrite(RF_DATA_OUT_PIN, LOW); //neue 12V MosFET Verstärkung invertiert Logik ! else - digitalWrite(RF_DATA_OUT_PIN, LOW); + digitalWrite(RF_DATA_OUT_PIN, HIGH); start_timer(); } @@ -156,9 +157,9 @@ ISR(TIMER1_COMPA_vect) chunk_cnt++; if(bit_defs[current_word[bit_cnt]][chunk_cnt].offset != 0) { if(bit_defs[current_word[bit_cnt]][chunk_cnt].state) - digitalWrite(RF_DATA_OUT_PIN, HIGH); + digitalWrite(RF_DATA_OUT_PIN, LOW); //neue 12V MosFET Verstärkung invertiert Logik ! else - digitalWrite(RF_DATA_OUT_PIN, LOW); + digitalWrite(RF_DATA_OUT_PIN, HIGH); return; } @@ -167,13 +168,13 @@ ISR(TIMER1_COMPA_vect) alpha_cnt = 0; chunk_cnt = 0; if(bit_defs[current_word[bit_cnt]][chunk_cnt].state) - digitalWrite(RF_DATA_OUT_PIN, HIGH); + digitalWrite(RF_DATA_OUT_PIN, LOW); //neue 12V MosFET Verstärkung invertiert Logik ! else - digitalWrite(RF_DATA_OUT_PIN, LOW); + digitalWrite(RF_DATA_OUT_PIN, HIGH); return; } stop_timer(); - digitalWrite(RF_DATA_OUT_PIN, LOW); + digitalWrite(RF_DATA_OUT_PIN, HIGH); word_cnt++; if(word_cnt < FRAME_LEN) @@ -204,7 +205,7 @@ void printTemperature(DeviceAddress deviceAddress) { dallas_sensors.requestTemperatures(); float tempC = dallas_sensors.getTempC(deviceAddress); - Serial.print("Temp C: "); + //Serial.print("Temp C: "); Serial.println(tempC TEMPC_OFFSET_ARDUINO_GENEREATED_HEAT); //Serial.print(" Temp F: "); //Serial.println(DallasTemperature::toFahrenheit(tempC)); // Converts tempC to Fahrenheit @@ -235,7 +236,7 @@ void updateLightLevel(unsigned int pin) void printLightLevel() { - Serial.print("Photo: "); + //Serial.print("Photo: "); Serial.println(light_level_mean_); } @@ -262,7 +263,7 @@ bool wait_millis(unsigned long ms) } unsigned int flash_led_time_=0; -unsigned int flash_led_brightness_=256; +unsigned int flash_led_brightness_=255; unsigned int flash_led_delay_=8; void calculate_led_level(unsigned int pwm_pin) { @@ -272,18 +273,26 @@ void calculate_led_level(unsigned int pwm_pin) return; flash_led_time_--; int c = abs(sin(float(flash_led_time_) / 100.0)) * flash_led_brightness_; - analogWrite(pwm_pin,c); + //int d = abs(sin(float(flash_led_time_) / 100.0)) * flash_led_brightness_; + analogWrite(BLUELED2_PWM_PIN, 255-c); + if (flash_led_brightness_ == 255) + { + if (flash_led_time_) + analogWrite(BLUELED_PWM_PIN, 255-c); + else + analogWrite(BLUELED_PWM_PIN, c); + } } void flash_led(unsigned int times, unsigned int brightness_divisor, unsigned int delay_divisor) { - flash_led_time_ += 314*times; - unsigned int new_flash_led_brightness=256/brightness_divisor; - unsigned int new_flash_led_delay = flash_led_delay_ / delay_divisor; + unsigned int new_flash_led_brightness = 255 / brightness_divisor; + unsigned int new_flash_led_delay = 8 / delay_divisor; if (flash_led_time_ == 0 || new_flash_led_brightness > flash_led_brightness_) flash_led_brightness_=new_flash_led_brightness; if (flash_led_time_ == 0 || new_flash_led_delay < flash_led_delay_) flash_led_delay_=new_flash_led_delay; + flash_led_time_ += 314*times; } //********************************************************************// @@ -291,12 +300,13 @@ void flash_led(unsigned int times, unsigned int brightness_divisor, unsigned int void setup() { pinMode(RF_DATA_OUT_PIN, OUTPUT); - digitalWrite(RF_DATA_OUT_PIN, LOW); + digitalWrite(RF_DATA_OUT_PIN, HIGH); pinMode(IR_MOVEMENT_PIN, INPUT); // set pin to input digitalWrite(IR_MOVEMENT_PIN, LOW); // turn off pullup resistors pinMode(PANIC_BUTTON_PIN, INPUT); // set pin to input digitalWrite(PANIC_BUTTON_PIN, HIGH); // turn on pullup resistors analogWrite(BLUELED_PWM_PIN,0); + analogWrite(BLUELED2_PWM_PIN,255); //pwm sink(-) instead of pwm + (better for mosfets) Serial.begin(9600); @@ -336,7 +346,7 @@ void loop() { if (ir_count >= IR_TRESHOLD) { - flash_led(1,2,1); + flash_led(1,8,1); Serial.println("movement"); } ir_time=IR_SAMPLE_DURATION;