Skocz do zawartości

Problem z wysyłaniem wiadomości przez port szeregowy do Arduino z pomocą Pythona


MMichal

Pomocna odpowiedź

Cześć,
kupiłem ekran tft i chcę zrobić program, który będzie mu ciągle wysyłał dane. Na razie prototyp:
 

#include "Adafruit_GFX.h"
#include "MCUFRIEND_kbv.h"

#include "bitmap_RGB.h" 
#include "SPI.h"
#include "SD.h"
// Inicjalizacja obiektu TFT
MCUFRIEND_kbv tft(A3, A2, A1, A0, A4);

#define BLACK 0x0000

#define NAVY 0x000F

#define DARKGREEN 0x03E0

#define DARKCYAN 0x03EF

#define MAROON 0x7800

#define PURPLE 0x780F

#define OLIVE 0x7BE0

#define LIGHTGREY 0xC618

#define DARKGREY 0x7BEF

#define BLUE 0x001F

#define GREEN 0x07E0

#define CYAN 0x07FF

#define RED 0xF800

#define MAGENTA 0xF81F

#define YELLOW 0xFFE0

#define WHITE 0xFFFF

#define ORANGE 0xFD20

#define GREENYELLOW 0xAFE5

#define PINK 0xF81F

void setup() {
    Serial.begin(9600);
  uint16_t ID = tft.readID();
  tft.begin(ID);
  tft.fillScreen(YELLOW);
}
  int a = 0;

void loop() {
  if (Serial.available() > 0) {
    // Odczytaj dane przychodzące
    String incomingData = Serial.readStringUntil('\n');
    tft.fillScreen(YELLOW);
    tft.setCursor(100, 0); 
    tft.setTextColor(PINK);
    tft.setTextSize(1);
    tft.print(incomingData);
  }
}

Jeśli korzystam z portu szeregowego wbudowanego w IDE Arduino wszystko działa, na ekranie mam mój tekst. Jednak chcę, by wysyłanie danych było bardziej automatyczne więc chcę użyć Pythona. Oto kod:

import serial
import time

ser = serial.Serial('COM3', 9600)

try:
    while True:
        ser.write(b'h\n') 

        time.sleep(0.1)

        response = ser.readline().decode('utf-8').strip()
        print("Odpowiedź z Arduino:", response)

except KeyboardInterrupt:
    ser.close()

Program się uruchamia jednocześnie, gdy Arduino korzysta z tamtego. Niestety nic się nie dzieje. Tekst nie wyświetla się na Arduino, ani w Pythonie nie otrzymuje odpowiedzi zwrotnej. Czemu tak się dzieje? Macie jakiś pomysł co z tym zrobić?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.