Ви не увійшли.
Народ ! Есть такая задача, управлять платой релюшек с помощью комповой клавиатуры, а точнее 4мя кнопками, но вот в чем проблема...
Есть код, который управляет релюшками, но только как включатель или выключатель, а проблема в том, что нужно что-бы реле было замкнуто только пока зажата клавиша на компе, а при отпускании реле должно выключаться !
К сожалению я полный нуб в программировании и буду очень признателен за простой ответ, а если бы кто-то код дал, то я вааще расцелую !)))
Вот код для простого вкл., выкл оной кнопкой ....
#define ledPin 13
bool state = 0;
void setup()
{
Serial.begin(9600);
pinMode (ledPin, OUTPUT);
}
void loop()
{
while(Serial.available())
{
char val = Serial.read();
if (val == 'd') state = !state;
if(state)
{
Serial.println("ON");
digitalWrite(ledPin, HIGH);
}
else
{
Serial.println("OFF");
digitalWrite(ledPin, LOW);
}
}
}
Неактивний
вам нужна внешняя программа которая отслеживала бы нажатие клавиш и передавала управляющие команды для ардуино,
вар1
типа R0\r\n - relay 0 - off
типа R1\r\n - relay 0 - on
вар2
00000\r\n - все выключенные
11111\r\n - все включенны
вар3 и вероятно наиболее оптимальный если не будет других фунций
этот вариант может работать и сейчас
0 - все выключены
3 - включены только 0,1
F = 0b1111 включены все
т.е. передавать только события
нужно эхо - контролировать факт переключения, если какой сбой повторно повторить команду.
Неактивний
void set_relay ( int mask )
{
if ( (mask & 0x01) == 0x01 ) digitalWrite(Relay0, HIGH); else digitalWrite(Relay0, LOW);
if ( (mask & 0x02) == 0x02 ) digitalWrite(Relay1, HIGH); else digitalWrite(Relay1, LOW);
if ( (mask & 0x04) == 0x04 ) digitalWrite(Relay2, HIGH); else digitalWrite(Relay2, LOW);
if ( (mask & 0x08) == 0x08 ) digitalWrite(Relay3, HIGH); else digitalWrite(Relay3, LOW);
}
ваш код
//------------------------------------------
char val = Serial.read();
switch ( val )
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
set_relay (val - '0');
break;
default:
// error command
break;
}
Неактивний
Простенький код на том же python, который будет следить за клавишами и писать имя клавиши в serial, ардуиной читай serial и включай выключай реле в зависимости от того, что пришло в порт.
Неактивний