roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 23:10

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Нужна помощь в управлении клавишами !
СообщениеДобавлено: 08 сен 2015, 14:05 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь в управлении клавишами !
СообщениеДобавлено: 08 сен 2015, 16:07 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
в уарт отсылается не одна, а две команды - включить, выключить. хоть примерно так корявенько
Код:
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"; переменная = "не нажата"};


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь в управлении клавишами !
СообщениеДобавлено: 08 сен 2015, 16:38 
Не в сети

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь в управлении клавишами !
СообщениеДобавлено: 08 сен 2015, 19:19 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь в управлении клавишами !
СообщениеДобавлено: 08 сен 2015, 21:15 
Не в сети

Зарегистрирован: 08 сен 2015, 14:00
Сообщения: 3
Вот ... добрые люди кое что дали , но все-равно не работает !:(
Код:

#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);
}
}

}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь в управлении клавишами !
СообщениеДобавлено: 09 сен 2015, 19:13 
Не в сети
Аватара пользователя

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

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO