Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Raspberry Pi
  3. Передать текстовую информацию из Raspberry в Arduino по USB

Передать текстовую информацию из Raspberry в Arduino по USB

Запланировано Прикреплена Закрыта Перенесена Raspberry Pi
7 Сообщения 1 Posters 88 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано pi
    #1

    Здравствуйте.
    Никогда не сталкивался ранее с передачей данных по com порту, возникли вопросы.
    Задача — передать строку данных с Raspberry Pi3 на Arduino UNO, с нее на 16x2 LCD экран.

    1. Для начала пытаюсь передать просто цифру.
      Прога на Raspberry Pi3
    import serial
    usbCom = serial.Serial('/dev/ttyUSB0', 9600)
    usbCom.open
    usbCom.write('5')
    

    Прога в Arduino UNO

    /* Подключаем библиотеку для работы с LCD */
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
    int usbRead;
    
    void setup()
    {
     Serial.begin(9600);
     lcd.begin(16, 2);
    }
    
    void loop()
    {
    lcd.setCursor(0, 0);
    if(Serial.available()) {
      usbRead = Serial.read() - '0';
      lcd.print(usbRead);
     }
    }
    

    Почему не работает?)

    1. Как вместо цифры передать текстовую строку?
    1 ответ Последний ответ
    0
    • piP Не в сети
      piP Не в сети
      pi
      написал в отредактировано
      #2

      Попробуйте для начала соединить между собой выводы RX и TX малины (loop back test) и отправить самому себе любые данные, так можно убедится, что малина отправляет что либо.
      P.S. raspberrypi.ru/blog/627.html

      1 ответ Последний ответ
      0
      • piP Не в сети
        piP Не в сети
        pi
        написал в отредактировано
        #3

        Спасибо.
        Raspberry точно отправляет, сужу по тому, что, когда запускаю на нем скрипт, текст на экране, подключенном к Arduino мигает.

        1 ответ Последний ответ
        0
        • piP Не в сети
          piP Не в сети
          pi
          написал в отредактировано pi
          #4
          /* Подключаем библиотеку для работы с LCD */
          #include <LiquidCrystal.h>
          LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
          int usbRead;
          
          void setup()
          {
          Serial.begin(9600);
          lcd.begin(16, 2);
          }
          
          void loop()
          {
          lcd.setCursor(0, 0);
          if(Serial.available()) {
          usbRead = Serial.read() — '0';
          lcd.print(usbRead);
          while (1) {};
          }
          }
          

          попробуйте так

          1 ответ Последний ответ
          0
          • piP Не в сети
            piP Не в сети
            pi
            написал в отредактировано pi
            #5

            попробуйте так

            Так тоже не работает.
            Я попробовал вставить вывод статичной строки на жк экран в условие

            if(Serial.available()) {
            }
            

            Текст не выводится. Вне этого блока (в loop) — выводится. Видимо не срабатывает Serial.available? В чем может быть причина?
            если сделать

            if(Serial.available() == 0) {...}
            

            , то, соответственно, на жк экран выводится -1. т.е. доступных данных нет.
            При подключении

            minicom -b 9600 -o -D /dev/ttyUSB0
            

            при нажатии на клавиши клавиатуры на жк экран ардуины выводятся цифры.

            1 ответ Последний ответ
            0
            • piP Не в сети
              piP Не в сети
              pi
              написал в отредактировано pi
              #6

              Разобрался. На Raspberry надо было так:

              import serial
              import time
              usbCom = serial.Serial('/dev/ttyUSB0', 9600)
              time.sleep(2) // &lt;&lt;=======================================
              usbCom.open
              usbCom.write(&quot;7&quot;)
              usbCom.close
              

              После подключения к ком порту ардуино перезагружается и не успевает принять данные.

              1 ответ Последний ответ
              0
              • piP Не в сети
                piP Не в сети
                pi
                написал в отредактировано pi
                #7

                Теперь вопрос — в каком виде с Raspberry передавать строку и как ее собирать в Arduino?) А то приходят цифры вместо символов.

                А вот так!)

                void loop()
                {
                 lcd.setCursor(0, 0);
                  if(Serial.available() &gt; 0) {
                   String read = Serial.readString();
                   lcd.print(read);
                 }
                
                1 ответ Последний ответ
                0

                • Войти

                • Нет учётной записи? Зарегистрироваться

                • Login or register to search.
                • Первое сообщение
                  Последнее сообщение
                0
                • Категории
                • Главная
                • Документация
                • Последние
                • Пользователи