ARDWARE #3 Porta Logica NOT 74HC04

Obiettivo: Utilizzare la porta logica NOT (74HC04)

Componenti elettronici:

  • Arduino
  • 1 led
  • 1 interruttori a scorrimento (slideswitch)
  • 1 resistenza (100 Ohm) per non fare bruciare il LED
  • 1 circuito integrato 74HC04 (TTL serie)

TeoriaObiettivo di questa esperienza è imparare ad utilizzare una porta logica NOT (74HC04) utilizzando degli interruttori e Arduino come semplice generatore di tensione.

La logica booleana rappresenta quel ramo dell’algebra in cui le variabili possono assumere solamente due valori: vero e falso (valori che nelle discipline elettroniche diventano 1 e 0). Le principali operazioni logiche sono 3: AND (prodotto logico), OR (somma logica), NOT (complemento). In seguito viene illustrato nel dettaglio il funzionamento di una porta logica NOT.

NOT – TABELLA DI VERITA’

L’operatore NOT restituisce il valore inverso a quello in entrata. In seguito è riportata la tabella di verità dell’operatore NOT

A NOT A
1 0
0 1

NOT – SIMBOLO CIRCUITALE

Da un punto di vista grafico la porta not è rappresentata mediante il seguente simbolo:

Simbolo Circuitale

NOT – CIRCUITO INTEGRATO (74HC04)

Da un punto di vista elettronico le operazioni logiche sono implementate grazie all’utilizzo di un circuito integrato. A seguire viene riportata una porzione del datasheet dell’integrato 74HC04 utilizzato per realizzare l’operazione logica NOT.

Questo circuito integrato permette di utilizzare 6 differenti porte logiche. Per funzionare deve essere alimentato a 5 volt. Nel dettaglio, il pin 14 deve essere collegato a VCC mentre il pin 7 al ground (GND). I pin 1,3,5,9,11,13 rappresentano gli input delle porte logiche, mentre i pin 2,4,6,8,10,12 gli output.

Nell’esempio trattato in questo articolo, è stato utilizzato un interruttori a scorrimento per gestire l’input della porta logica. Se l’interruttore è collegato ai 5 Volt l’input della porta logica è 1, differentemente se l’interruttore è collegato a 0 Volt l’input della porta logica è 0.

Collegamento Circuitale:

Schema elettrico

E’ facilmente verificabile che impostando l’input della porta logica a zero il led collegato all’uscita si accende, viceversa si spegne.

Tinkercad:



Codice:

Non serve codice.

Osservazioni:

  1. Prova a collegare più porte logiche in cascata.



ARDWARE #2 Logica booleana con interruttori

Obiettivo: Conoscere la logica booleana (NOT, AND, OR) utilizzando semplici interruttori

Componenti elettronici:

  • Arduino
  • Alcuni led
  • Alcuni interruttori a scorrimento (slideswitch)
  • Delle resistenze (100 Ohm) per non fare bruciare i LED

TeoriaObiettivo di questa esperienza è ricreare i semplici operatori logici (OR e AND) utilizzando degli interruttori e Arduino come semplice generatore di tensione.

La logica booleana rappresenta quel ramo dell’algebra in cui le variabili possono assumere solamente due valori: vero e falso (valori che nelle discipline elettroniche diventano 1 e 0). Le principali operazioni logiche sono 3: AND (prodotto logico), OR (somma logica), NOT (complemento). Tali operazioni sono descritte da delle specifiche tabelle di verità.

NOT

L’operatore NOT restituisce il valore inverso a quello in entrata. In seguito è riportata la tabella di verità dell’operatore NOT nel caso di due entrate:

A NOT A
1 0
0 1

AND

L’operazione AND restituisce come valore 1 se tutti gli elementi hanno valore 1, mentre restituisce 0 in tutti gli altri casi. Tale operazione è anche detta prodotto logico. In seguito è riportata la tabella di verità dell’operatore AND nel caso di due entrate:

A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1

OR

L’operazione OR restituisce come valore 1 se almeno uno degli input ha valore 1. Tale operazione è anche detta somma logica. In seguito è riportata la tabella di verità dell’operatore OR nel caso di due entrate:

A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1

Nell’esempio trattato in questo articolo, sono stati utilizzati degli interruttori a scorrimento per realizzare semplici porte logiche AND e OR. Nello specifico, attraverso gli interruttori è possibile collegare/scollegare il LED alla alimentazione. Modificando la posizione dell’interruttore, il circuito si apre/chiude impedendo/permettendo il passaggio della corrente che permette di spegnere/accendere il LED.

Collegamento Circuitale:

Nella precedente rappresentazione sono riportati quattro differenti circuiti.

  • Circuito1: LED sempre acceso con resistenza per limitare il passaggio di corrente (utile ad evitare la rottura della lampada).
  • Circuito2: Utilizzo di un semplice interruttore a scorrimento per interrompere il flusso di corrente e accendere/spegnare il LED.
  • Circuito3: Realizzazione di una porta logica AND mediante la connessione serie di due interruttori. Nella seguente galleria di immagini sono riportate le differenti combinazioni di input per una porta logica AND realizzata con gli interruttori.
  • Circuito4: Realizzazione di una porta logica OR mediante la connessione parallelo di due interruttori. Nella seguente galleria di immagini sono riportate le differenti combinazioni di input per una porta logica OR realizzata con gli interruttori.

Codice:

Non serve codice.

Tinkercad:



Osservazioni:

  1. Prova a realizzare combinazioni di porte logiche utilizzando gli interruttori in serie o parallelo.



ARDWARE #1 I Led Arcobaleno

Obiettivo: Utilizzare Arduino come alimentatore per gestire 5 led arcobaleno (rosso, blu, arancione, giallo, verde)

Componenti elettronici:

  • Arduino
  • 5 led
  • 5 interruttori a scorrimento (slideswitch)
  • 5 resistenze (100 Ohm)

TeoriaObiettivo di questa esperienza è gestire 5 differenti led utilizzando Arduino come un semplice alimentatore. In questa esperienza, non c’è né codice né programmazione; i led sono gestiti nella vecchia maniera (old school) attraverso dei semplici interruttori che separano la lampada dalla rete di alimentazione.

Nell’esempio trattato in questo articolo, sono stati utilizzati degli interruttori a scorrimento i cui terminali sono collegati alla tensione di alimentazione (5 Volt) o alla massa (0 Volt). Modificando la posizione dell’interruttore, il morsetto centrale si collega ad una delle due tensioni di riferimento. Tale interruttore è collegato direttamente ad un LED (una semplice lampada che funziona con una tensione di 1,5 Volt). Una resistenza in serie al LED è indispensabile al fine di regolare la tensione e la corrente presente sulla lampada evitando di danneggiarla.

Collegamento Circuitale:

Codice:

Non serve codice.

Osservazioni:

  1. Il circuito non è completo, divertiti a completarlo.



Le frecce dell’AUDI con Arduino

Obiettivo: Realizzare un sistema di controllo dei led che simula l’effetto delle frecce di un Audi. Le luci si accendono alla pressione di un pulsante.

Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • 8 Resistenze da 220 Ohm per i led
  • 4 LED
  • 2 Resistenza da 10KOhm per i pulsanti
  • 2 Pulsanti

Pre-requisiti:


LED e Pulsante


TeoriaCome abbiamo detto, lo scopo dell’esercitazione è quello di attivare due barre LED tramite la pressione di due pulsanti. Le barre simulano l’effetto freccia presente nelle auto Audi. La pressione del pulsante dà il comando di avvio della sequenza e, se si tiene premuto il pulsante, la sequenza rimane attiva.

Sarà necessario sistemare il codice in base a come viene montato il pulsante (se in pull-up o in pull-down)

Collegamento Circuitale:

Codice:

Il codice è basato sulla lettura del segnale del pulsante (nel nostro caso in pull-down) che, se premuto, attiva la relativa sequenza



Esperienza realizzata dalla classe 3 BMC del Dipartimento di Meccanica dell’ITIS “E.Mattei” di Urbino nell’AS 2022-23. Codice e Thinkercad realizzato da Giacomo Brancorsini




Realizzare una Pila con una Patata

Obiettivo: Realizzare una Pila con una Patata ed accendere un LED.



Componenti elettronici:

  • 1 Patata
  • 1 moneta da 5 centesimi (rame)
  • 1 chiodo (zinco)
  • Cavi
  • 1 Led (opzionale – utilizzato per verificare il funzionamento della pila)
  • 1 Multimetro (opzionale – utilizzato per verificare il funzionamento della pila)

TeoriaDal punto di vista teorico, una pila è costituita da una soluzione elettrolitica nella quale sono immersi due differenti metalli (come ad esempio rame e zinco).
E’ importante considerare che ogni agrume possiede al proprio interno succhi che possono fungere da soluzioni elettrolitiche in quanto ricchi di ioni.
Per questo motivo, elementi come limoni, arance e patate possono essere facilmente trasformati in pile.

Procedimento:  Viene in seguito riportato un procedimento step by step per realizzare la pila utilizzando una patata

  • Prima di iniziare, fare pressione con i palmi delle mani sulla patata appoggiata sul tavolo in modo schiacciarla e rompere i legami interni che producono il succo (questo permette di generare più energia).
  • Introdurre alle due estremità della patata la moneta da 5 centesimi (è possibile anche utilizzare un chiodo di rame) ed il chiodo di zinco.
  • Evitare che all’interno della patata i due elementi conduttori si tocchino tra di loro.
  • Utilizzare il multimetro per determinare il livello di differenza di potenziale (tensione) prodotto.

Collegamento Circuitale:

Collegamento Circuitale


PersonalizzazioniE’ possibile collegare più patate in serie al fine di incrementare il livello di tensione.





Blinking Led Senza Delay: MILLIS()

Obiettivo: Realizzazione del classico blinking led senza utilizzare la funzione Delay



Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • Led
  • Resistenza (100 Ohm)

TeoriaSe da un certo punto di vista l’impiego della funzione delay è particolarmente utile per la realizzazione di semplici applicativi; da un altro punto di vista molteplici potrebbero essere gli inconvenienti legati all’utilizzo di questa funzione.
E’ infatti, molto importante, considerare che l’istruzione delay è un’istruzione bloccante. Questa istruzione “congela” Arduino nel suo stato corrente, pertanto negli istanti di delay non è possibile fare aggiornamenti, gestire input attraverso letture o comandare attuatori mediante scritture.
Ad esempio, nel caso della realizzazione di un semaforo per perdoni, dove è possibile effettuare la chiamata mediante la pressione di un pulsante, l’impiego della funzione delay è altamente sconsigliato per la gestione del semaforo perchè questo renderebbe invisibile la pressione del pulsate.
Per tutte queste ragioni è opportuno scrivere codici senza l’impiego della funzione delay. Nel dettaglio è opportuno sostituire la funzione delay con la più funzionale ma meno pratica funzione millis.

La funzione millis restituisce il numero di millisecondi che sono passati da quando la board Arduino ha eseguito il programam corrente. Questo numero si riazzera dopo circa 50 giorni.

Collegamento Circuitale:

Collegamento Circuitale

Codice:

A seguire viene riportato il codice utilizzato per fare lampeggiare il led senza delay. Nello specifico il codice memorizza l’ultimo istante in cui è avvenuta una azione (il led ha cambiato stato) nella variabile previousMillis mentre nella variabile currentMillis viene memorizzato il tempo corrente. Attraverso la differenza tra questi due tempi si comprendere se il led deve cambiare stato (accendersi o spegnersi). Nel dettaglio, se la differenza tra la variabile currentMillis e previousMillis è maggiore di 1000 millisecondi allora lo stato del led cambia.



PersonalizzazioniE’ possibile modificare il comportamento del circuito in questione intervenendo sul valore della variabile interval. Modificando il suo valore infatti cambia la frequenza di lampeggiamento del LED.
E’ inoltre possibile modificare il pin digitale utilizzato per pilotare il LED cambiando rispettivamente hardware e software.

L’utilizzo di una resistenza, in serie al LED, serve appunto per limitare la quantità di corrente presente sul diodo emettitore di luce.




Controllo di un LED Mediante Telecomando SAMSUNG

Obiettivo: Controllo ON/OFF di un LED mediante il telecomando SAMSUNG ad infrarossi.



Componenti elettronici:

  • Arduino
  • Telecomando di un televisore SAMSUNG
  • Ricevitore IR
  • 1 Resistenza 100 Ohm
  • 1 LED

Pre-requisiti:

Per utilizzare il sensore ad Infrarossi ed il telecomando è necessario installare la libreria IRremote. Per scoprire come installare la libreria IRremote consultare la seguente lezione:


Come Installare una Libreria (IRremote Library)


TeoriaIl telecomando è un dispositivo elettronico, sviluppato negli anni 50, che permette di inviare (ma non di ricevere) segnali ad un altro dispositivo situato a distanza per comandarlo.
In genere, i telecomandi tradizionali sono in grado di trasmette il segnale fino ad una distanza di circa 20 metri sotto forma di raggi infrarossi codificati.
Affinché il dispositivo da comandare possa ricevere i segnali inviati dal telecomando è necessario utilizzare un ricevitore ad infrarossi tipicamente fornito con il telecomando. La maggior parte dei ricevitori ad infrarossi in commercio sono dotati di 3 pin. Nel caso specifico, viene utilizzato il sensore KY 022, sul quale in prossimità dei connettori sono riportate tre lettere (G, R, Y)

  • Alimentazione (R)
  • Ground (G)
  • Uscita (Y)
Ricevitore IR

Il pin di uscita (Y) del ricevitore permette di inviare al microcontrollore (al quale è collegato il ricevitore) il segnale ricevuto dal telecomando. E’ importante considerare come ad ogni pulsante del telecomando sia associato un codice univoco. Tali codici variano in funzione dei vari telecomandi; pertanto prima di realizzare il programma finale è importante ottenere il valore del codice associato ai vari pulsanti.
Nel caso specifico, si è deciso di utilizzare un telecomando SAMSUNG di una SMART TV. Utilizzando il software riportato in seguito è stato possibile determinare i codici associati ai vari pulsanti:

Pulsante Codice
ON/OFF Button 3772793023
UP Button 3772795063
DOWN Button 3772778743
Number 0 3772811383
Number 1 3772784863
Number 2 3772817503
Number 3 3772801183
Number 4 4120482440
Number 5 3772813423
Number 6 3772797103
Number 7 3772788943
Number 8 3772821583
Number 9 3772805263
MENU 3772799143

Se il telecomando a disposizione è differente da quello proposto in questa lezione è possibile ottenere i codici eseguendo il software riportato in seguito. Una volta ottenuti i codici, è possibile attraverso il seguente collegamento circuitale scrivere il programma per comandare un LED attraverso il pulsante di ON/OFF del telecomando.

Collegamento Circuitale:

Schema Circuitale

Codice:

A seguire viene riportato il software utile per determinare i codici associati ad ogni pulsante del telecomando a IR.



Ottenuto il codice associato al pulsante desiderato è possibile modificare il software per comandare l’azionamento di un LED mediante telecomando a IR. Il programma è molto simile al precedente viene solamente aggiunta la parte di codice relativa alla gestione del LED ed una istruzione IF per determinare se il pulsante premuto è quello di ON/OFF. E’ importante infatti considerare che il LED si accenderà solamente quando il pulsante di ON/OFF è premuto.



Personalizzazioni:

E’ possibile aggiungere più LED e comandare i vari LED con i vari pulsanti del telecomando.




Controllo di un LED Mediante Telecomando ELEGOO

Obiettivo: Controllo ON/OFF di un LED mediante il telecomando ELEGOO ad infrarossi.



Componenti elettronici:

  • Arduino
  • Telecomando IR Elegoo
  • Ricevitore IR
  • 1 Resistenza 100 Ohm
  • 1 LED

Pre-requisiti:

Per utilizzare il sensore ad Infrarossi ed il telecomando è necessario installare la libreria IRremote. Per scoprire come installare la libreria IRremote consultare la seguente lezione:


Come Installare una Libreria (IRremote Library)


TeoriaIl telecomando è un dispositivo elettronico, sviluppato negli anni 50, che permette di inviare (ma non di ricevere) segnali ad un altro dispositivo situato a distanza per comandarlo.
In genere, i telecomandi tradizionali sono in grado di trasmette il segnale fino ad una distanza di circa 20 metri sotto forma di raggi infrarossi codificati.
Affinché il dispositivo da comandare possa ricevere i segnali inviati dal telecomando è necessario utilizzare un ricevitore ad infrarossi tipicamente fornito con il telecomando. La maggior parte dei ricevitori ad infrarossi in commercio sono dotati di 3 pin. Nel caso specifico, viene utilizzato il sensore KY 022, sul quale in prossimità dei connettori sono riportate tre lettere (G, R, Y)

  • Alimentazione (R)
  • Ground (G)
  • Uscita (Y)
Ricevitore IR

Il pin di uscita (Y) del ricevitore permette di inviare al microcontrollore (al quale è collegato il ricevitore) il segnale ricevuto dal telecomando. E’ importante considerare come ad ogni pulsante del telecomando sia associato un codice univoco. Tali codici variano in funzione dei vari telecomandi; pertanto prima di realizzare il programma finale è importante ottenere il valore del codice associato ai vari pulsanti.
Nel caso specifico del telecomando ELEGOO i codici associati ai vari pulsanti (ottenuti con il programma Arduino riportato in seguito) sono presentati nella seguente tabella:

Pulsante Codice
ON/OFF Button 16753245
UP Button 16748655
DOWN Button 16769055
Number 0 16738455
Number 1 16724175
Number 2 16718055
Number 3 16743045
Number 4 16716015
Number 5 16726215
Number 6 16734885
Number 7 16728765
Number 8 16730805
Number 9 16732845
STOP 16769565

Se il telecomando a disposizione è differente da quello proposto in questa lezione è possibile ottenere i codici eseguendo il software riportato in seguito. Una volta ottenuti i codici, è possibile attraverso il seguente collegamento circuitale scrivere il programma per comandare un LED attraverso il pulsante di ON/OFF del telecomando.

Collegamento Circuitale:

Schema Circuitale

Codice:

A seguire viene riportato il software utile per determinare i codici associati ad ogni pulsante del telecomando a IR.



Ottenuto il codice associato al pulsante desiderato è possibile modificare il software per comandare l’azionamento di un LED mediante telecomando a IR. Il programma è molto simile al precedente viene solamente aggiunta la parte di codice relativa alla gestione del LED ed una istruzione IF per determinare se il pulsante premuto è quello di ON/OFF. E’ importante infatti considerare che il LED si accenderà solamente quando il pulsante di ON/OFF è premuto.



Personalizzazioni:

E’ possibile aggiungere più LED e comandare i vari LED con i vari pulsanti del telecomando.




Controllo di un LED Mediante Telecomando Infrarossi – (Tinkercad)

Obiettivo: Controllo ON/OFF di un LED mediante il telecomando ad infrarossi. Simulazione basata sull’utilizzo del software Tinkercad.



Componenti elettronici:

  • Non servono componenti elettronici hardware, basta il tuo PC ed una connessione ad internet.
  • http://tinkercad.com/

TeoriaIl telecomando è un dispositivo elettronico, sviluppato negli anni 50, che permette di inviare (ma non di ricevere) segnali ad un altro dispositivo situato a distanza per comandarlo.
In genere, i telecomandi tradizionali sono in grado di trasmette il segnale fino ad una distanza di circa 20 metri sotto forma di raggi infrarossi codificati.
Affinché il dispositivo da comandare possa ricevere i segnali inviati dal telecomando è necessario utilizzare un ricevitore ad infrarossi tipicamente fornito con il telecomando. La maggior parte dei ricevitori ad infrarossi in commercio sono dotati di 3 pin:

  • Alimentazione
  • Ground
  • Uscita

Il pin di uscita del ricevitore permette di inviare al microcontrollore (al quale è collegato il ricevitore) il segnale ricevuto dal telecomando. E’ importante considerare come ad ogni pulsante del telecomando sia associato un codice univoco. Tali codici variano in funzione dei vari telecomandi; pertanto prima di realizzare il programma finale è importante ottenere il valore del codice associato ai vari pulsanti.
Nel caso specifico di Tinkercad i codici associati ai vari pulsanti (ottenuti con il programma Arduino riportato in seguito) sono presentati nella seguente tabella:

Pulsante Codice
ON/OFF Button 16580863
UP Button 16601263
DOWN Button 16584943
Number 0 16593103
Number 1 16582903
Number 2 16615543
Number 3 16599223
Number 4 16591063
Number 5 16623703
Number 6 16607383
Number 7 16586983
Number 8 16619623
Number 9 16603303
STOP 16597183

Una volta ottenuti i codici è possibile attraverso il collegamento circuitale riportato in seguito scrivere il programma per comandare un LED attraverso il pulsante di ON/OFF

Collegamento Circuitale:

Schema Circuitale

Codice:

A seguire viene riportato il software utile per determinare i codici associati ad ogni pulsante del telecomando a IR.



Ottenuto il codice associato al pulsante desiderato è possibile modificare il software per comandare l’azionamento di un LED mediante telecomando a IR. Il programma è molto simile al precedente viene solamente aggiunta la parte di codice relativa alla gestione del LED ed una istruzione IF per determinare se il pulsante premuto è quello di ON/OFF. E’ importante infatti considerare che il LED si accenderà solamente quando il pulsante di ON/OFF è premuto.



Personalizzazioni:

E’ possibile aggiungere più LED e comandare i vari LED con i vari pulsanti del telecomando.




Tinkercad un simulatore Online per Arduino

Obiettivo: Utilizzare il simulatore online tinkercad per emulare l’ambiente Arduino facendo lampeggiare un led.

Componenti elettronici:

  • Non servono componenti elettronici hardware, basta il tuo PC ed una connessione ad internet.
  • http://tinkercad.com/

Pre-Requisiti

TeoriaIl microcontrollore Arduino ha molti vantaggi: economico, facile da utilizzare, costa poco. Tuttavia non sempre abbiamo a disposizione i sensori che ci interessano e che vorremmo utilizzare nelle nostre applicazioni, oppure non sempre abbiamo Arduino con noi. Per questo motivo l’impiego di un simulatore online può essere estremamente vantaggioso. Tra i vari simulatori uno dei migliori è sicuramente Tinkercad. Tinkercad è un programma di modellazione 3D, online che può essere eseguito direttamente in un web browser. Particolarmente utilizzato per la realizzazione di progetti di stampa 3D, questo software permette anche la simulazione di circuiti elettronici in ambiente Arduino.
Obiettivo di questa esperienza è simulare il circuito presentato nei pre-requisiti dove un Led collegato al pin 8 lampeggia con una frequenza di 1Hz (si accende e si spegne ogni secondo).

Simulazione CircuitaleCompletata la fase di registrazione, una volta effettuato il login, è possibile passare alla fase di simulazione dei circuiti elettrici semplicemente cliccando su Circuits.

Dalla schermata di simulazione è possibile selezionare i componenti necessari, nel caso in questione Arduino, attraverso il pannello dei componenti (questo pannello si trova nello schermo a destra).

In seguito è possibile aggiungere al pannello di simulazione Arduino con la corrispettiva breadboard.

E realizzare il circuito con led e resistenza indispensabili per la realizzazione di questo tutorial.

Completata la realizzazione hardware, al fine di garantire il funzionamento del circuito, è necessario caricare il software per il blinking del led sul controllore Arduino. Per inserire il codice, cliccare sul pulsante Code in alto a destra. E’ possibile programmare Arduino sia mediante blocchi (Scratch) sia mediante il tradizionale codice. Nel caso specifico, selezionata l’opzione text è possibile copiare e incollare il codice direttamente dall’esempio riportato nei pre-requisiti.

Terminata la programmazione del controllore si passa alla fase di simulazione cliccando sul pulsante Start Simulation.