ATtiny85 (Digispark) с радиочастотным передатчиком 433 МГц не работает
У меня есть следующие компоненты:
- ATtiny85 Digispark
- 433 МГц Мини маломощный радиочастотный передатчик
У меня есть работающий поток связи, передающий/принимающий между двумя Wemos D1, и я хотел бы теперь передать передающую часть на ATtiny85. Я использовал тот же код, что и для Wemos:
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
pinMode(1, OUTPUT);
mySwitch.enableTransmit(2);
}
void loop() {
mySwitch.send("000110110001010100010001");
digitalWrite(1, HIGH);
delay(250);
digitalWrite(1, LOW);
delay(250);
}
Но последовательный монитор для Wemos не получает никакой связи. Я зашел так далеко, что снова построил связь между двумя Wemos и подключил только вывод данных передатчика к ATtiny85, чтобы исключить любые проблемы с напряжением (ATtiny получает 5 В, передатчик любит < 3,6 В).
Теперь у меня нет идей. Как мне отладить проблему или что еще я могу попробовать?
Запрошенная настройка:

@jwillmer, 👍0
Обсуждение1 ответ
Лучший ответ:
Я заставил его работать. Последний комментарий @Maximilian Gerhardt о выходе ввода-вывода заставил меня задуматься, и я прочитал об этом. Так что если я использую 5 В для питания ATtiny, то выходное напряжение ввода-вывода для 1 и 0 будет значительно выше, чем при 3,3 В. Так что теперь я понизил тактовую частоту ATtiny до 8 МГц, чтобы использовать источник питания 3,3 В. Таким образом, выход ввода-вывода соответствует ожиданиям передатчиков. Теперь связь работает.
Спасибо за помощь, Макс!
- Радиочастотное дистанционное управление с использованием VirtualWire на ATtiny85, работающем на частоте 8 МГц на внутреннем генераторе
- Можно ли подключить экран SD-карты к плате Digispark ATtiny85?
- Digispark ATtiny 85 - не распознается как HID устройство
- Изменить тактовую частоту Digispark, работать при низком напряжении
- Клавиатура Digispark ATtiny85
- Digispark Micro (ATTINY85) не работает на Macbook Pro 2016 г.
- Можно ли записать загрузчик на ATTiny85 с USB TTL и avrdude?
- Текущее положение указателя мыши с Digispark attiny85
Ваш ATtiny работает на частоте 8 МГц, а Wemos — на 80 или 160 МГц? Каковы используемые напряжения питания и логики? На странице продавца указано, что для передатчика следует использовать 2,0–3,6 В. Будет ли передатчик работать после повторного подключения к Wemos? IMHO, следующим шагом низкоуровневой отладки (после проверки напряжений) будет сравнение временных диаграмм для вывода TX между платами с помощью логического анализатора, поскольку они имеют микросекундный диапазон (https://github.com/sui77/rc-switch/blob/master/RCSwitch.cpp#L523)., @Maximilian Gerhardt
@MaximilianGerhardt ATtiny работает на частоте 16,5 МГц, а Wemos — на 80 МГц. Не знал, что синхронизация так важна. Как её добиться? Передатчик работает нормально (питаю его от второго Wemos, а к ATtiny подключаю только вывод данных)., @jwillmer
Временной анализ можно выполнить с помощью логического анализатора (например, клона Salae Logic, очень дешёвого, https://www.youtube.com/watch?v=rR5cEFRO9_s). То есть, даже если подать на передатчик 5 В входов/выходов от ATTiny, но использовать 3,3 В от Weemo (и, полагаю, общий GND), всё работает? Можете ли вы отредактировать свой вопрос, включив в него рабочие схемы Weemo и нерабочие схемы ATTiny (с блоками питания)?, @Maximilian Gerhardt
Рад видеть, что проблема решена. Отметьте свой ответ как правильный. Примечание: Ваша правильная схема неверна в том смысле, что между ними нет общей земли. Возможно, случайно два ваших блока питания (например, если они от одного компьютера) имеют одинаковую землю, но в целом они могут иметь разные потенциалы; напряжение «3,3 В» относительно земли первого блока питания может быть совершенно другим напряжением относительно земли второго блока питания. Поэтому следует соединить земли блоков питания вместе (https://www.youtube.com/watch?v=vhZQbFeEfPM), @Maximilian Gerhardt
Но, похоже, передатчику просто не подходят уровни входного/выходного напряжения 5 В (как указано в техническом описании), и вы успешно решили эту проблему, переведя ATTiny на 3,3 В. Другой вариант — добавить преобразователь уровня ([пример](https://www.sparkfun.com/products/12009)) с 5 В на 3,3 В, но вам всё равно потребуется питание 3,3 В для передатчика. Поэтому, думаю, вам в целом лучше работать полностью на 3,3 В., @Maximilian Gerhardt
@MaximilianGerhardt Мне нужно подождать один день, чтобы отметить проблему как решенную ;), @jwillmer