делаю простенький проект, но чёт не идёт ....

Тема в разделе "Arduino & Shields", создана пользователем Valeriy, 16 июл 2019.

  1. Valeriy

    Valeriy Нуб

    Всем привет, короче дело обстоит так:

    Есть прога на смартфоне ( сделанная самостоятельно в MIT app inv. 2 ) которая каждую секунду через BT шлёт данные о времени в формате: "Hours, Minutes, Seconds, AM-PM". Ардуинка раз в секунду считывает последовательный порт и выводит на 0.91 I2C дисплей ( SSD1306 ) строку, которую считала.

    Все бы гут, но нет из-за "задвоения" строки ( фото не крепится, приложу пример ) . Можете помочь разобраться почему так.

    пример: 12.00 00 PM12.00.01 PM1
    2.00.02 PM

    Код:

    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>

    Adafruit_SSD1306 display( 128, 32, &Wire, -1 );

    void setup() {
    display.begin(SSD1306_SWITCHAPVCC, 0x3C)
    Serial.begin(9600);
    }


    void loop() {
    date = Serial.readString();
    display.clearDisplay();
    display.setTextSize(1);
    display.setCursor(0, 10);
    display.println(date);
    display.display();
    delay(1000);
    display.clearDisplay();
    }

    Если важно, то в MIT-е сбор данных о времени идёт через

    call timer1.FormatTime instant call timer1.Now

    Заранее блвгодарен зв помощь))
     
  2. NikitOS

    NikitOS Король шутов Администратор

    Помощь такова: прочитать закрепленное сообщение и исправить ошибки в посте
    Других ошибок я не вижу
     
  3. KindMan

    KindMan Гуру

    С какой частотой данные в serial попадают? Мне кажется, что в date у вас уже пару строк влезает, вот они и выводятся оптом. ReadString ждет данные секунду, потом delay ещё секунда, вот за это время и набегает вам пара строк.