Помощь со скетчем, подключение по UART

Тема в разделе "Arduino & Shields", создана пользователем Maria6614911, 26 авг 2018.

  1. Maria6614911

    Maria6614911 Нуб

    Всем здравствуйте! Я новичек в Arduino и по схемам уже все понимаю, но осталась проблема с программированием.Мне нужно написать скетч где первая Arduino должна с помощью потенциометра прокрутить серву на второй Arduino. С UART уже разобралась и серва без потенциометра уже получилось прокрутить. Проблема в том, что не знаю, куда "засунуть" потенциометр, чтобы серва прокрутилась. пробовала уже все.Буду очень рада за быструю помощь. За ранее спасибо)
     
  2. Mitrandir

    Mitrandir Гуру

    к аналоговому входу, а затем analogread(pin)
     
  3. a1000

    a1000 Гуру

    Выложите скетч где
    И нарисуйте схему как вы всё планируете соединять.
     
  4. Maria6614911

    Maria6614911 Нуб

    Здравствуйте, ну как-то так)
     

    Вложения:

    • master.ino
      Размер файла:
      312 байт
      Просмотров:
      542
    • reciever.ino
      Размер файла:
      488 байт
      Просмотров:
      291
    • UART.jpg
      UART.jpg
      Размер файла:
      314,2 КБ
      Просмотров:
      294
  5. Mitrandir

    Mitrandir Гуру

    Почему оба провода потенциометра на земле?
    ошибка рисовки или сборки?
    1 на +5 другой на землю середину в порт
     
  6. Maria6614911

    Maria6614911 Нуб

    Прошу прощения, это просто ошибка рисовки
     
  7. a1000

    a1000 Гуру

    Так как вы хотите что-бы это взаимодействовало?
     
  8. Maria6614911

    Maria6614911 Нуб

    Ну по сути, мне надо, чтобы потенциометр на одной Ардуинке прокручивал серву на другой Ардуинке. И вопрос состоит в том, куда же в скетче вставить код с "частью" потенциометра)
     
  9. Mitrandir

    Mitrandir Гуру

    Отправитель

    Код (C++):
    void setup()
    {
      Serial.begin(9600);
      pinMode(A0,INPUT);
    }

    int lastVal = 0;

    void Loop(){
       int val = analogRead(A0);
       if(lastVal != val){
          lastVal = val;
          byte angle = map(val,0,1023,0,180);
         Serial.write(angle);
       }
    }

     

    Получатель

    Код (C++):

    #include <Servo.h>
    Servo myservo;

    void setup(){
       Serial.begin(9600);
       myservo.attach(11);
    }

    void loop()
    {
       if (Serial.available())        
      {
        byte  angle = Serial.read();
        myservo.write(angle);
      }

    }
     
     
  10. Maria6614911

    Maria6614911 Нуб

    Спасибо большое за скетчи. Только сейчас еще одна проблема появилась, первый скетч не компилируется, выдается ошибка.
     

    Вложения:

  11. Mitrandir

    Mitrandir Гуру

    функцию loop с маленькой буквы надо) опечатка
     
  12. Maria6614911

    Maria6614911 Нуб

    Здравствуйте еще раз, прошу прощения, что не написала вчера, но возник опять новый вопрос. А эти кода полные или их еще надо дописать? Просто я наверное очень туплю и не вижу здесь UART. Хочу извиниться за свою тугодумность, но помогите снова) Спасибо
     
  13. parovoZZ

    parovoZZ Гуру

    UART - это Serial в абдурино.
     
  14. Maria6614911

    Maria6614911 Нуб

    А как же это все, тогда соединяется?
     
  15. ZAZ-965

    ZAZ-965 Гуру

    UART используется аппаратный (соединять пины 0 и 1 двух плат). И одновременно не получится пользоваться монитором порта.
     
  16. Mitrandir

    Mitrandir Гуру

    Rx одной ардуины с tx другой
    Всего три провода

    Rx - tx
    Tx-rx
    Gnd-gnd
     
  17. parovoZZ

    parovoZZ Гуру

    Чой та?
     
  18. Maria6614911

    Maria6614911 Нуб

    Все сделала правильно, но что-то до сих пор не работает, слышно пищяние сервы, но она не крутится
     
  19. Maria6614911

    Maria6614911 Нуб

    Это скорее проблема со схемкой?
     
  20. a1000

    a1000 Гуру

    Проблема в том, что вы с разгону пытаетесь решить сразу несколько неведомых вам задач. а надо идти от простого к сложному. У вас вообще получилось запустить серву? Без передачи данных по UART, управления - просто заставить крутиться? Запустите стандартный пример Sweep к библиотеке Servo. Проверьте работает ли у вас серва вообще.
     
    Mitrandir и parovoZZ нравится это.