Оперативный входной параметр для Arduino

Тема в разделе "Arduino & Shields", создана пользователем Vittorio78, 8 мар 2017.

Метки:
  1. Vittorio78

    Vittorio78 Нуб

    Здравствуйте!
    Программируем робота, который должен выполнять определённые действия с предметами на полигоне. На соревнованиях бьются 2 робота, жеребьёвкой определяется цвет предметов (из двух известных заранее), с которыми должен работать каждый. Датчик распознавания цвета запрограммирован и отлажен на оба. Как оперативно сообщить Arduino, с каким цветом работать? Т.е. нужнен какой-то джампер или переключатель непосредственно на плате, положение которого анализируется в программе. Есть идеи?
     
  2. rkit

    rkit Гуру

    Ну берите да паяйте, хоть джампер, хоть переключатель. В чем вопрос-то?
     
    zealot01 и shpock нравится это.
  3. Vittorio78

    Vittorio78 Нуб

    Что на что замыкать и как опросить положение такого переключателя из Ардуино?
     
  4. vvr

    vvr Инженерище

    как вы робота сделали если такие вопросы задаёте...
     
    ИгорьК нравится это.
  5. alekseev2017

    alekseev2017 Нерд

    В скетче прописываете проверку например
    Код (C++):
    if(digitalRead(4) == HIGH)
    {
        //включаем режим цвета 1
    }
    else if(digitalRead(5) == HIGH)
    {
        //включаем режим цвета 2
    }
    Кнопку на одном конце подтягиваете через резистор на минус, другой конец кнопки - на указанный в скетче digital вход. Если как я написал, то кнопки на digital 4 и 5. Удачи!
     
    Vittorio78 нравится это.
  6. Vittorio78

    Vittorio78 Нуб

    Спасибо! То, что нужно!
    Поясните по теории: какое напряжение нужно подать на ножку, чтобы сработал digitalRead?
     
  7. rkit

    rkit Гуру

  8. alekseev2017

    alekseev2017 Нерд

    В чём заключается бред? Я в сфере Ардуино с 2010 года, зарегистрировался на форуме, чтобы помогать людям, а это называют бредом... Хорошо...
     
    Последнее редактирование: 8 мар 2017
  9. alekseev2017

    alekseev2017 Нерд

    По идее, в скетче при подключении кнопки - можно прописать pinMode(4, INPUT_PULLUP), таким образом мы активируем подтягивающий резистор, который заведомо встроен в МК ардуины. В скетче, который я написал - поменяйте HIGH на LOW везде, потому что если подтягивать встроенным резистором при нажатии выдаёт 0, в исходном состоянии - 1. Удачи! Надеюсь, что я вам помог)
     
    Vittorio78 нравится это.
  10. alekseev2017

    alekseev2017 Нерд

    Если вы не знаете, то строчку " pinMode(4, INPUT_PULLUP)" - прописывать в void setup. В void loop уже саму проверку, также вам не помешает изучить воиды и создать их несколько, и использовать воид луп, только, как "запускатор" для них, уверен воиды вам в будущем пригодятся, так как по описанию вашего проекта, код без них не обойдётся. Удачи!
     
    Vittorio78 нравится это.
  11. Unixon

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

    Давайте лучше сделаем int loop() или bool loop() и добавим какую-нибудь нескучную логику в main() :)
     
  12. alekseev2017

    alekseev2017 Нерд

    ПЕТРОСЯН
     
  13. rkit

    rkit Гуру

    Всё сообщение бред. И предложенное подключение - бред, и использовать два пина для бинарного выбора - бред, и код в таком виде - бред.
     
  14. rkit

    rkit Гуру

    А это бред в кубе
     
  15. alekseev2017

    alekseev2017 Нерд

    Он не знает, как подключить кнопки, я не удивлюсь, что такого слова "void" он не слышал... Поэтому ему и говорю.
     
  16. rkit

    rkit Гуру

    А вы слышали, ага. Расскажете, какие виды воидов бывают?
     
  17. alekseev2017

    alekseev2017 Нерд

    Виды?
     
  18. rkit

    rkit Гуру

    Вот я выше дал ссылку на видео уроки. Давайте вы их тоже будете смотреть. А пытаться учить кого-то со своими потрясающими познаниями - не будете.
     
  19. alekseev2017

    alekseev2017 Нерд

    Оставьте ваше субъективное мнение при себе. Хорошо?
     
  20. alekseev2017

    alekseev2017 Нерд

    Я смотрю вы очень информативно отвечаете...