roboforum.ru

Технический форум по робототехнике.

Нужна помощь в управлении клавишами !

Вопросы не попавшие в другие категории.

Нужна помощь в управлении клавишами !

Сообщение Mamaley » 08 сен 2015, 14:05

Народ ! Есть такая задача, управлять платой релюшек с помощью комповой клавиатуры, а точнее 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);
}
}
}
Mamaley
 
Сообщения: 3
Зарегистрирован: 08 сен 2015, 14:00

Re: Нужна помощь в управлении клавишами !

Сообщение Angel71 » 08 сен 2015, 16:07

в уарт отсылается не одна, а две команды - включить, выключить. хоть примерно так корявенько
Код: Выделить всёРазвернуть
while(Serial.available())
{
  char val = Serial.read();
  if (val == 'a')
  {
    Serial.println("ON");
    digitalWrite(ledPin, HIGH);
  }
  if (val == 'b')
  {
    Serial.println("OFF");
    digitalWrite(ledPin, LOW);
  }
}

а на компьютере отслеживаете изменения. как, это к своей гадалке, всё зависит от языка и кучи всего прочего зависит. можно использовать события на подобии "нажата кнопка", onkeypressed, onkeychanged и т.д. или как то там сами ручками проверяете, хоть так
если (состояние кнопки такой == нажата и переменная != нажата) {отправить в уарт "a"; переменная = "нажата"};
если (состояние кнопки такой != нажата и переменная == нажата) {отправить в уарт "b"; переменная = "не нажата"};
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Нужна помощь в управлении клавишами !

Сообщение Mamaley » 08 сен 2015, 16:38

Спасибо, но увы для меня ето дремучий лес :%)
Mamaley
 
Сообщения: 3
Зарегистрирован: 08 сен 2015, 14:00

Re: Нужна помощь в управлении клавишами !

Сообщение Angel71 » 08 сен 2015, 19:19

тогда или не беритесь программировать или учитесь. а вместо повторной констатации, если хотите, что бы кто-то за вас написал, так по делу пишите.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Нужна помощь в управлении клавишами !

Сообщение Mamaley » 08 сен 2015, 21:15

Вот ... добрые люди кое что дали , но все-равно не работает !:(
Код: Выделить всёРазвернуть

#define ledPin 13
unsigned long time;
char val;
int flag = 1;

void setup(){
Serial.begin(9600);
}


void loop(){
val=0;
if (Serial.available() > 0) {
val = Serial.read();

if (val == 'd' && flag == 1) {
digitalWrite(ledPin, HIGH); // включаем, если пришло 'd'
time = millis(); // старт отсчета
flag = 0; // разрешаем проверку
}
}

if(flag == 0){
if(time+1000 < millis()){ // ждем 1 сек
flag = 1;
// если по истечении 1 сек переменная val пустая, значит ничего не приходит
if (val == 0) digitalWrite(ledPin, LOW);
}
}

}
Mamaley
 
Сообщения: 3
Зарегистрирован: 08 сен 2015, 14:00

Re: Нужна помощь в управлении клавишами !

Сообщение dccharacter » 09 сен 2015, 19:13

Ты объясни толком, что ты не стороне компа делаешь. Я подозреваю, что что-то очень смешное :-) Типа сидишь в терминале, нажимаешь кнопку, видишь улетевший на тот конец символ, отпускаешь кнопку, не видишь никакой реакции и расстраиваешься.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей


Вернуться в Обо всём

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11