Как изменить светодиодный вывод по умолчанию для отображения загрузки?
Я сделал плату для своего проекта на базе Arduino Pro Mini. Проблема в том, что мне пришлось поместить светодиод на пин 4 вместо пин 13.
Какие настройки мне нужно изменить, чтобы сделать пин 4 выводом по умолчанию? Или мне нужно написать собственную библиотеку Board?
@Antonín Gazda, 👍2
2 ответа
Лучший ответ:
Мигание во время загрузки делает загрузчик. Arduino Mini использует Optiboot. Исходные коды находятся на GitHub. Вам нужно будет изменить пин в pin_defs.h и сделать загрузчик. Затем прошить его на 328p с помощью программатора через ICSP.
Подробности того, что следует изменить, приведены в ответе Greenonline.
Продолжая ответ Юрая:
Мигание во время загрузки делает загрузчик. Arduino Mini использует Optiboot. Исходные коды находятся на GitHub. Вам нужно будет поменяйте пин в pin_defs.h и сделайте загрузчик. Потом прошейте его на 328p с программатором по ICSP.
Строка, которую вам нужно изменить в pin_defs.h, — это строка номер 27:
#define LED B5
Как вы видите, в данный момент он установлен на B5
. Это пятый бит в порту B, который соответствует контакту 13
Вывод 4 соответствует биту 4 PORTD
, поэтому линия будет выглядеть следующим образом
#define LED D4
Цифровые выводы Arduino подключены к трем различным банкам по 8 бит, известным как порты (PORTD
, PORTB
и PORTC`). Чтобы увидеть их связь, обратитесь к этой таблице из Arduino Playground - Pins
- Улучшенное циклическое переключение цветов RGB.
- Код Arduino для управления 4 светодиодами с 4 кнопок
- Не удалось преобразовать «digitalWrite(8u, 1u)» из «void» в «bool»
- 7-сегментный дисплей с WS2312B и FastLED
- NodeMCU отображает температуру и контрольный светодиод на веб-странице с автоматическим обновлением.
- ESP8266, похоже, убивает цикл while
- Светодиод не гаснет полностью с помощью функции digitalWrite(led, LOW);
- FastLED не работает должным образом
Я скопировал свой ответ как введение в этот ответ, @Juraj
Хорошо, спасибо. Я не уверен, что это было необходимо, если только вы не планировали удалить свой ответ. Однако я добавил ссылку на ваш ответ, чтобы сослаться на цитату, и так это стало немного понятнее. Спасибо еще раз :-)., @Greenonline