Одновременное использование выводов D0, D1 и Serial порта. Возможно?
- Войдите на сайт для отправки комментариев
Одновременное использование выводов D0, D1 и Serial порта. Возможно ли?
Сейчас есть две Ардуины- управляющая и управляемая. У управляемой все выводы заняты, кроме D0 и D1, (TX/RX) по которым она командами обменивается с управляющей ардуинкой. У управляюще ардуинке реализован SoftwareSerial на выводы 5 и 6. Поэтому на ней я могу одновременно использовать и Serial порт (0,1) и mySerial порт (5,6). В частности, у меня не вызывает проблем закачивать в нее скетчи и при этом не отключать ее от соединения.
А вот в управляемую, у которой выводы 0 и 1 сериал подключены к управляющей ардуинке закачать скетч без отключения не получается. Но для того, чтобы на ней реализовать SoftwareSerial порт надо освободить 2 цифровых входа, которые все заняты, т.е. что-то надо будет перекинуть на входы 0 и 1. Не получу ли я новых геморроев в этом случае?
И вообще можно ли как-то использовать выходы D0 и D1 по собственному усмотрению, когда на них реализован TX/RX порт.
Одновременное использование выводов D0, D1 и Serial порта. Возможно ли?
я запретил.
Кто же, кроме Клапауций 234, может запретить вам использовать выводы как вам угодно? Вы проектируете устройство. Вы решаете как использовать ноги. Если эти решения пересекаются и противоречат другим, это уже вам решать иметь дополнительные трудности при работе с процессором или нет.
Способ 1: использовать D0/D1 под вход с высоким сопротивлением. Тогда датчику (источнику сигнала) будет всё равно, ведь и он, и сериал, работают на выход.
Способ 2: использовать под незначащий выход. Например, у вас есть светящиеся буквы в вывеске. Ну помигают две буквы, когда скетч перепрошивается. Некритично. Но вот если туда посадить двигатель, который краном проломит кому-то голову, то да, не стоит.
Способ 3: сдвиговый регистр. Плюсы - работает в обе стороны. Минусы - отдельная внешняя микросхема. Дорогая. Аж 35 фэней за штуку, это в рублях 3.85
Спасибо за варианты, в принципе понятно.
Но они применимы уже на стадии отлаженной программы, когда все команды печати на экран Arduino IDE уже убраны.
Так как ТС не упомянул, то намекну, что аналоговые входы можно использовать как цифровые.
Я в курсе, почитал, но как-то сложно. Две нанки пользую. Может расскажете способ как использовать попроще?
Сложно использовать аналоговые входы как цифровые? Так они имеют номера с 14 по 18 и используются также как и остальные. Деление на аналоговые и цифровые чисто условное. Почти все выходы цифровые, только некоторые отягощены дополнительными аналоговыми функциями, которые включаются только по требованию. Например у Nano только входы А6 и А7 не могут быть цифровыми.
Я читал тут: http://greenoakst.blogspot.ru/2012/06/arduino_29.html
Мне показалось сложновато.
А делать как analogRead(pin) и сравнивать >500 значит High и <100 значит LOW это понятно и так.
Я читал тут: http://greenoakst.blogspot.ru/2012/06/arduino_29.html
Мне показалось сложновато.
А делать как analogRead(pin) и сравнивать >500 значит High и <100 значит LOW это понятно и так.
Вам это не нужно абсолютно.
Просто забудьте о том, что они "аналоговые" и пользуйтесь ими как обычными цифровыми. Только поправлю: номера не с 14 по 18, а с 14 по 19. Больше Вам ничего про них знать не нужно.
Обращаться к ним как A0,...,A7 или 14,...,19?
Или к A0,...,A5 обращаться 14,...,19, а A6,A7 - они "чисто аналоговые"?
Можно 14,...19
А6,А7 чисто аналоговые. Попытаться обратиться к ним цифровым способом можно, ошибки не будет, но и ничего не сработает.
Спасибо, благодаря вашей наводке сделал командное общение ардуинок через
SoftwareSerial mySerial(14, 15); // RX, TX A0, A1
и можно одновременно с этим заливать скетчи, не оключая ардуинки, а также задават команды на обе ардуинки с компа через Serial.