Altimetr Mercury posiada dzielnik napięcia podłączony do pinu zdefiniowanego jako USBDETECT.
Jeśli USB jest podłączone (5V) to pin USBDETECT będzie odczytywany jako 1 (HIGH), gdy USB nie jest podłączone będzie odczytywany jako 0 (LOW)
Używasz Arduino IDE? Nasz online programmer domyślnie zawiera Mercury_Pins.h, więc nazwy pinów działają bez problemów. Jeśli używasz Arduino IDE lub innego programatora, skopiuj zawartość Mercury_Pins.h i wklej ją na początek swojego programu.
/* * Mercury V1 (ESP32-C6) Wykrywanie USB * Możesz wykryć obecność USB odczytując stan USBDETECT */ #include "Mercury_Pins.h" void setup() { pinMode(USBDETECT, INPUT); // Musisz ustawić USBDETECT jako wejście Serial.begin(115200); delay(1000); } void loop() { if(digitalRead(USBDETECT) == 1){ // USB wykryty } if(digitalRead(USBDETECT) == 0){ // Brak podłączonego USB } delay(500); }#pragma once /* * Mercury (ESP32-C6) Definicje Pinów * Przypisania GPIO specyficzne dla płytki */ // ââ Dioda stanu (NeoPixel) ââ #define LEDPOWER 3 // Zasilanie NeoPixel (ustaw HIGH aby włączyć) #define LED 2 // Sygnał danych NeoPixel // ââ Magistrala I2C ââ #define SDA 21 // Dane I2C #define SCL 22 // Zegar I2C // ââ Zasilanie czujnika ââ #define VACC 20 // Szyna zasilania czujnika (ustaw HIGH aby włączyć) // ââ Porty ogólnego przeznaczenia ââ #define GP06 6 // Port GP06 #define GP07 7 // Port GP07 // ââ Wyjście wysokiego prądu ââ #define OUT1 5 // Wyjście wysokiego prądu (np. pirotechnika / przekaźnik) // ââ Diody paska baterii ââ #define BL1 4 // Dioda baterii 1 (najniższa) #define BL2 14 // Dioda baterii 2 #define BL3 15 // Dioda baterii 3 #define BL4 18 // Dioda baterii 4 #define BL5 19 // Dioda baterii 5 (najwyższa) // ââ Wskaźniki ââ #define DISK 8 // Dioda aktywności dysku // ââ Analogi / Detekcja ââ #define BATIN 0 // Napięcie baterii (dzielnik 1:1) #define USBDETECT 1 // Detekcja zasilania USB (HIGH = USB obecny) #define BUTTON 9 // PRZYCISK na płytce, przycisk boot ale można go używać