Pin digitali.

Modalità pin.
Un pin digitale può essere in due stati, input e output. In modalità input, il pin può leggere la tensione da 0 alla tensione di alimentazione dell'microcontroller e in modalità output può emettere la stessa tensione. La modalità operativa viene selezionata utilizzando la funzione pinMode(pin, mode), dove pin è il numero pin e mode è la modalità:
  • INPUT
  • OUTPUT
  • INPUT_PULLUP
Se tutto è chiaro con input/output, allora affrontiamo il pull-up. Nella modalità di input, il pin del microcontrollore non è collegato da nessuna parte e cattura tutti i tipi di pickup dall'aria, ottenendo un valore quasi casuale. Per impostare il pin sullo "stato predefinito", utilizzare un resistore di pull-up per la messa a terra o l'alimentazione. La modalità INPUT_PULLUP attiva il pin pull-up integrato nel microcontrollore all'alimentatore utilizzando un resistore interno.
Nota: per impostazione predefinita (all'avvio del programma) tutti i pin sono configurati come ingressi (INPUT).
Uscita segnale digitale.
Un pin digitale in modalità OUTPUT può generare un segnale digitale, ad es. dare tensione. Poiché il concetto di "digitale" è solitamente associato a due stati, 0 e 1, un pin digitale può anche emettere 0 o 1, più precisamente un segnale di livello basso o alto:
  • Il segnale di basso livello è 0V, il pin è collegato a GND del microcontrollore.
  • Un segnale di alto livello collega il pin al VCC del microcontrollore, cioè all'alimentazione. Il segnale di alto livello sul pin digitale varierà a seconda della tensione da cui viene alimentata la scheda. Se alimentato direttamente da una sorgente a 5 V, il pin sarà 5 V, se alimentato da USB con una perdita sul diodo di protezione, otterremo circa 4,7 V.
La cosa più importante dei pin digitali: un microcontrollore è un dispositivo logico progettato per controllare altri dispositivi utilizzando segnali logici. Logico: significa non alimentazione, ovvero niente di più potente di un LED o un microcircuito debole può essere alimentato dal pin del microcontrollore:
  • Per AVR Arduino, la corrente consigliata dal pin GPIO non è superiore a 20 mA, la corrente massima è 40 mA.
  • Per esp8266, la corrente massima dal pin GPIO non è superiore a 12 mA.
Torniamo al problema di emettere un segnale digitale: per questo abbiamo la funzione digitalWrite(pin, value):

  • pin - numero GPIO.
  • value - livello del segnale: HIGH - alto, LOW - basso. Puoi anche usare rispettivamente i numeri 1 e 0.
Nota: per emettere un segnale, il pin deve essere impostato in modalità OUTPUT utilizzando pinMode().
Un esempio in cui i pin vengono inizializzati come uscite e viene applicato un segnale (usando Arduino Nano come esempio):
void setup() 
     pinMode(10, OUTPUT); // D10 come uscita 
     pinMode(A3, OUTPUT); // A3 come uscita 
     pinMode(19, OUTPUT); // A5 come uscita (Nano/UNO) 
     digitalWrite(10, HIGH); // segnale alto su D10 
     digitalWrite(A3, 1); // segnale alto su A3 
     digitalWrite(19, 1); // segnale alto su A5
}
void loop() 
{
}
Lettura di un segnale digitale.
Un pin digitale può misurare la tensione, ma può solo segnalarne l'assenza (segnale di basso livello, LOW) o la presenza (segnale di alto livello, HIGH) e l'assenza di tensione è considerata l'intervallo da 0 a ~VCC/2 V, e da VCC/2V a VCC, il microcontrollore lo considera un segnale di alto livello.
Nota: non è possibile applicare ad un pin digitale (e anche a qualsiasi altro pin) una tensione superiore alla tensione di alimentazione del microcontrollore.
Per leggere il livello del segnale su un pin, utilizzare la funzione digitalRead(pin), dove pin è il numero GPIO.
Nota: per leggere il segnale, il pin deve essere impostato in modalità INPUT utilizzando pinMode().
Il codice seguente emetterà un segnale alla porta dal pin D5. Se lo colleghi con un filo a VCC - otteniamo 1, se a GND - otteniamo 0:
void setup() 
     Serial.begin(9600);
}
void loop() 
     Serial.println(digitalRead(5));
}

Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia