Добрый вечер, помогите разобратся с кодом. Подключил к arduino uno интернет шилд и разобрался как получать данные с сервера. нужно чтоб при получении с сервера '1' Пьезо пищалка издала 3 коротких сигнала, и выключилась. А в моем случае она без остановки каждый круг прочтения кода повторяет пищать((, Подскачите пожалуйста новичку как сделать чтоб в цикле задача выполнилась всего один раз. Может както функцию прописать. Вот сам код: Код (C++): 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); } За рание спасибо!!!
вместо пищалки я подсоединю mp3 модуль, и например на сервере нажал кнопку, mp3 модуль проиграл 1 раз "освещение включено" а не повторял как попугай по кругу.
if ( c=='1')//Если пришла единица { buff=1;//Переменная buff стает единицей } При каждом проходе цикла постоянно кидает единицу)) Там переключатель. Реально както прописать чтоб один раз выполнило и все?
После того как действие выполнилось обнулите Пробовал, не поможет после каждого прохода по коду, она выше получает опять 1 ( И опять по кругу пищит Я думаю может какую нить функцию придумать?
Вы читаете ответ сервера, помимо единицы или ноля, там куча служебной информации, Поэтому так много пищалка и пищит. После Код (C++): char c = client.read(); //считываю данные с сервера Выведите Код (C++): Serial.print(с); Увидите какой ответ сервер вам выдает