• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Jak sprawdzić czy jest dostępny Serial?
#1
Witam!
Mam dość dziwny problem. Moje urządzenie jest zasilane bezpośrednio z zasilacza (nie przez USB) ale czasem chcę podłączyć komputer i wtedy Arduino powinno wysyłać mi dane na port szeregowy. Ale niestety nie jestem w stanie stwierdzić czy do USB jest coś podłączone z drugiej strony czy nie.
Poniżej prosty program, który pokazuje mój problem.
Po jego uruchomieniu z podłączonym PC stan Serial jest na 1. Po jego odłączeniu stan ten się nie zmienia na 0. A dokładnie o to mi chodzi. Co robię źle?
Zaznaczam, że przygoda moja dopiero się zaczyna, także prośba o wyrozumiałość Smile
Testowałem na UNO i Leonardo.

#include <Wire.h> // Biblioteka do komunikacji szyny I2C
#include <LiquidCrystal_I2C.h> //biblioteka wyświetlacza LCD

LiquidCrystal_I2C lcd(0x27,16,2);

void setup() {
 
 Wire.begin();
 Serial.begin(115200);
 
 lcd.init(); //włączenie wyświetlacza LCD
 lcd.backlight(); //włączenie podświetlania na LCD
 lcd.home();
 lcd.clear(); // czyści zawartość ekranu

}

void loop() {
 
 lcd.clear();
 lcd.print(Serial); //wysłanie danych na USB
 delay(250);
 lcd.print(" wait ...");
 delay(250);
 
}
 
Odpowiedź
#2
lcd.print(Serial); //wysłanie danych na USB


W uno będzie zawsze zgłaszał "true" to zwraca true/false o gotowość portu a nie o podłączeniu..
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#3
Dziękuję za odpowiedź. Czyli jedyny sposób to podłączenie switcha (przełącznika), i:
if (A5 == HIGH){
Serial.print("xxx")
}

i ręczne jego przełączanie jak chce czytać z seriala ...
 
Odpowiedź
#4
Rozkmiń sobie np. coś takiego:
- PC cały czas wysyła jakiś charakterystyczny ciąg znaków - np. <rdy> co powiedzmy 1, 5, 10 sekund.
- Arduino nasłuchuje i w momencie jak na serialu odczyta <rdy> wysyła sygnał np. <ack> do PC
- oba urządzenia wiedzą o sobie, że są połączone i wymiana danych może spokojnie przebiegać
 
Odpowiedź
#5
(03-01-2023, 20:56)MadMrQ napisał(a): Rozkmiń sobie np. coś takiego:
- PC cały czas wysyła jakiś charakterystyczny ciąg znaków - np. <rdy> co powiedzmy 1, 5, 10 sekund.
- Arduino nasłuchuje i w momencie jak na serialu odczyta <rdy> wysyła sygnał np. <ack> do PC
- oba urządzenia wiedzą o sobie, że są połączone i wymiana danych może spokojnie przebiegać
To rozumiem. Problem jaki miałem, to że Arduino cały czas coś próbowało wysłać jak nic nie było podpięte pod USB. Efekt był dziwny - straszne zamulenie kontrolera. Mam na wyświetlaczu migający znak co sekundę i w tym przypadku to miganie było co ~8 sekund.
 
Odpowiedź
#6
"Arduino cały czas coś próbowało wysłać jak nic nie było podpięte pod USB"

Ne coś lecz sam tak program napisałeś. Samo nic nie wysyła.

Naucz się wysyłać...
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości