Помогите разобраться с тактовой кнопкой
- Войдите на сайт для отправки комментариев
Втр, 01/03/2016 - 17:20
Итак имеется радиоуправляемый модуль.Вот с Ебай (http://www.ebay.com/itm/IC2262-2272-4-channel-wireless-remote-control-ki...)
Затея в следующим.Необходимо добиться режима фиксаций.То есть при нажатий на кнопки.Реле на глухо замыкалась.Читал что не хватает тока для срабатывание обмотки катушки реле.Но, это не важно.Можно транзистор впаять.Господа форумчани прощу написать скетч.Кодинг для радиоуправление
А причем тут "тактовая кнопка" и собственно ардуино?
Ну кнопка та без фиксаций получается.Как реализовать с фиксаций? Как вот на видео.Посмотрите (https://www.youtube.com/watch?v=fHSrYgY7K0E)
Proger_xxx , чего ты хочешь ?
О наконец-то.Надеюсь поможете! Итак у меня есть релейный модуль на 4 канала.Необходимо управлять (Включать-Отключать) этими реле.То есть нажал на кнопку "А" включилась лампа.Нажал обратно кнопку "А" выключилась.Вот и все! И так на все четыре канала.На пульте четыре кнопки на эти самые реле
я на этом радиомодуле сделал управление и 4х , и 8х модулем...
возможно управление до 8......1024 реле , можно и 4096 реле...
тибе надо код управлением реле ?
Да конечно.Если вам не трудно
Да конечно.Если вам не трудно
да !
по времени - надо искать коды...
напомни завтра - аха ?
Админ только не забудь пожалуйста.Кроме тебя мне никто не поможет.Люди молчать либо не знают.Либо лень искать
моя - мне админ !!!!
Угарно))) Ладно залей как только сможешь
Может быть....
Не угарно....
Кажися делал для - А+А , А+В , A+C ........... для каналов 1 , 2 , 3 ...................
не помню , нафиг не надо было
// Nano , 8 Canal // RF >>> 7 6 5 4 3 2 1 // DA D2 D0 D3 D1 VCC GND // Arduino 2 5 3 6 4 VCC GND #define Pause 1000 int n; #define CanalInterruptPin 2 byte Canal[ ] = { 7, 8, 9, 10, 11, 12, 13, A0 }; byte CanalState[ ] = { 1, 1, 1, 1, 1, 1, 1, 1 }; volatile byte CodeBtnRF = 0; volatile byte CodeBtnRFCount = 0; int CodeBtn = 0; byte CodeBtnTemp1 = 0; byte CodeBtnTemp2 = 0; unsigned long Time; int TimeStrobe = 2000; //********************************************************************* void setup() { Serial.begin(9600); for ( n = 0; n < 8; n++ ) { pinMode( Canal[ n ], OUTPUT ); } attachInterrupt( 0, ButtonPush, RISING ); } //********************************************************************* void ButtonPush() { CodeBtnRF = PIND>>3; CodeBtnRF = CodeBtnRF & B00001111; CodeBtnRFCount++; } //********************************************************************* void Otladka() { Serial.println( CodeBtnRFCount, HEX ); Serial.println( CodeBtnRF, HEX ); Serial.println( CodeBtnTemp1, HEX ); Serial.println( CodeBtnTemp2, HEX ); Serial.println( CodeBtn, DEC ); Serial.println( " " ); delay( Pause ); } //********************************************************************* void loop() { /* digitalWrite( Canal[ 0 ], LOW ); delay( 500 ); digitalWrite( Canal[ 0 ], HIGH ); delay( 500 ); digitalWrite( Canal[ 1 ], LOW ); delay( 500 ); digitalWrite( Canal[ 1 ], HIGH ); delay( 500 ); digitalWrite( Canal[ 2 ], LOW ); delay( 500 ); digitalWrite( Canal[ 2 ], HIGH ); delay( 500 ); digitalWrite( Canal[ 3 ], LOW ); delay( 500 ); digitalWrite( Canal[ 3 ], HIGH ); delay( 500 ); */ if ( 1 == CodeBtnRFCount ) { Time = millis(); CodeBtnTemp1 = CodeBtnRF; CodeBtnRFCount++; } if ( 2 == CodeBtnRFCount ) { if ( ( millis() - Time ) > TimeStrobe ) { CodeBtnRFCount = 0; } } if ( 3 == CodeBtnRFCount ) { CodeBtnTemp2 = CodeBtnRF; CodeBtn = ( CodeBtnTemp1<<4 ) | CodeBtnTemp2; CodeBtnRFCount = 0; } Otladka(); // канал 1 if ( 17 == CodeBtn ) { CanalState[ 0 ] = !CanalState[ 0 ]; digitalWrite( Canal[ 0 ], CanalState[ 0 ] ); CodeBtn = 0; } // канал 2 if ( 18 == CodeBtn ) { CanalState[ 1 ] = !CanalState[ 1 ]; digitalWrite( Canal[ 1 ], CanalState[ 1 ] ); CodeBtn = 0; } // канал 3 if ( 20 == CodeBtn ) { CanalState[ 2 ] = !CanalState[ 2 ]; digitalWrite( Canal[ 2 ], CanalState[ 2 ] ); CodeBtn = 0; } // канал 4 if ( 24 == CodeBtn ) { CanalState[ 3 ] = !CanalState[ 3 ]; digitalWrite( Canal[ 3 ], CanalState[ 3 ] ); CodeBtn = 0; } // канал 5 if ( 33 == CodeBtn ) { CanalState[ 4 ] = !CanalState[ 4 ]; digitalWrite( Canal[ 4 ], CanalState[ 4 ] ); CodeBtn = 0; } // канал 6 if ( 34 == CodeBtn ) { CanalState[ 5 ] = !CanalState[ 5 ]; digitalWrite( Canal[ 5 ], CanalState[ 5 ] ); CodeBtn = 0; } // канал 7 if ( 36 == CodeBtn ) { CanalState[ 6 ] = !CanalState[ 6 ]; digitalWrite( Canal[ 6 ], CanalState[ 6 ] ); CodeBtn = 0; } // канал 8 if ( 40 == CodeBtn ) { CanalState[ 7 ] = !CanalState[ 7 ]; digitalWrite( Canal[ 7 ], CanalState[ 7 ] ); CodeBtn = 0; } // канал AllOff if ( CodeBtn == 136 ) { PORTC = PORTC | B11111111; for ( n = 0; n < 8; n++ ) { CanalState[ n ] = 1; } CodeBtn = 0; } } //*********************************************************************Ооо спасибо! Примерно понял логику
и я - почти понял :)