Проблемы с #define
- Войдите на сайт для отправки комментариев
Сб, 13/08/2016 - 03:49
Есть такой код (выборка из сотни строк, но подписи строк не обращайте внимание):
Line 10: #define pinDigitalBuzzer 2 void setup() { Line 138: pinMode(pinDigitalBuzzer, OUTPUT); Line 139: digitalWrite(pinDigitalBuzzer, HIGH); } void loop() { Line 204: digitalWrite(pinDigitalBuzzer, LOW); Line 206: //Serial.println(pinDigitalBuzzer); Line 207: digitalWrite(pinDigitalBuzzer, HIGH); }
В таком виде бузер не издаёт щелчки, а если разкоментить 206 строку, бузер издаёт звук!
И еслии заменить pinDigitalBuzzer на "2" тоже издаёт звук!
Проверка Serial.println(pinDigitalBuzzer); показывает что pinDigitalBuzzer возвращает правильно значение, но почему не срабатывает digitalWrite не пойму.
В чём может быть проблема?
но почему не срабатывает digitalWrite не пойму
1. Вы уверены? Видели осциллографом несработку?
В чём может быть проблема?
2. Какая пищалка: активная/пассивная? Может всё дело в задержке на исполнение "
Line 206:
//Serial.println(pinDigitalBuzzer);
" кoторая и дает время сформироваться импульсу (ну или если активная пищалка , то дает время на пикнуть)В чём может быть проблема?
У вас в loop() нет никакой задержки, поэтому бузер работает на ультразвуке (который человек не слышит). Когда делается вывод в сериал, то появляется задержка, которая переводит бузер в звуковой диапазон.
Cпасибо за ответы!
Проверил, да, Бузеру требуется задержка, без неё вобще не слышно. Причём чем больше задержка тем громче звук.