Проблемы с #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пасибо за ответы!
Проверил, да, Бузеру требуется задержка, без неё вобще не слышно. Причём чем больше задержка тем громче звук.