Нужна помощь ATtiny85 не работает как автономный
У меня есть ATTiny85, которым я хочу управлять сервоприводом. Записал загрузчик на ATTiny85, и я использую макетную плату HW-260 для программирования и тестирования кода. Хотя ATTiny85 отлично работает на макетной плате HW-260, я не могу заставить его работать отдельно на макетной плате при тестировании с сервоприводом с помощью библиотеки Adafruit_SoftServo и примера с миганием. Пробовал добавить подтягивающий резистор 4,7 кОм к PB5, чтобы предотвратить сброс ATTiny85, но результат тот же. Пробовал запитать автономный макет с помощью батарейки 3 В, USB 5 В, повербанка 5 В и ничего. Это сервокод, который я использую:
Adafruit_SoftServo myservo;
int pos = 0;
void setup() {
myservo.attach(PB0);
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
myservo.refresh();
delay(15);
}
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
myservo.refresh();
delay(15);
}
}
Блинк-код, который я использую, взят из примеров, я просто меняю выходной контакт на PB1. Если я ненадолго подключу PB5 к земле, я заставлю сервопривод немного повернуться в случайном направлении. Измерил и макетка не проблема, вроде все подключено правильно.
Это загрузчик, который я использовал https://github.com/ashishchoudhary9998/ATtiny85-Boot-loader.
ОБНОВЛЕНИЕ: Это схема платы HW-260.
Это мой макет
@aceschwartz, 👍1
Обсуждение1 ответ
Лучший ответ:
После добавления схем можно заметить разницу:
PB3 нуждается в подтягивании, на отладочной плате у него 1,5 кОм. Этот резистор является частью стандарта USB и сигнализирует "низкоскоростное устройство". Предположительно (поскольку исходный код не указан) загрузчик вообще нуждается в этом для запуска.
Задержка, упомянутая в комментарии, типична для разработки ATtiny85. Из-за малого количества контактов загрузчик запускается и несколько секунд ожидает подключения ПК. Если соединение не установлено, запускается программа пользователя. Затем он может использовать все контакты в своих целях.
- Возникли проблемы с определением CTC на таймере 1 с помощью ATTiny85.
- avrdude: ошибка проверки, первое несоответствие в байте 0x0000 : 0x00 != 0x16 с использованием USBasp
- Связь последовательного порта Digispark
- ATtiny85 и DHT11 - Датчик всегда возвращает 0
- Ошибка чтения флэш-памяти, 1000
- Программирование сервопривода на ATtiny85
- Как получить доступ к порту B Attiny84 в коде Arduino IDE?
- Digispark ATtiny 85 - не распознается как HID устройство
Добро пожаловать в SE/Arduino! Пожалуйста, посетите [тур], чтобы узнать, как работает этот сайт. Вы также можете прочитать «[спросить]» и кое-что из [помощи]. -- Если на отладочной плате одна и та же программа работает, а на вашей плате нет, нужно выяснить отличия. Пожалуйста, [отредактируйте] свой вопрос и добавьте схемы (или, по крайней мере, соответствующие их части) для обоих., @the busybee
спасибо @thebusybee, я отредактировал вопрос и добавил схемы., @aceschwartz
Относительно примера Blinky, работающего на HW-260, а не на вашей плате, разница только в одном: PB3 подтянут на 1к5. Не могли бы вы добавить это на свою плату и повторить попытку, пожалуйста? И что вы видите с Blinky на вашей плате, полностью выключенным светодиодом, полностью включенным светодиодом или чем-то средним? Кстати, у вас есть осциллограф?, @the busybee
@thebusybee, конечно, я попытаюсь вытащить PB3 прямо сейчас и дам вам знать, каков будет результат. у меня нет осциллографа :( спасибо за попытку помочь мне., @aceschwartz
@thebusybee работает :) добавление подтягивающего резистора к PB3 решает проблему, и код работает отлично. большое спасибо. Кстати, текущая прошивка (загрузчик) имеет некоторую задержку, я измерил задержку в 5-6 секунд, прежде чем код начнет работать. не могли бы вы добавить свой комментарий в качестве ответа, чтобы я мог пометить его как решение?, @aceschwartz