Помогите новичку
- Войдите на сайт для отправки комментариев
Вс, 26/03/2017 - 19:34
Добрый вечер, помогите разобратся с кодом. Подключил к arduino uno интернет шилд и понял как получать данные с сервера.
нужно чтоб при получении с сервера '1' Пьезо пищалка издала 3 коротких сигнала, и выключилась.
А в моем случае она без остановки каждый круг прочтения кода повторяет пищать((,
Подскачите пожалуйста новичку как сделать чтоб в цикле задача выполнилась всего один раз. Может както функцию прописать.
вод код:
char c = client.read(); //считываю данные с сервера if ( c=='1')//Если пришла единица { buff=1;//Переменная buff стает единицей } if ( c=='0') { buff=0; } client.stop(); client.flush(); delay(100); } else { client.stop(); delay(2000); client.connect(server, 80); } if ( buff==1)//если переменная buff равна 1 { analogWrite(soundPin, 20); delay(100); analogWrite(soundPin, 0); delay(100); analogWrite(soundPin, 20); //3 КОРОТКИХ СИГНАЛА delay(100); analogWrite(soundPin, 0); delay(100); analogWrite(soundPin, 20); delay(100); analogWrite(soundPin, 0); } else// ЕСЛИ НЕТ Выключаем звук { analogWrite(soundPin, 0); } delay(500); }
Спаибо зарание!!!!!
Как сделать чтоб программа в цикле включила "пьезо" Всего один раз) 3 час голову ломаю.
Сбросьте buff после цикла.
Наверно после 32 строки вставить buff=0; ?
Угадал
Щас попробую спасибо! Отпишусь
Нет не получается, после следуйщего прохода по коду программа снова присваивает buff единице и цикл поторяет работу пищалки(
Значит, в client.read() всегда единица...?
3 час голову ломаю.
Всего-то? И уже сдались и прибежали за помощью?
Поработали б недельку или месячишко ... и задачу бы решили и пользы бы было куда как больше, чем по форумам побираться :(
Да) сервер при кажном проходе цикла постоянно кидает единицу)) Там переключатель.
Реально както прописать чтоб один раз выполнило и все.
Большую часть извесных мне вариантов перепробовал, если знаешь ответ подскажи.
вместо пищалки я подсоединю mp3 модуль, и например на сервере нажал кнопку, mp3 модуль проиграл 1 раз "освещение включено" а не повторял как попугай по кругу.
gira026, если вы хотите сделать сей проект и завязать на этом, то ждите ответа. Если собираетесь продолжать, то отложите пока умную шилду, возьмите дуню, резистор, кнопку и заставьте их делать то, что требуется вам. Пользы будет на пару порядков больше, чем если напишут за вас. Очень интересно сразу написать ИИ, только так не бывает. ИМХО.
С дуней и резистором уже прошел, Нужен пример, по моей проблеме, Если знаете как помочь, буду благодарен.
строка 3 - buff = buff+1;
При условии, что число циклов с 1 не превысит 254
Иначе после той строки добавить if (buff == 128) buff=2; // к примеру
Если сервер кидает единицу, значит это комунибудь нужно? Что вам мешает завести флаг - сработал писк один раз- и пока сервер не перестанет кидать единицу проверять его перед писком? Обнулять флаг когда сервер кинет ноль. Т.е. подготовиться к следующей единице с сервера.
И?
Спасибо тебе!!!!!!! Разобрался!
Четкий форум!
Спасибо тебе!!!!!!! Разобрался!
Четкий форум!
тут картошку не сажают - сеют только вечное )))
Создал для этой задачи под buff - buff2
И просто добавил после цикла ему buff2=buff2+1;
;)