03-01-2023, 10:51
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ść
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);
}
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ść
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);
}