Alcune parti di questo sito web non sono ancora disponibili nella tua lingua. Stiamo lavorando per risolvere questo problema e ci scusiamo per eventuali disagi.
Tutorial ESP32 26/55 - Utilizzare il Joystick con Arduino Taking Action | Kit IoT ESP32 di SunFounder
In questo tutorial, impareremo come interfacciare un joystick XY con il microcontrollore ESP32 di SunFounder, permettendoci di rilevarne la posizione e intraprendere azioni basate sul suo input. Integreremo anche un buzzer che si attiva quando il joystick viene spostato in una posizione specifica. Questa combinazione ci permetterà di creare progetti interattivi che rispondono all'input dell'utente in tempo reale.
ESP32-26-xy-joystick-principale
Il joystick XY fornisce due uscite analogiche corrispondenti alle posizioni X e Y e un pulsante che può essere premuto per attivare un'azione. Leggendo i valori dal joystick, possiamo controllare vari elementi nel nostro progetto, come attivare un buzzer o visualizzare valori sullo schermo. Per comprendere appieno il processo, assicurati di controllare il video per ulteriori approfondimenti (nel video a 00:00).
Hardware Spiegato
I componenti principali per questo progetto includono il microcontroller ESP32, il joystick XY e un buzzer. L'ESP32 è una scheda versatile che supporta Wi-Fi e Bluetooth, rendendola ideale per progetti IoT. Il joystick XY consiste in due resistori variabili per gli assi X e Y, e un interruttore a pulsante per input aggiuntivo.
schema_joystickESP32-26-xy-schema joystick
Il joystick produce segnali analogici corrispondenti alla sua posizione, che vengono letti dai pin analogici dell'ESP32. Il pulsante fornisce un segnale digitale quando viene premuto. Il buzzer è collegato a un pin di uscita digitale sull'ESP32, permettendo di attivarlo o disattivarlo in base alla posizione del joystick.
Dettagli del datasheet
Produttore
SunFounder
Numero di parte
Modulo Joystick XY
Tensione di esercizio
3,3 V - 5 V
Valore della resistenza
10 kΩ (ogni asse)
Corrente Massima
20 mA
Tipo di interruttore
Pulsante momentaneo
Dimensioni
Circa 50 mm x 50 mm
Assicurati che il joystick sia alimentato con 3,3 V per essere compatibile con l'ESP32.
Utilizzare resistori di pull-up per l'interruttore per evitare ingressi flottanti.
Collegare le uscite analogiche ai pin ADC dell'ESP32 (34 per X, 35 per Y).
Utilizzare un meccanismo di debounce per l'interruttore per prevenire attivazioni errate.
Monitora i livelli di tensione per assicurarti che rimangano entro limiti operativi sicuri.
Istruzioni di cablaggio
ESP32-26-xy-joystick-wiring
Per collegare il joystick all'ESP32, inizia collegando il pin di terra del joystick a un pin di terra sull'ESP32. Successivamente, collega il pin VCC del joystick al pin da 3,3 V sull'ESP32. Il joystick ha due pin di uscita analogica: collega l'uscita dell'asse X (etichettata comeVRX) da appuntare34sull'ESP32 e l'uscita dell'asse Y (etichettata comeVRY) da fissare35.
Per l'uscita dell'interruttore, collega il pin dell'interruttore al pin33sull'ESP32. Questo pin leggerà la pressione del pulsante come input digitale. Assicurati che le connessioni siano sicure per evitare problemi intermittenti. Se il tuo cablaggio differisce dal video (nel video alle 02:30), adatta di conseguenza seguendo gli stessi principi per le connessioni analogiche e digitali.
Esempi di Codice e Guida
Nel codice, iniziamo definendo le costanti per i pin del joystick. Gli identificatorixAxis,yAxis, andbtnsono impostati per34,35, e33, rispettivamente. Questo rende facile fare riferimento a questi pin in tutto il programma.
#define xAxis 34
#define yAxis 35
#define btn 33
Nellasetup()funzione, inizializziamo la comunicazione seriale e impostiamo la modalità del pin del pulsante su ingresso. Questo prepara l'ESP32 a leggere i dati dal joystick e inviarli al monitor seriale.
Dentro illoop(), leggiamo i valori analogici per gli assi X e Y del joystick utilizzandoanalogRead()e memorizzarli inxValueeyValueLo stato del pulsante viene letto utilizzandodigitalRead()e memorizzato inbtnValueInfine, stampiamo questi valori nel monitor seriale.
void loop() {
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
int btnValue = digitalRead(btn);
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // Delay between reads
}
Questo ciclo aggiorna continuamente i valori, fornendo un feedback in tempo reale sui movimenti del joystick e sulle pressioni dei pulsanti. Per il codice completo, si prega di fare riferimento al codice totale caricato sotto l'articolo.
Dimostrazione / Cosa Aspettarsi
Quando la configurazione è completa e il codice è caricato, il monitor seriale dovrebbe visualizzare i valori di X e Y insieme allo stato del pulsante. Man mano che muovi il joystick, i valori cambieranno di conseguenza, riflettendo la sua posizione. Premere il pulsante cambierà il suo stato tra alto e basso.
Le trappole comuni includono cablaggi errati, che possono portare a ingressi flottanti o a nessuna risposta dal joystick. Assicurati di utilizzare i pin corretti e che i resistori di pull-up siano implementati per l'interruttore. Guarda il video per dimostrazioni pratiche di questi comportamenti (nel video alle 13:00).
Timestamp video
00:00 Inizio
1:47 Introduzione al Joystick XY
7:32 Misurazione dei valori del joystick
8:40 Spiegazione del cablaggio
11:06 Codice Arduino per Joystick con ESP32 spiegato
14:43 Selezionare la scheda ESP32 e la porta COM nell'IDE di Arduino
16:24 Dimostrazione dell'uso semplice del Joystick
19:20 Rilevamento della posizione del codice del joystick con buzzer
21:16 Dimostrazione della rilevazione della posizione
Immagini
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick