Почему щелкает зуммер моего Arduino Nano?
EDIT: Мне очень жаль, но щелчок исходил не от Arduino, а от пьезозуммы! Я был не прав, и мне так жаль, что я ввел вас в заблуждение!
Недавно я купил Arduino Nano, чтобы уменьшить свою компоновку с помощью Arduino Uno, поэтому я спаял все вместе, а когда подключил Nano, то дополнительно убедился, что ничто не закорачивает друг друга. Но зуммер, прикрепленный к нему, продолжал издавать этот щелкающий звук. Кто-нибудь знает почему? Действительно ли у меня короткое замыкание?
Вот код:
#define LED 1
#define twoLED 2
#define threeLED 4
#define fourLED 5
#define fiveLED 6
#define sixLED 7
#define sevenLED 8
#define eightLED 9
#define nineLED 10
#define tenLED 11
int state = 0;
int old = 0;
int buttonPoll = 0;
void setup() {
pinMode (3,INPUT);
pinMode (11,OUTPUT);
pinMode(LED, OUTPUT);
pinMode(twoLED, OUTPUT);
pinMode(threeLED, OUTPUT);
pinMode(fourLED, OUTPUT);
pinMode(fiveLED, OUTPUT);
pinMode(sixLED, OUTPUT);
pinMode(sevenLED, OUTPUT);
pinMode(eightLED, OUTPUT);
pinMode(nineLED, OUTPUT);
pinMode(tenLED, OUTPUT);
digitalWrite(LED, LOW);
digitalWrite(twoLED,LOW);
digitalWrite(threeLED,LOW);
digitalWrite(fourLED, LOW);
digitalWrite(fiveLED, LOW);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
}
void loop() {
while (state == old)
{
buttonPoll = digitalRead (3);
if (buttonPoll ==1)
{
delay (50);
buttonPoll = digitalRead (3);
if (buttonPoll == 0)
{
state = old + 1;
}
}
else
{
delay(100);
}
switch (state)
{
case 1:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,LOW);
digitalWrite(threeLED,LOW);
digitalWrite(fourLED, LOW);
digitalWrite(fiveLED, LOW);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 2:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,LOW);
digitalWrite(threeLED,LOW);
digitalWrite(fourLED, LOW);
digitalWrite(fiveLED, LOW);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 3:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,LOW);
digitalWrite(fourLED, LOW);
digitalWrite(fiveLED, LOW);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 4:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,LOW);
digitalWrite(fourLED, LOW);
digitalWrite(fiveLED, LOW);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 5:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, LOW);
digitalWrite(fiveLED, LOW);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 6:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, LOW);
digitalWrite(fiveLED, LOW);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 7:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, LOW);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 8:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, LOW);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 9:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 10:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 11:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, HIGH);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 12:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, HIGH);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 13:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, HIGH);
digitalWrite(sevenLED, HIGH);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 14:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, HIGH);
digitalWrite(sevenLED, HIGH);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 15:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, HIGH);
digitalWrite(sevenLED, HIGH);
digitalWrite(eightLED, HIGH);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 16:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, HIGH);
digitalWrite(sevenLED, HIGH);
digitalWrite(eightLED, HIGH);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = state;
break;
case 17:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, HIGH);
digitalWrite(sevenLED, HIGH);
digitalWrite(eightLED, HIGH);
digitalWrite(nineLED, HIGH);
digitalWrite(tenLED, LOW);
old = state;
break;
case 18:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, HIGH);
digitalWrite(sevenLED, HIGH);
digitalWrite(eightLED, HIGH);
digitalWrite(nineLED, HIGH);
digitalWrite(tenLED, LOW);
old = state;
break;
case 19:
digitalWrite(LED, HIGH);
digitalWrite(twoLED,HIGH);
digitalWrite(threeLED,HIGH);
digitalWrite(fourLED, HIGH);
digitalWrite(fiveLED, HIGH);
digitalWrite(sixLED, HIGH);
digitalWrite(sevenLED, HIGH);
digitalWrite(eightLED, HIGH);
digitalWrite(nineLED, HIGH);
digitalWrite(tenLED, HIGH);
tone (11,493.88);
delay(150);
tone(11, 523.25);
delay(150);
tone(11,493.88);
delay(150);
tone(11,392.00);
delay(150);
tone(11,329.63);
delay(150);
tone(11, 261.63);
delay(150);
tone(11, 246.94);
delay(150);
tone (11,196.00);
delay(150);
tone(11, 246.94);
delay(150);
tone(11, 261.63);
delay(150);
tone(11,392.00);
delay(150);
tone(11,493.88);
delay(150);
tone(11, 523.25);
delay(150);
tone (11,493.88);
delay(150);
tone(11,493.88);
delay(150);
tone(11,392.00);
delay(150);
tone(11, 329.63);
delay(150);
noTone(11);
old = state;
state = 0;
old = 0;
break;
default:
digitalWrite(LED, LOW);
digitalWrite(twoLED,LOW);
digitalWrite(threeLED,LOW);
digitalWrite(fourLED, LOW);
digitalWrite(fiveLED, LOW);
digitalWrite(sixLED, LOW);
digitalWrite(sevenLED, LOW);
digitalWrite(eightLED, LOW);
digitalWrite(nineLED, LOW);
digitalWrite(tenLED, LOW);
old = 0;
break;
}
}
}
Вот видео щелчка: https://drive.google.com/file/d/1TprL56p2YyJ3j8cq43U2LYzaWofZpJM7/view?usp=sharing
@Éemia, 👍1
Обсуждение1 ответ
Более простой пьезос щелкает, когда напряжение подается, и снова, когда оно удаляется. Чтобы заставить его гудеть, ему нужен пульс: много щелчков делает гудение. Есть пьезо, которые имеют эту встроенную функцию, но я предполагаю, что у вас ее нет. Это на самом деле хорошая вещь в маскировке: она позволяет создавать тоны, создавая импульсные последовательности на разных частотах. Самый простой способ сделать это-подключить его к одному из ШИМ-выводов (5, 6, 9, 10 или 11) и использовать библиотечную функцию tone () (посмотрите, если вам нужно). Конечно, вы можете сделать это "вручную" тоже на любом выходном выводе, просто переключая его ВВЕРХ и ВНИЗ на скорости, которые вы выбираете, но это в значительной степени свяжет ваш процессор, по крайней мере, для более высоких частот.
Обновление:
Просто почему он не щелкал, когда я подключил его к Arduino Uno?
Я не могу сказать, не видя двух скетчей, но в вашем видео это звучит так, как будто он включается или выключается или пульсирует один раз в секунду.
Пожалуйста, добавьте ваш код (оба, если они разные) к вашему вопросу. Схема(ы) подключения пьезоэлемента к платам Arduino также поможет.
Большое спасибо за вашу информацию! Просто почему он не щелкал, когда я подключал его к Arduino Uno?, @Éemia
Хорошо, я загрузил код, но то, как я подключил пьезозуммер, - это просто то, что я подключил положительную сторону к цифровому контакту (D13), а отрицательную сторону к земле, точно так же, как вы должны это делать в соответствии с исследованиями., @Éemia
Вы описали подключение его к контакту 13, но ваши вызовы функции "тон ()" адресуются к контакту 11. Это ошибка подключения или опечатка? Вывод 11 действительно является ШИМ-выводом, и подключение пьезоэлемента к нему должно работать правильно. Если он действительно подключен к контакту 13, я не вижу причины, по которой он должен щелкать при запуске вашей программы, но он вполне может щелкать во время загрузки, если ваш загрузчик мигает встроенным светодиодным выводом 13., @JRobert
Ах да, я использовал контакт 11, когда подключал все к Arduino Uno, но теперь я перенес все на Arduino Nano и не изменял код. Тем не менее, я даже не могу загрузить код на свой Arduino Nano. Он все время говорит, что есть ошибка. Спасибо за ваш комментарий!, @Éemia
Пожалуйста, добавьте сообщение об ошибке в свой вопрос и убедитесь, что оба поля "Показать подробный вывод" в настройках IDE отмечены галочками при запуске компиляции и загрузке., @JRobert
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Какое максимальное энергопотребление Arduino Nano 3.0?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Питание светодиодной ленты - Сколько ампер?
- Arduino nano как клавиатура HID
- Как я могу запитать Arduino Nano от батареи LiPo, желательно 3,7 В
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
Э-э, я хочу это увидеть. =) Может быть, вы тоже это услышите., @timemage
Не очень хорошие керамические конденсаторы, как известно, поют/щелкают... Работает или не работает NANO на данном этапе?, @Peter Willard
Как я мог показать его тебе?, @Éemia
Ну, я попробовал, и, похоже, ничего не вышло, @Éemia
вы уверены, что Нано щелкает? ... может быть, источник питания издает шум, @jsotola
Я почти уверен, что это Arduino. Я подключил его к своему компьютеру, и мой компьютер никогда раньше не издавал такого звука., @Éemia
Какова природа щелчка? Можете ли вы описать это как звук, который может быть вам знаком? Щелкает ли он с постоянной постоянной скоростью? Только один раз после включения питания? Поскольку вы припаяли его сами, я бы, по крайней мере, проверил пайку под лупой и проверил наличие паяных мостиков (коротких замыканий). Вы можете сделать снимок с близкого расстояния с помощью телефона, убедившись, что он четкий, и опубликовать его., @lurker
Пожалуйста, опубликуйте четкую картину. Очень трудно понять, есть ли проблема в противном случае., @StarCat
Здесь я загрузил видео щелчка: https://drive.google.com/file/d/1TprL56p2YyJ3j8cq43U2LYzaWofZpJM7/view?usp=sharing, @Éemia
@Éemia, для этого нужно получить общедоступную ссылку., @timemage
Упс, вот тут ты прав, я его обновил., @Éemia