Вопрос про IO 0 и 1

Тема в разделе "Arduino & Shields", создана пользователем YeS, 19 дек 2016.

  1. YeS

    YeS Гик

    Прошу прощения за тупой вопрос, но подскажите пожалуйста, можно ли использовать пины 0 и 1 при задействованном Serial? Они не дублируют USBшный порт?
     
  2. AlexU

    AlexU Гуру

    Если речь про UNO (да наверно про все платы на базе ATmega328), то пины '0' и '1' нельзя использовать как порты ввода/вывода. Но к ним можно подключиться (только грамотно) и отслеживать Serial-трафик.
     
    YeS нравится это.
  3. YeS

    YeS Гик

    Спасибо. Вопрос закрыт.
     
  4. Onkel

    Onkel Гуру

    можно, отключая uart для использования и снова включая. Не уверен, что команда вкл/выкл есть в arduino ide, но через регистры порта можно. А когда нужен будет serial снова включить. Но зачем такие сложности, мало портов?
     
  5. YeS

    YeS Гик

    Да. Одного не хватает. Продумываю варианты.
     
  6. AlexU

    AlexU Гуру

    Можно воспользоваться советом 'onkel', только есть несколько дополнений:
    • использовать можно будет только передающий (TX) пин, т.к. при использовании приёмного высока вероятность потери принимаемых данных -- в программе можно узнать когда передающий пин свободен, а когда нет, а вот приёмный пин принимает асинхронные сигналы, и определить время получения таких сигналов иногда не представляется возможным;
    • не уверен, но может быть нет необходимости отключать/включать UART -- отключение/включение может привести к потере принимаемых данных; только нужно внимательно посмотреть документацию, что бы не повредить микроконтроллер.
    По поводу "одного не хватает" -- есть чисто выходные порты и сколько таких портов?
    Если наберётся больше трёх (от 4-х до 8-ми), то можно воспользоваться регистром сдвига 74HC595 в качестве расширителя портов (только нужно учесть, что выходной ток у регистра ~8mA, против 20mA у микроконтроллера). Либо можно воспользоваться полноценным расширителем портов, но будет подороже, чем сдвиговый регистр.
     
  7. Onkel

    Onkel Гуру

    с6 отключите от ресета и прошивайте hv программером. Или кварц отключите, сразу два порта получите, но частота упадет правда и станет не очень стабильной, или можно сделать внешний генератор и получите один порт от кварца.
     
  8. ostrov

    ostrov Гуру

    Способов увеличения количества ног несколько, самые простые - через регистры. Бывают на вход и на выход. Три ноги можно размножить до очень большого числа ног.
    Про выкл, она есть - Serial.end() именно для таких случаев. Про вкл, думаю, и так все знают.
     
    zealot01 нравится это.
  9. Unixon

    Unixon Оракул Модератор

    Mega?
     
  10. YeS

    YeS Гик

    Mega