звук
- Войдите на сайт для отправки комментариев
Пт, 02/03/2012 - 19:08
Приветствыю, может кто поможет. Что не так?
Хочу, что бы при нажатии кнопки, пишала 3 раза.
Оно пишит постоянно
#include "inc.h" void setup() { // put your setup code here, to run once: pinMode(BUTTON2, INPUT); } void loop() { // put your main code here, to run repeatedly: if (digitalRead(BUTTON2 == LOW)){ beep(); } if (digitalRead(BUTTON2 == HIGH)){ noTone(3); } else{ noTone(3); } } void beep() { tone(3, 128, 50) ; delay(200); tone(3, 256, 50) ; delay(200); tone(3, 512, 50) ; delay(200); noTone(3); }
А если паузы побольше сделать, скажем delay(2000);
Все равно пищит постоянно?
То же самое, токо паузы подлинней. На нажатие кнопки не реагирует, пищит как загрузишь
Лучше начать с того как ты подключил кнопку.
так ты тон то отключи...
алгоритм такой - включаешь тон ждешь определенное время он пищит, выключешь, ждешь определенное время.... потом по новой
в функции beep()
ой простите не понял суть проблемы.. правильно.. нужно начать с кнопки
так ты тон то отключи...
алгоритм такой - включаешь тон ждешь определенное время он пищит, выключешь, ждешь определенное время.... потом по новой
в функции beep()
Как? он пишит и не реагирует на кнопку. Мне нужно, что бы он попишал 3 раза и заткнулся
попробуй поменять местами 14 и 18 строки кода, если уверен, что правильно кнопку подключил
попробуй поменять местами 14 и 18 строки кода, если уверен, что правильно кнопку подключил
Правильно подключил. :(
вот это работает, а моя мазня нет
http://www.arduino.cc/en/Tutorial/Pushbutton
Ты кстати забыл объявить на каком пине у тебя кнока висит
Ты кстати забыл объявить на каком пине у тебя кнока висит
вот , что и где висит
строки местами менял? просто странно, но по программе у тебя получется что пока кнопка отпущена на пинеоткуда-то сигнал...
поменяй строки)
строки местами менял? просто странно, но по программе у тебя получется что пока кнопка отпущена на пинеоткуда-то сигнал...
поменяй строки)
Поменял, и кнопку помянял. И код сверху от nestandart запихнул в beep()
пищит как резанный
Попробуйте без отдельной функции.
Просто в loop.
Пищит как резаный это значит циклично делает три писка разной частоты по очереди ?
Если нажать и держать кнопку произойдет три писка и все.
Если отпустить и снова нажать ситуация повториться.
Не забываем про подтягивающие резисторы.
Нет ему просто плевать на кнопку. На все 3 кнопки
если флаг прописан в функции то да, 3 три писка разной частоты по очереди И по кругу
если глобальаня переменная то 128,256, застревает на последнем и пишит на 512
Ну вот, поменял флаг с булеана на инт заработало :) Спасибо.
в C нотации: "digitalRead(BUTTON2 == LOW)" означает:
1. вычислить значение выражения "BUTTON2 == LOW", оно будет булевым, либо true (1) либо false(0)
2. передать вычисленное булевое значение функции digitalRead. так как оно либо 0 либо 1, то читать будет из 0 или 1 пина