Crea sito

Contatore visite

Arduino con Transistor

E-mail Stampa

In questo esempio di applicazione usiamo il transistor come un interruttore e imparare ad usare un transistor per pilotare un carico non gestibile da un'uscita (pin) del microcontrollore.
 

Circuito:
 


 
Componenti:

-Arduino 2009 o UNO
-Breadboard
-1 transistor NPN (tipo 2N3904)
-2 resistenze da 10 kOhm
-3 resistenze da 680 Ohm
-3 LED di colore rosso
-1 pulsantino da PCB
-ponticelli
 

CODICE PER IL FUNZIONAMENTO:
 
#define PIN_PULSANTE 11
#define PIN_TRANSISTOR 12

byte value=0; //per stato transistor
byte val1=0;  //per debounce
byte val2=0;  //per debounce
byte change=0;//per debounce

void setup() {               
    pinMode(PIN_PULSANTE, INPUT);    
    pinMode(PIN_TRANSISTOR, OUTPUT);
}


void loop() {
 
    //funzione di Debounce per il pulsantino
    val1=digitalRead(PIN_PULSANTE); //prima lettura del pulsantino
    delay(10);
    val2=digitalRead(PIN_PULSANTE); //seconda lettura del pulsantino
    if (val1==val2) {
        if (val1!=change) { 
            if (val1==HIGH) { //se la lettura è HIGH, è stato premuto il pulsantino
                value^=1; //XOR logico: cambia lo stato del transistor
                digitalWrite(PIN_TRANSISTOR, value); //imposta il transistor
            }
        }
    }
    change=val1; //salva lo stato del pulsantino, per evitare doppie letture
}
 
 
 
Uno dei vari usi del transistor è quello come interruttore. Quando il transistor è attivato (saturo) mediante una tensione sulla "base", la corrente fornita al "collettore" può transitare attraverso il transistor ed uscire dall'"emettitore". Togliendo il segnale dalla base, non si fa altro che aprire questo interruttore, interrompendo il flusso di corrente. Per far ciò usiamo un pulsantino non collegato direttamente alla base ma ad un pin di Arduino, che legge la sua pressione e modifica lo stato del transistor in funzione dello stato da impostare (se "on" oppure "off").
 
Nel codice usiamo una piccola funzione di "debounce" per evitare letture errate (i "rimbalzi" di segnale). Premendo il pulsantino, l'Arduino varia lo stato del transistor mediante un'operazione di XOR logico: se il transistor è ON, viene messo OFF e viceversa. Quando il transistor è ON, la corrente che transita accende i 3 LED, che sono collegati all' emettitore tramite una resistenza da 680 Ohm per LED usata per abbassare la tensione ad una soglia che non danneggi il LED stesso.

 
 

Design by Yagendoo.com & Template by simsalaring.eu