Проблема с отправкой ИК-сигнала с at ATmega328P-PU
У меня есть скетч, который каждую секунду посылает ИК-код. Он работает нормально (правильный код принимается моим получающим Arduino рядом с ним) на Arduino, но когда я пытаюсь переместить скетч в ATmega328P-PU, ИК больше не отправляет (выход последовательного монитора все еще работает).
Я использовал камеру, чтобы посмотреть на ИК-светодиод, и он просто не мигает на ATmega328, но работает на Arduino (и я протестировал свой светодиод, он работает). Он использует вывод 3 на Arduino, поэтому я использую вывод 5 на ATmega328.
Существуют ли дополнительные компоненты, необходимые для того, чтобы ШИМ работал без платы Arduino? Я, честно говоря, в тупике, так что любая помощь будет оценена по достоинству. Заранее спасибо.
Скетч:
#include <IRremote.h>
IRsend irsend; //Setup the IR transmitter
int codeToSend;
int team = 1;
int damage = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
team++;
if (team > 8) team = 1;
damage++;
if (damage > 99) damage = 0;
if (damage > 9) codeToSend = (String(team) + String(damage)).toInt();
else codeToSend = (String(team) + "0" + String(damage)).toInt();
Serial.println("sent");
irsend.sendNEC(codeToSend, 32);
delay(500);
}
@Patrick, 👍-1
Обсуждение1 ответ
ПРИМЕЧАНИЕ: Следующий комментарий был оставлен на этот ответ (ниже) и указывает на основную проблему, с которой столкнулся оригинальный плакат, помимо отсутствия резистора и т. Д.
РЕШЕНО - мой макет был сломан на этом рельсе. :/
Ограничение тока
То, что вы изобразили, по большей части выглядит нормально, за исключением того, что для IRED, похоже, нет резистора, ограничивающего ток. Возможно, вы повредили IRED, установив значение pin СЛИШКОМ ВЫСОКИМ в течение длительного периода времени. Также технически возможно повредить AVR (или только один вывод), сделав это, хотя это не было бы моим первым предположением.
Типичные прямые напряжения для IRED примерно около вольта. Максимальный номинальный ток вывода AVR составляет 40 мА. Чтобы получить из него правильные логические уровни, он должен быть меньше 20 мА. Возможно, вы могли бы работать около 30 мА, так как вы больше ничего не делаете с портами AVR и не пытаетесь вывести напряжение логического уровня с вывода. Для этого вам понадобится резистор последовательно с IRED, который составляет примерно (5 В - 1 В) / 0,030 А, приблизительно 133 Ом.
Транзисторы
Когда люди используют IRED для создания пультов дистанционного управления, обычно используется транзистор для разгрузки требований к току от MCU. А также для работы IRED выше его постоянного рабочего тока, ближе к номинальному пиковому/импульсному току. Работа при низких значениях в десятки мА часто дает вам всего метр или около того.
Это расположение может выглядеть примерно следующим образом для более высоких импульсов тока около 80 мА:
Асиды
Я не могу хорошо прочитать ваш резистор сброса. Если это не так, измерьте его, чтобы убедиться, что оно составляет 10 тысяч. Если вы сомневаетесь, удалите его. При сбросе AVR происходит более слабое внутреннее подтягивание, и этого обычно достаточно. При желании вы могли бы подключить сигнал сброса к контакту сброса UNO, чтобы воспользоваться преимуществами внешнего подтягивания, переключателя сброса и механизма сброса DTR самого UNO.
Возможно, вы захотите добавить .Конденсаторы 1uF от контактов VCC и AVCC заземляются. Вы часто можете обойтись без экспериментов, но когда вы переключаете более высокие токи, они станут более важными.
У меня есть куча таких джемперов с закругленными (цилиндрическими) концами. Они часто не создают хороших связей на макете. Иногда вы можете сэкономить некоторые проблемы с перемычками типа "Дюпон" или просто сделать свои собственные из сплошного провода подключения 22awg.
Когда я вставляю IRLED в свой другой Arduino с той же схемой и скетчем, IRLED работает, поэтому я не думаю, что он поврежден. Я добавил резистор 133 Ом (100+33), как вы сказали, и попробовал еще раз с другим 328p-pu, но все равно безуспешно. Резистор на моем сбросе определенно составляет 10 Ком, так как я проверил его с помощью мультиметра, @Patrick
Я еще немного посмотрю на изображение, но я не знаю, что ожидаю найти. Тот факт, что он все еще работает над сериалом, исключает множество идей. Что касается текущего ограничения, это приятно слышать, потому что у вас должно быть это, независимо от того, что еще происходит., @timemage
Похоже, что цифровой вывод 3 (вывод 5 из 328) вообще не работает без платы. Я загрузил простой скетч светодиодного мигания в микроконтроллер, и он отлично работал, используя вывод 2 (вывод 4 из 328), но не 3 (вывод 5 из 328). Это наводит на мысль, что вывод 5 из 328 вообще не работает, но он должен работать так, как работает скетч с чипом на плате Arduino, использующим вывод 3. Это касается как моих 328 чипов, так и плат. Есть какие-нибудь идеи?, @Patrick
На [официальном сайте Uno](https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf) PD3 не идет никуда, кроме заголовка. Я не ожидаю никакой разницы от любого нормального клона. У меня есть подозрение, что если вы поместите его обратно в плату, он по-прежнему не будет там работать. Если не это, то, возможно, один из этих прыгунов не очень хорошо контактирует., @timemage
"На официальном UNO PD3 никуда не идет, кроме заголовка". - Я думаю, ты имеешь в виду, что вывод на Arduino никуда не идет, кроме вывода 5 на 328?, @Patrick
РЕШЕНО - мой макет был сломан на этом рельсе. :/ Большое вам спасибо за ваше время и помощь., @Patrick
PD3-это сигнал на пакете выводов DIP № 5 или цифровой вывод Arduino № 3. Поэтому я имею в виду, что сигнал идет прямо от AVR к заголовку. Он не подключен ни к чему другому на плате., @timemage
- Об управлении светодиодом с помощью кнопки с помощью ATmega328P
- Светодиод Arduino PWM с замиранием в сборке
- Использование ИК-пульта с Arduino
- KY-022 ИК-приемник, светодиод всегда горит, нет выхода
- ШИМ-управление, как остановить мерцание светодиода?
- ATmega328P - проблема с использованием таймера 2 для генерации тона
- Использование цифрового контакта 11 для DMDCon и ИК-пульта
- Arduino включение/затухание 5 светодиодов, схема действия
Если я понимаю ваш вопрос буквально, "нет". Тем не менее, я предполагаю, что вы на самом деле хотите знать, почему это не работает на макете. Для этого было бы полезно иметь в фокусе изображение(ы) фактической проводки вашей платы, в одном кадре, если это возможно., @timemage
Я добавил фотографию, извините, проводка грязная, у меня только маленькие макеты. Дальний левый заземлен, передний левый-5v. Вы не можете видеть, но конденсатор соединяет землю и ряды 5 В, а резистор соединяет контакт 1 с 5 В (10 Ком)., @Patrick