Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti?
Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e omaggi: Partecipa a omaggi e promozioni festive.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!
3. Lettura Digitale¶
I sensori catturano informazioni dal mondo reale e le comunicano alla scheda principale tramite pin (alcuni digitali, altri analogici) affinché il computer possa comprendere la situazione attuale.
Di conseguenza, la scheda Arduino può conoscere lo stato di funzionamento dei sensori digitali leggendo il valore dei pin digitali, come i pulsanti o il modulo di evitamento ostacoli a infrarossi.
Ecco le funzioni necessarie.
pinMode(pin, mode): Configura il pin specifico comeINPUToOUTPUT. Qui deve essere impostato comeINPUT.- Sintassi
pinMode(pin, mode)
- Parametri
pin: il numero del pin di Arduino di cui impostare la modalità.mode: INPUT, OUTPUT o INPUT_PULLUP.
digitalRead(pin): Legge il valore (stato del livello) dal pin digitale specificato.- Sintassi
digitalRead(pin)
- Parametri
pin: il numero del pin di Arduino che desideri leggere.
- Ritorna
HIGH o LOW.
Esempio di Lettura Digitale
int ledPin = 13; // LED connected to digital pin 13
int inPin = 7; // pushbutton connected to digital pin 7
int val = 0; // variable to store the read value
void setup() {
pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output
pinMode(inPin, INPUT); // sets the digital pin 7 as input
}
void loop() {
val = digitalRead(inPin); // read the input pin
digitalWrite(ledPin, val); // sets the LED to the button's value
}
Note e Avvertenze
Pull Up & Pull Down.
digitalRead()può produrre valori casuali e indeterminati se il pin non riceve un segnale di livello. Pertanto, indirizzare i pin di ingresso a uno stato noto può rendere il progetto più affidabile. Quando si utilizza un componente di ingresso, come un pulsante, è solitamente necessario collegare una resistenza pull-up o pull-down in parallelo al pin di ingresso digitale.Oltre a collegare una resistenza pull-up, puoi anche impostare la modalità del pin su
INPUT_PULLUPnel codice, ad esempiopinMode(pin, INPUT_PULLUP). In questo caso, il pin accederà alla resistenza pull-up integrata dell’Atmega tramite software, con lo stesso effetto del collegamento di una resistenza pull-up.Riguardo al Pin 13.
Tutti i pin digitali (1-13) sulla scheda R3 possono essere utilizzati come
digitalRead(). Tuttavia, il pin digitale 13 è più difficile da usare come ingresso rispetto agli altri pin digitali. Questo perché è collegato a un LED e una resistenza, saldati sulla maggior parte delle schede. Se abiliti la resistenza pull-up interna da 20k, rimarrà intorno a 1.7V invece dei 5V previsti, poiché il LED integrato e la resistenza in serie abbassano il livello di tensione, il che significa che restituirà sempre LOW. Se devi utilizzare il pin 13 come ingresso digitale, imposta la suapinMode()su INPUT e usa una resistenza pull-down esterna.Pin analogici.
Se i pin digitali non sono sufficienti, i pin analogici (A0-A5) possono essere utilizzati anche come pin digitali. Devono essere impostati su INPUT con
pinMode(pin,mode).
Componenti Correlati
Di seguito sono elencati i componenti correlati, puoi cliccare per imparare come utilizzarli.