Nota
Ciao, benvenuto nella comunità di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Immergiti nel mondo affascinante di Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e contenuti esclusivi.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e concorsi: Partecipa a concorsi e promozioni speciali durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!
1.8 Lettura Serial (Serial Read)
Panoramica
Oltre a leggere dati dai componenti elettronici, la scheda Mega2560 può leggere i dati inseriti nel monitor seriale, e puoi utilizzare Serial. read() come controller per esperimenti con i circuiti. In questo caso, utilizzeremo un LED per sperimentare con l’istruzione Serial.read() e controllare l’accensione e lo spegnimento del LED.
Componenti Necessari
Circuito con Fritzing
In questo esempio, utilizziamo il pin digitale 9 per controllare il LED. Quando viene inserito «1» nel monitor seriale, il LED si accende. Quando viene inserito «0», il LED si spegne.
Schema del Circuito
Codice
Nota
Puoi aprire direttamente il file
1.8_serialRead.inoche si trova nel percorsosunfounder_vincent_kit_for_arduino\code\1.8_serialRead.Oppure copia questo codice nell’Arduino IDE.
Dopo aver caricato il codice sulla scheda Mega2560, apri il monitor seriale. Digitando «1» il LED si accenderà, e digitando «0» il LED si spegnerà.
Analisi del Codice
Dichiara il pin digitale 9 come ledPin.
const int ledPin = 9;
Serial.read() legge un singolo byte in formato ASCII, quindi è necessario dichiarare una variabile di tipo int, incomingByte, per memorizzare i dati acquisiti.
int incomingByte = 0;
Inizia la comunicazione seriale in setup() e imposta la velocità di trasmissione a 9600.
Serial.begin(9600);
Configura ledPin in modalità OUTPUT.
pinMode(ledPin,OUTPUT);
In loop(), valuta lo stato del monitor seriale e processa le informazioni solo quando vengono ricevuti dati.
if (Serial.available() > 0){}
Legge il valore inserito nel monitor seriale e lo memorizza nella variabile incomingByte.
incomingByte = Serial.read();
Quando viene ricevuto il carattere “1”, il LED si accende; quando viene ricevuto “0”, il LED si spegne.
if(incomingByte=='1'){digitalWrite(ledPin,HIGH);}
else if(incomingByte=='0'){digitalWrite(ledPin,LOW);}
Nota
Serial.read() acquisisce il valore in formato ASCII come un singolo carattere, il che significa che quando digiti “1”, il valore ottenuto non è il numero «1», ma il carattere “1” il cui valore ASCII corrispondente è 49.
※ Tabella ASCII
Il codice ASCII (American Standard Code for Information Interchange) risale agli anni “60. È lo standard per la codifica numerica del testo.
Nota che i primi 32 caratteri (0-31) sono caratteri non stampabili, comunemente chiamati caratteri di controllo. I caratteri più utili sono stati etichettati.
Immagine del Fenomeno