Почему пример Arduino Tone с динамиком 8 Ом приводит к сбою USB-порта?
Я использую Arduino Nano и пытаюсь запустить базовый пример программы по адресу: https://www.arduino.cc/en/Tutorial/toneMelody
Когда я создаю схему так, как они показывают (очень просто), с использованием динамика на 8 Ом и подключаю питание к USB, Nano начинает включаться (никогда не включается полностью), а затем порт USB выходит из строя (я считаю, что это защита механизм).
Неверна ли схема, прилагаемая к этому образцу?
Они говорят, что его можно использовать с динамиком сопротивлением 8 Ом, но показывают, что он подключен к электронному пьезоэлектрическому устройству.
Вот комментарии к Скетчу:
Возможно ли превышение тока при использовании динамика сопротивлением 8 Ом?
Схема в чём-то неправильная?
ПРИМЕЧАНИЕ. Без подключенного динамика Nano включается без проблем. Я также создаю другие схемы с помощью Nano, и они работают нормально.
@raddevus, 👍0
Обсуждение2 ответа
Лучший ответ:
Как уже упоминалось в вашем вопросе, в учебнике Arduino «Мелодия» в разделе «Требуемое оборудование» указано «пьезо-зуммер или динамик», а в заголовке комментария к скетчу указано: «Динамик 8 Ом на цифровом выводе 8». ". Но на рисунках в разделах «Схема» и «Схема» изображен пьезопреобразователь звука.
В любом случае слово «зуммер» неверное. Зуммер обычно имеет встроенный колебательный контур или механизм и при включении питания издает звук более или менее фиксированной частоты. Лучше было бы: пьезодинамик и обычный динамик (с подвижной катушкой).
Между пьезоэлектрическим преобразователем и динамиком существует большая разница: под постоянным напряжением сопротивление пьезоэлектрического устройства будет почти бесконечным, а сопротивление динамика сопротивлением 8 Ом — примерно 4 Ом. При частоте 400 Гц импеданс пьезоэлектрика составляет примерно 2000 Ом (существует огромный диапазон пьезоэлектрических преобразователей с разными характеристиками), тогда как сопротивление обычного динамика составляет примерно 10 Ом.
Одна сторона зуммера/динамика подключена к земле, поэтому ток течет только тогда, когда сторона, подключенная к контакту 8, имеет ВЫСОКИЙ уровень (контакт 8 должен генерировать ток, а не поглощать его).
В спецификации Atmega328P на странице 299 указано, что абсолютные максимальные номиналы (которые не совпадают с максимально допустимыми эксплуатационными номиналами) составляют 40 мА для контакта ввода-вывода, 40,0 мА и 200 мА для контактов Vcc и заземления. .
В таблице данных показан график (рис. 35-24 на стр. 600), показывающий «Выходное напряжение на выводе ввода-вывода в зависимости от тока источника (VCC = 5 В)». Из этого графика можно получить внутреннее сопротивление около 26 Ом. На графике не показано, что происходит при токах на выводах более 20 мА, но давайте предположим, что внутреннее сопротивление останется примерно тем же 26 Ом.
Когда на контакте 8 постоянно высокий уровень (5 В при 0 Гц), ток через динамик составит около 5/(26+4) = 167 мА. Это намного выше максимального значения тока на выводе 40 мА, но недостаточно для срабатывания предохранителя USB (срабатывает при токе 500 мА). Когда эта ситуация будет продолжаться, отвертка будет разрушена. Это может привести к внутреннему разрыву цепи (без дальнейших последствий) или внутреннему короткому замыканию, которое может вызвать ток питания выше 500 мА, что приведет к срабатыванию USB-предохранителя. В этом случае контакт 8 будет безвозвратно разрушен, что легко установить. Если контакт 8 продолжает работать, такого сценария не произойдет.
Обычно скетч «Мелодия» не выдает сигнал постоянного тока (0 Гц). При 400 Гц ток на выводе составит 5/(26+8)= 147 мА. Это по-прежнему намного превышает максимальный номинал тока на выводе, и сценарий тот же, что и выше.
Поэтому единственный способ срабатывания USB-предохранителя — это перегорание драйвера контакта и возникновение короткого замыкания между Vcc и землей. Читая между строк, у меня сложилось впечатление, что Раддевус пробовал это не раз, а это значит, что контакт 8 продолжает работать. Также я не думаю, что вполне вероятно, что перегорание (нескольких) транзисторов микросхемы приведет к короткому замыканию. Следовательно, причина срабатывания USB-предохранителя должна заключаться в другом.
Последнее соображение заключается в том, что Раддевус упоминает (в своем комментарии от 18 июня в 15:34) три кнопки ввода, которых нет в «схеме», показанной с его вопросом. Он также, кажется, использует хитрую плату («пропустил отверстие для заземления на плате, нажмите 5v»). Так что, возможно, мы не видим всех вовлеченных факторов.
Это был старый вопрос, и я, очевидно, выяснил, как решить проблему, однако вы объяснили разницу между пьезоэлементом и динамиком, и я подумал, что это было неправильно объяснено в исходном сообщении Arduino.cc, поэтому я пометил это как отвечать. Спасибо., @raddevus
Спасибо, что отметили мой ответ. Но мне все равно интересно: выжил ли пин 8 и нашли ли вы причину выхода из строя USB-порта?, @PimV
Контакт 8 уцелел. Я нашел старый пьезозуммер на старой материнской плате, отпаял его и использовал для своих тестов. Я никогда не пробовал динамик на 8 Ом. Настоящая проблема (как я уже упоминал) заключалась в том, что я подключил одну из кнопок обратно к 5 В вместо GND. Однако все работало (включая эту неправильно подключенную кнопку), пока я не добавил пьезозуммер. Когда я это сделал, я увидел, как Nano отключился от USB-порта (к счастью), поэтому он не сжег Nano или USB-порт моего компьютера., @raddevus
Разъем USB +5 В открывается, чтобы защитить ваши компьютеры от подключенного устройства, которое пытается потреблять слишком большой ток. Драйвер вывода мог сгореть или на самом деле мог выдавать чрезмерный ток (даже если не полные 625 мА), но от сбоя его спасло достаточно быстрое размыкание источника питания USB.
Нет. Указанные обстоятельства этого вопроса *не* потребляют больше тока, чем позволяет устройство защиты USB, поскольку драйверы вывода контактов ввода-вывода практически довольно слабы. Это произойдет только в том случае, если что-то в реальной ситуации будет *не таким, как заявлено*., @Chris Stratton
@ChrisStratton Чтобы завершить цикл: когда я пошел добавлять пьезоэлектрический элемент, я заметил, что одна из моих кнопок ввода была подключена неправильно. На кнопку ввода входило 5 В, а затем провод к резистору 100 К и выход на землю. Присмотревшись, я увидел, что линия от резистора к земле на самом деле вернулась к 5 В (пропущено отверстие заземления на плате, попало 5 В). Есть 3 кнопки ввода, остальные 2 сработали правильно. Кроме того, эта кнопка ввода все еще работала, хотя и была подключена неправильно. Однако только тогда, когда был добавлен динамик 8 Ом (между контактом 8 и землей), я увидел это странное поведение сбоя USB-порта (защита)., @raddevus
- Библиотека PCM не работает на Arduino Nano
- Конфликтующие контакты между библиотекой PCM и динамиком и NRF24L01
- Возможность размещения звуковых файлов на Arduino Nano без карты microSD
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Какое максимальное энергопотребление Arduino Nano 3.0?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Питание светодиодной ленты - Сколько ампер?
Если у вас есть чисто резистивная нагрузка в виде резистора 8 Ом на источнике напряжения 5 В, будет течь ток 625 миллиампер — USB по стандарту обеспечивает 500 мА (https://superuser.com/a/690077/546860), но поскольку ток выходит из цифрового вывода, в этом случае вы перегрузите свой вывод, максимальный ток которого составляет 40 мА (https://playground.arduino.cc/Main/ArduinoPinCurrentLimitations). Меня также интересует, как это должно работать (индуктивная нагрузка?)., @Maximilian Gerhardt
Спасибо за ваш вклад. Поскольку я искал и читал, прежде чем попробовать простую схему, я подумал, что, возможно, это тоже неправильно., @raddevus
Попробуйте подключить конденсатор (возможно, 470 мкОм) последовательно с динамиком. Это предотвращает прохождение постоянного напряжения. Но также имейте в виду, что контакты не предназначены для прямого управления динамиком. Это может сработать (сам пробовал один раз), но это рискованно. Пьезоэлектрический элемент не пропускает постоянный ток (так как по сути это конденсатор со специальным диэлектрическим материалом), поэтому это не критично., @chrisl
@chrisl Спасибо за подсказки. Думаю, я буду в безопасности и воспользуюсь пьезоэлементом., @raddevus
Изображенная схема предназначена для пьезоэлемента и подходит для такого использования. Использовать его с магнитным динамиком с низким импедансом неправильно (вы обнаружите, что это не единственные вопиющие упущения в материалах Arduino). Однако это не объясняет сбой USB, поскольку ток, потребляемый при замыкании контакта ввода-вывода, не превышает этот предел. Возможно, динамик был случайно подключен между контактами питания, а не так, как показано., @Chris Stratton
кто-то должен написать ответ :-), @Juraj
@Юрай - никакой фактической достоверной причины наблюдаемого поведения не выявлено. Комментарии прояснили, что было бы лучше, но нет объяснения провала, вынесенного в заголовок вопроса., @Chris Stratton
@ChrisStratton Если вы напишете свой ответ, я сделаю его ответом, поскольку он действительно правильный (см. комментарий к другому ответу). Кроме того, мне все еще интересно (и я боюсь пытаться) узнать, что произойдет теперь, когда цепь исправлена, если я повторно подключу динамик сопротивлением 8 Ом, который, как говорят некоторые, будет потреблять слишком большой ток. Это правда? Будет ли он потреблять большой ток на выводе Arduino? Опасно ли использовать динамик сопротивлением 8 Ом, как показано на рисунке? Или вы можете это сделать?, @raddevus