шумометр, заморозка результата
- Войдите на сайт для отправки комментариев
Втр, 11/08/2015 - 15:29
Всем доброго всего
помогите заморозить включенный светодиод на 2-3 секунды
функция делей не подходит, тормозит следующий результат
#define MIC A0
int sig = 0;
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void led() {
sig = analogRead(MIC);
if (sig>50) {digitalWrite(5, HIGH);}
else {digitalWrite(5, LOW);}//зажигаем светодиод 5 здесь нужно заморозить
if (sig>55) {digitalWrite(6, HIGH);}
else {digitalWrite(6, LOW);}//зажигаем светодиод 6 здесь нужно заморозить
long interval = 1000;
}
void loop() {
led();
}
http://arduino.ru/tutorials/BlinkWithoutDelay
http://arduino.ru/tutorials/BlinkWithoutDelay
Там ничего нет про заморозку .
теперь будет есть
Заморозка без делей... круто.
я там был, все перепробовал, наверно где то вкосяцил
подставьте пожалуйста, а то бошка уже не варит
#define MIC A0 int sig = 0; void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT); } void led() { sig = analogRead(MIC); if (sig>50) {digitalWrite(5, HIGH);} else {digitalWrite(5, LOW);}//зажигаем светодиод 5 здесь нужно заморозить if (sig>55) {digitalWrite(6, HIGH);} else {digitalWrite(6, LOW);}//зажигаем светодиод 6 здесь нужно заморозить } void loop() { led(); }Намекаю - millis()
куда впечатать, можно разжевать на печатном примере кода
Можно, ссылка в ответе нумбер ван.
да был я там и другие варианты смотрел, но в коде они не работают ибо я нуб
показывайте как Вы делали
да у меня белеберда, я даже не понимаю в этом миллис как его привентить к коду #define MIC A0 int sig = 0; long previousMillis = 0; // храним время последнего переключения светодиода long interval = 1000; // интервал между включение/выключением светодиода (1 секунда) void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT); } void led() { sig = analogRead(MIC); if (sig>50) {digitalWrite(5, HIGH); unsigned long currentMillis = millis(); //проверяем не прошел ли нужный интервал, если прошел то if(currentMillis - previousMillis > interval) { // сохраняем время последнего переключения previousMillis = currentMillis;} else {digitalWrite(5, LOW);}//зажигаем светодиод 5 здесь нужно заморозить if (sig>55) {digitalWrite(6, HIGH);} else {digitalWrite(6, LOW);}//зажигаем светодиод 6 здесь нужно заморозить } void loop() { led(); }в строчке 24 Вы проверяете прошло-ли достаточно времени. Давайте подумаем вместе - что должно выполняться при тру и при фолс?
уважаемый доктор, не надо ставить мне диагноз, я его и сам знаю
при тру и при фолс- что такое?
как заморозить 20 строку на секунду?
прошу простой пример
дальше я сам
дайте волшебный пинок
На этом форуме я диагнозы не ставлю. Могу только клизму прописать. С патефонными иголками.
Я Вам даю пинки, но код за Вас я писать не буду.
тру и фолс это true and false
Это возвращаемые значения функции if
Ответьте мне честно на вопрос - Вам оно зачем? Диплом?
я режисер по свету, в г Железногорске
в камерный зал хотят зделать шумометр, зрители (дети) будут кричать а лампы будут загораться (вертикальная линейка)
мой код не позволяет это воплотить полноценно, а очень хочется
премьера на 1-2 сентября
спектакл "Доктор Зиги"
это чисто моя идея, для этого уже все есть, незватает самого главного-строчки в коде
#define MIC A0 int sig = 0; long previousMillis = 0; // храним время последнего переключения светодиода long interval = 1000; // интервал между включение/выключением светодиода (1 секунда) unsigned long currentMillis; boolen flag = false; void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT); currentMillis = millis(); } void led() { sig = analogRead(MIC); //проверяем не прошел ли нужный интервал, если прошел то if(currentMillis - previousMillis > interval) { // сохраняем время последнего переключения previousMillis = currentMillis; flag = true; } else { flag = false; } if (sig>50) { digitalWrite(5, HIGH); } else { if(flag) { digitalWrite(5, LOW); } } //зажигаем светодиод 5 здесь нужно заморозить if (sig>55) { digitalWrite(6, HIGH); } else { if(flag) { digitalWrite(6, LOW); } } } void loop() { led(); }Это только волшебный пинок!
Там как минимум 5(!) ошибок
ну благодарствую, с работы домой приеду (сборка дома) и отпишусь
ругается на 07 строку
хелп
boolean
да на все строку розовым выделяет
'flag' does not name a type
пишет
ну один шаг остался, помогите
Смысл если Вы мои сообщения все равно не читаете?
И шаг там далеко не один.
boolen исправь на boolean
загорелись все и горят
#define MIC A0 int sig = 0; long previousMillis = 0; // храним время последнего переключения светодиода long interval = 1000; // интервал между включение/выключением светодиода (1 секунда) unsigned long currentMillis; boolean flag = false; void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT); currentMillis = millis(); } void led() { sig = analogRead(MIC); if(currentMillis - previousMillis > interval) { previousMillis = currentMillis; flag = true; } else { flag = false; } if (sig>50) { digitalWrite(5, HIGH); } else { if(flag) { digitalWrite(5, LOW); } } if (sig>55) { digitalWrite(6, HIGH); } else { if(flag) { digitalWrite(6, LOW); } } } void loop() { led(); }загорелись от щелчка по микрофону
загорелись от щелчка по микрофону
ура! заработало!
так они так и горят не гаснут причем оба
14 строка должна быть не 14
вы че издеваитесь?
а какая, дрючте меня кодами я не против, давайте код
дайте ему код
сжальтесь, у меня двое дочерей
дайте ему код
не дадим
#define MIC A0 int sig = 0; unsigned long previousMillis = 0; // храним время последнего переключения светодиода void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT); } void led() { if ( millis() - previousMillis > 1000) // прошла секунда с момента зажигания светодиодов { digitalWrite(5, LOW); digitalWrite(6, LOW); } sig = analogRead(MIC); if ( sig > 50 ) { digitalWrite(5, HIGH); previousMillis = millis(); // запускаем отсчет с момента зажигания светодиода } if ( sig > 55 ) { digitalWrite(6, HIGH); previousMillis = millis(); // запускаем отсчет с момента зажигания светодиода } } void loop() { led(); }Детей жалко...
19-й
Araris - красавчик!!!!!!!
могу отправить на телефон чуток бабла
все турбина
аааааааааааааа работает, буду разбираться в логике, СПАСИБО ДРУЖИЩЕ
как же все просто
Гораздо интереснее (и полезнее на будущее) было бы подвести Вас к самостоятельному пониманию и решению задачи, ну да ладно..
вообще красота, очень полезное решение, без мозгоебства
Araris-как на тел скинуть бабос, чуток конечно но всеже
мега шумометр получился
Araris-как на тел скинуть бабос, чуток конечно но всеже
Не за что.
Araris ++ к уважухе...
вот это да, возможно такое на ардуинке сделать, всмысле доработать код
видео https://youtu.be/0xS4FCnPL-A
#define MIC A0 int sig = 0; unsigned long previousMillis = 0; // храним время последнего переключения светодиода void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT); } void led() { if ( millis() - previousMillis > 1000) // прошла секунда с момента зажигания светодиодов { digitalWrite(5, LOW); digitalWrite(6, LOW); } sig = analogRead(MIC); if ( sig > 50 ) { digitalWrite(5, HIGH); previousMillis = millis(); // запускаем отсчет с момента зажигания светодиода } if ( sig > 55 ) { digitalWrite(6, HIGH); previousMillis = millis(); // запускаем отсчет с момента зажигания светодиода } } void loop() { led(); }