Programmare Arduino – Le basi

Arduino è collegabile al PC tramite un cavo USB. L’IDE (Integrated Development Environment) è l’ambiente in cui si scrive e si carica il codice sulla scheda Arduino (scaricabile dal sito ufficiale di Arduino (https://www.arduino.cc/). E’ possibile anche usare l’Arduino Web Editor per programmare online, anch’esso disponibile nel sito ufficiale di Arduino.

Un programma Arduino è chiamato sketch e usa un linguaggio simile a C/C++. Ogni sketch ha due funzioni fondamentali (spiegate nel dettaglio qui)

  • setup(): Configura i pin o inizializza componenti (eseguito una sola volta all’inizio).
  • loop(): Contiene il codice che viene eseguito continuamente.

[crayon-67ec60a34e25c662871459/]

Ogni funzione e in generale ogni blocco di codice, viene racchiuso tra parentesi graffe { e }. Il totale delle parentesi aperte {  deve essere lo stesso di quelle chiuse }.

Ogni istruzione di programma termina con un punto e virgola ;

E’ possibile inserire dei commenti nel codice, utilizzando la doppia barra  // per commentare su una linea e  barra asterisco (e asterisco barra) /* … */ per commenti su più linee.

Nella funzione setup(), vengono tipicamente configurati i pin. La funzione da usare è pinMode. Ad esempio:

[crayon-67ec60a34e265232113735/]
[crayon-67ec60a34e268582199143/]

Altre funzioni importanti e ricorrenti sono:

  • digitalWrite(pin, valore): Imposta un pin su HIGH o LOW.
  • digitalRead(pin): Legge lo stato di un pin digitale (HIGH o LOW).
  • analogWrite(pin, valore): Imposta un’uscita PWM (valori tra 0 e 255).
  • analogRead(pin): Legge un valore analogico da un pin (da 0 a 1023).
  • delay(millisecondi): Imposta una pausa nell’esecuzione del programma. La pausa è espressa in millisecondi

Esistono molte altre funzioni, che vengono illustrate con gli esempi presenti nel sito.

Per altre funzioni, si rimanda ai tutorial ufficiali di Arduino.




Braccio Tinkerkit Arduino

Obiettivo:

Pilotare il braccio robotico Tinkerkit tramite Arduino e 2 Joystick

Componenti elettronici:

Teoria:

Alla base di questa esercitazione c’è il braccio robotico TinkerKit.

Braccio TinkerKit
https://store.arduino.cc/products/tinkerkit-braccio-robot
Braccio TinkerKit
https://store.arduino.cc/products/tinkerkit-braccio-robot

Il TinkerKit Braccio è un braccio robotico completamente operativo, controllato tramite Arduino. Può essere assemblato in diversi modi per realizzare più attività come lo spostamento di oggetti, il movimento di pannelli, fotocamere o cellulari.

Braccio TinkerKit
Braccio TinkerKit

La scheda del braccio deve essere alimentare tramite la connessione jack con l’alimentatore da 5 VDC @ 4000 mA fornito nella confezione.

Nella confezione sono presenti:

  • Plastic Parts x 21
  • Screws x 63
  • Flat Washer x 16
  • Hexagon Nut x 7
  • Springs x 2
  • Servo Motors: 2 x SR 311, 4 x SR 431
  • Arduino compatible Shield x 1
  • Power Supply 5V, 4A x 1
  • Phillips Screwdriver x 1
  • Spiral Cable Protection Wrap x 1

Per pilotare la scheda dei driver del Braccio è necessario scaricare la libreria da questo link: https://github.com/bcmi-labs/arduino-library-braccio

Installazione Shield TinkerKit sopra Arduino
Braccio TinkerKit scheda pilotaggio servomotori
Braccio TinkerKit datasheet scheda pilotaggio servomotori

Schema connessione Joystick a shield servomotori:

Connessione Joystick

Alcune immagini rappresentative del funzionamento del Braccio:

Posizione iniziale di sicurezza
Posizione iniziale di sicurezza
Connessione dei Joystick
Connessione dei Joystick
Base a 0°
Base a 0°
Base a 180°
Base a 180°
Spalla 15° (Shoulder)
Spalla 15° (Shoulder)
Spalla 165° (Shoulder)
Spalla 165° (Shoulder)
Gomito 0° (Elbow)
Gomito 0° (Elbow)
Gomito 180° (Elbow)
Gomito 180° (Elbow)
Polso 0° (Wrist)
Polso 0° (Wrist)
Polso 180° (Wrist)
Polso 180° (Wrist)
Polso / Mano 180° (Wrist / Gripper)
Polso / Mano 180° (Wrist / Gripper)
Polso / Mano 180° (Wrist / Gripper)
Polso / Mano 180° (Wrist / Gripper)
Mano 73° (Gripper)
Mano 73° (Gripper)
Mano 10° (Gripper)
Mano 10° (Gripper)

Funzionamento:

Il Braccio è costituito da 6 Servo Motori di conseguenza 2 Joystick (2 assi + 1 bottone per joystick) non basterebbero per pilotare tutti gli assi.

 Si è optato quindi per il pilotaggio dei motori da 1 a 4 tramite gli assi (potenziometri collegati agli ingressi analogici di Arduino) del joystick mentre per la rotazione della mano nei due sensi sono utilizzati i pulsanti dei due joystick connessi ai pin 1 e 2 di Arduino (ingressi I/O in configurazione INPUT_PULLUP).

Rimane la chiusura e apertura della gripper (mano), per fare questo invece si è optato al cambio di stato apertura-chiusura e chiusura-apertura tramite la pressione contemporanea dei pulsanti dei joystick.

Ricordarsi di queste informazioni, limiti di rotazione dei servomotori, per non rovinare il Braccio:

  • M1=base (base) degrees. Allowed values from 0 to 180 degrees
  • M2=shoulder (spalla) degrees. Allowed values from 15 to 165 degrees
  • M3=elbow (gomito) degrees. Allowed values from 0 to 180 degrees
  • M4=wrist (polso) vertical degrees. Allowed values from 0 to 180 degrees
  • M5=wrist rotation degrees. Allowed values from 0 to 180 degrees
  • M6=gripper degrees. Allowed values from 10 to 73 degrees. 10: the gripper (pinza) is open, 73: the gripper is closed.

Codice:






Rivelatore di Gas con Allarme Sonoro e Visivo

Obiettivo: L’obiettivo di questa esperienza è realizzare un rilevatore di GAS con allarme sonoro (buzzer) e visivo (led lampeggiante). Per la realizzazione di questo dispositivo è stato utilizzato un particolare sensore denominato MQ-2.

Componenti Elettronici:

  • Arduino Uno
  • Breadboard
  • Sensore MQ-2
  • Resistenza (220 Ohm)
  • Led
  • Buzzer passivo

Pre-Requisiti:


Buzzer Passivo


TeoriaIl sensore MQ-2 appartiene alla famiglia di sensori MQ (rivelatori di gas) utili per determinare la concentrazione di specifici gas in aria. Al momento i sensori MQ più utilizzati sono i seguenti:

Nome Datasheet Gas Rilevabile
MQ-2 Link Metano, Butano, LPG (Gas di Petrolio Liquefatto), fumo.
MQ-3 Link Alcol.
Utile per realizzare un etilometro.
MQ-4 Link Gas naturale compresso (CNG)
MQ-5 Link GPL e Gas di Città
MQ-6 Link GPL
MQ-7 Link Monossido di Carbonio
MQ-8 Link Idrogeno
MQ-9 Link Monossido di Carbonio, metano, e GPL
MQ-135 Link Ammoniaca e ossido di azoto.

Nello specifico le caratteristiche del sensore MQ-2 (come riportato nel datasheet sono le seguenti):

  • Tensione di alimentazione: 5V
  • Potenza assorbita: 800mW
  • Temperatura operativa: da -20 a +50 gradi
  • Peso 7grammi

Il dispositivo presenta inoltre 4 pin utilizzati per i collegamenti:

  • VCC
  • GND
  • Uscita Analogica
  • Uscita Digitale
Sensore MQ2

Da un punto di vita elettronico gli elementi caratteristici sono rappresentati dalla resistenza di carico RL (aggiustabile attraverso un trigger) e la resistenza del sensore RS (il cui valore è funzione della concentrazione di gas presente nell’ambiente. Nello specifico il valore della resistenza RS viene riportato nella seguente figura, opportunamente normalizzato (R0 rappresenta il valore della resistenza RS assunto nell’ambiente di riferimento con aria pulita).

Curva caratteristica della resistenza del sensore MQ-2

Essendo RS ed RL collegati in serie, come riportato dal datasheet, è possibile determinare il valore di RS attraverso la seguente formula:

RS = (VCC/VRL-1)*RL

Codice: Due sono i differenti codici utilizzati per realizzare il rivelatore di gas.
Il primo codice viene utilizzato per determinare il valore di R0 caratteristico dell’ambiente nel quale viene posizionato il sensore, considerando che il rapporto tra RS ed R0 è uguale a 10 in un ambiente contenente aria pulita.



Determinato il valore di RS in aria è possibile eseguire il secondo codice che permette di implementare il rivelatore di gas.






ARDWARE #11 Realizzare un SOMMATORE a 8 BIT

Obiettivo: Realizzare un SOMMATORE a 8 BIT utilizzando l’integrato 74H283. Un progetto realizzato dall’alunno della classe 1CSA del liceo Enrico Medi di Senigallia: Carlo Tozza.

Componenti elettronici:

  • Arduino
  • 8+8+9 led (utilizzati per visualizzare il valore dei due addenti e della somma risultante)
  • 16 interruttori a scorrimento (slideswitch utilizzati per gestire gli input)
  • 8+8+9 resistenze (100 Ohm) per non fare bruciare i LED
  • 2 circuito integrato 74HC283 (TTL serie)

TeoriaObiettivo di questa esperienza è realizzare un “SOMMATORE a 8 BIT” utilizzando il circuito integrato 74HC283. Nello specifico, Arduino è utilizzato come semplice generatore di tensione.

E” importante considerare che un “SOMMATORE a 8 BIT” può essere ottenuto come semplice composizione di SOMMATORI a 4 BIT.

Nello specifico, è importante considerare che un sommatore a 8 bit permette di effettuare somme con addendi che possono assumere un valore massimo decimale pari a 255.

Un esempio di somma a 8 bit è riportata in seguito.

8 7 6 5 4 3 2 1 0
Carry 1 1
A 1 0 0 0 0 0 1 1
B 0 1 1 0 1 0 0 1
Sum 1 1 1 0 1 1 0 0

In conclusione la somma di A: 10000011 e B:01101001 produce il seguente valore: 11101100.

Nell’esempio trattato in questo articolo, sono stati utilizzati 16 interruttori a scorrimento per gestire gli input del SOMMATORE a 8bit. 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:

TINKERCAD:



E’ facilmente verificabile il comportamento del SOMMATORE a 8 bit modificando la posizione dei 16 differenti interruttori.

Codice:

Non serve codice.




ARDWARE #10 Realizzare un SOMMATORE a 4 BIT

Obiettivo: Realizzare un SOMMATORE a 4 BIT utilizzando l’integrato 74H283.

Componenti elettronici:

  • Arduino
  • 4+4+5 led (utilizzati per visualizzare il valore dei due addenti e della somma risultante)
  • 8 interruttori a scorrimento (slideswitch utilizzati per gestire i tre input)
  • 4+4+5 resistenze (100 Ohm) per non fare bruciare i LED
  • 1 circuito integrato 74HC283 (TTL serie)

TeoriaObiettivo di questa esperienza è realizzare un “SOMMATORE a 4 BIT” utilizzando il circuito integrato 74HC283. Nello specifico, Arduino è utilizzato come semplice generatore di tensione.

Un SOMMATORE a 4 bit è un dispositivo elettronico utilizzato per eseguire somme binarie. Tale dispositivo è realizzato mediante dispositivi FULL ADDER. Pertanto, al fine di comprendere il funzionamento di un “SOMMATORE BINARIO” si rimanda ad alcune delle lezioni precedentemente illustrate e utili a descrivere il comportamento dei circuiti logico-combinatori: HALF ADDER e FULL ADDER.

SOMMATORE BINARIO COME CASCATA DI FULL ADDER

Nelle precedenti lezioni, si è dimostrato come la somma di addendi con dimensione 1 bit possa essere eseguita mediante un FULL ADDER (un circuito elettronico che gestisce sia gli addendi A e B, sia un ipotetico riporto Cin).
Al fine di comprendere meglio il funzionamento di un sommatore binario a 4 bit si prenda in considerazione la seguente somma binaria riguardante due ipotetici addenti A e B caratterizzati dai seguenti valori:

A = 0011

B = 1001

Nello specifico è importante considerare che l’algoritmo utilizzato per eseguire la somma binaria è lo stesso tipicamente impiegato per eseguire somme decimali. Pertanto, dal bit meno significativo (il bit 0) verrà eseguita la somma parziale 1+1 la quale produce il seguente risultato: 10 (riporto: 1 e somma: 0).

4 3 2 1 0
Carry 1
A 0 0 1 1
B 1 0 0 1
Sum 0

A seguire, prendendo in considerazione il bit 1, verrà eseguita la somma parziale 1+1+0 la quale produce il seguente risultato: 10 (riporto: 1 e somma: 0).

4 3 2 1 0
Carry 1 1
A 0 0 1 1
B 1 0 0 1
Sum 0 0

Analogamente, prendendo in considerazione il bit 2, verrà eseguita la somma parziale 1+0+0 la quale produce il seguente risultato: 01 (riporto: 0 e somma: 1).

4 3 2 1 0
Carry 0 1 1
A 0 0 1 1
B 1 0 0 1
Sum 1 0 0

Infine, prendendo in considerazione il bit 3 (il bit più significativo), verrà eseguita la somma parziale 0+0+1 la quale produce il seguente risultato: 01 (riporto: 0 e somma: 1).

4 3 2 1 0
Carry 0 1 1
A 0 0 1 1
B 1 0 0 1
Sum 1 1 0 0

In conclusione la somma di A: 0011 e B:1001 produce il seguente valore: 1100.
Tuttavia, a prescindere dal risultato della somma, quello che si può facilmente notare è la gestione del carry (il riporto). Nello specifico esistono due tipologie di carry: il carry in uscita (ovvero il risultato dell’operazione) ed il carry in ingresso (uno degli addendi dell’operazione). Al termine di ogni singola sotto-operazione il carry in uscita diventa carry in ingresso per l’operazione successiva. Pertanto da un punto di vista elettronico un sommatore a 4 bit può essere facilmente realizzato come cascata di 4 FULL ADDER dove il carry in uscita di ogni singolo FULL ADDER è collegato direttamente al carry in ingresso del dispositivo successivo.

Viene riportato in seguito lo schema a blocchi di un SOMMATORE a 4 bit.

Sommatore a 4 bit

Nell’esempio trattato in questo articolo, sono stati utilizzati 8 interruttori a scorrimento per gestire gli input del SOMMATORE a 4bit. 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:

TINKERCAD:



E’ facilmente verificabile il comportamento del SOMMATORE a 4 bit modificando la posizione degli 8 differenti interruttori.

Codice:

Non serve codice.




ARDWARE #9 Realizzare un FULL ADDER come combinazione di HALF ADDER

Obiettivo: Realizzare un FULL ADDER come combinazione di HALF ADDER

Componenti elettronici:

  • Arduino
  • 2 led (un led rosso per la somma ed un led verde per il riporto)
  • 3 interruttori a scorrimento (slideswitch utilizzati per gestire i tre input)
  • 2 resistenze (100 Ohm) per non fare bruciare i LED
  • 1 circuito integrato 74HC08 (TTL serie)
  • 1 circuito integrato 74HC32 (TTL serie)
  • 1 circuito integrato 74HC86 (TTL serie)

TeoriaObiettivo di questa esperienza è realizzare un “FULL ADDER” utilizzando porte logiche AND (74HC08), XOR (74HC86) e OR (74HC32). Nello specifico, Arduino è utilizzato come semplice generatore di tensione.

Un FULL ADDER è un sommatore binario realizzato attraverso la logica booleana. Nel caso specifico, questo sommatore rappresenta un evoluzione del semplice HALF ADDER presentando tre ingressi: A, B, Cin e due uscite: S (la somma di A + B + Cin) e Cout (il riporto della somma di A + B + Cin). A differenza di un HALF ADDER, il quale presenta due soli input (A e B), il FULL ADDER permette di eseguire operazioni reali che tengono in considerazione anche il riporto ottenuto da una precedente somma. Un FULL ADDER può essere ottenuto come combinazione di due HALF ADDER e di una porta logica OR. Pertanto, le principali operazioni logiche che implementano questo dispositivo sono 3: AND (prodotto logico), OR (somma logica) e XOR. Viene in seguito illustrato nel dettaglio il funzionamento di un FULL ADDER.

HALF ADDER – TABELLA DI VERITA’

La tabella di verità di un FULL ADDER può essere facilmente ottenuta sommando i tre ingressi A, B e Cin. La presenza dell’ingresso Cin è l’elemento fondamentale che contraddistingue un FULL ADDER da un HALF ADDER:

A B Cin Cout S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

HALF ADDER – SIMBOLO CIRCUITALE

Da un punto di vista grafico il dispositivo FULL ADDER è rappresentato mediante il seguente simbolo:

F-ullv Adder – Simbolo circuitale

FULL ADDER COMME COMBINAZIONE DI HALF ADDER

Osservando la tabella di verità si può comprendere come sia possibile utilizzare due HALF ADDER per ottenere un FULL ADDER.

Nello specifico

Schema circuitale di un FULL ADDER
Schema Circuitale di un FULL ADDER a porte logiche

Nell’esempio trattato in questo articolo, sono stati utilizzati tre interruttori a scorrimento per gestire gli input del dispositivo FULL ADDER. 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:

Circuito Elettrico di un FULL ADDER

TINKERCAD:



E’ facilmente verificabile il comportamento del dispositivo FULL ADDER modificando la posizione dei tre differenti interruttori.

Codice:

Non serve codice.




ARDWARE #8 Realizzare un HALF ADDER a Porte Logiche AND e XOR

Obiettivo: Realizzare un Half Adder utilizzando le porte logiche AND e XOR.

Pre-Requisiti:


ARDWARE #6 Porta Logica XOR 74HC86


Componenti elettronici:

  • Arduino
  • 2 led (un led rosso per la somma ed un led verde per il riporto)
  • 2 interruttori a scorrimento (slideswitch utilizzati per gestire i due input)
  • 2 resistenze (100 Ohm) per non fare bruciare i LED
  • 1 circuito integrato 74HC86 (TTL serie)
  • 1 circuito integrato 74HC86 (TTL serie)

TeoriaObiettivo di questa esperienza è realizzare un “Half Adder” utilizzando porte logiche AND (74HC08) e porte logiche XOR (74HC86). Nello specifico, Arduino è utilizzato come semplice generatore di tensione.

Un Half Adder è un sommatore binario realizzato attraverso la logica booleana. Nel caso specifico, questo sommatore presenta due ingressi: A e B e due uscite: S (la somma di A e B) e C (il riporto della somma di A e B). Le principali operazioni logiche che implementano questo dispositivo sono 2: AND (prodotto logico) e XOR. Viene in seguito illustrato nel dettaglio il funzionamento di un Half Adder.

HALF ADDER – TABELLA DI VERITA’

La tabella di verità di un HALF ADDER può essere facilmente ottenuta sommando i due ingressi A e B. Ovviamente, poiché la somma di 1+1 in binario da come risultato 10 è importante considerare che tale dispositivo prevederà la presenza di due uscite: carry (riporto) e sum (somma senza riporto). Partendo da queste importanti considerazioni, è riportata in seguito la tabella di verità di un HALF ADDER a due ingressi:

A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

HALF ADDER – SIMBOLO CIRCUITALE

Da un punto di vista grafico il dispositivo HALF ADDER è rappresentato mediante il seguente simbolo:

Half Adder – Simbolo circuitale

HALF ADDER – SOMMA DI PRODOTTI

Osservando la tabella di verità si può facilmente comprendere come la colonna del carry è facilmente ottenibile mediante una semplice porta logica AND. Differentemente la colonna della somma è ottenuta sfruttando una porta logica XOR.

Nello specifico

Nell’esempio trattato in questo articolo, sono stati utilizzati due interruttori a scorrimento per gestire gli input del dispositivo half adder. 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:

TINKERCAD:



E’ facilmente verificabile il comportamento del dispositivo HALF ADDER modificando la posizione dei due differenti interruttori.

Codice:

Non serve codice.




ARDWARE #7 Realizzare un HALF ADDER a Porte Logiche AND, OR e NOT

Obiettivo: Realizzare un Half Adder utilizzando le porte logiche AND, OR e NOT.

Componenti elettronici:

  • Arduino
  • 2 led (un led rosso per la somma ed un led verde per il riporto)
  • 2 interruttori a scorrimento (slideswitch utilizzati per gestire i due input)
  • 2 resistenze (100 Ohm) per non fare bruciare i LED
  • 1 circuito integrato 74HC32 (TTL serie)
  • 1 circuito integrato 74HC08 (TTL serie)
  • 1 circuito integrato 74HC04 (TTL serie)

TeoriaObiettivo di questa esperienza è realizzare un “Half Adder” utilizzando porte logiche AND (74HC08), porte logiche OR (74HC32) e porte logiche NOT (74HC04). Nello specifico, Arduino è utilizzato come semplice generatore di tensione.

Un Half Adder è un sommatore binario realizzato attraverso la logica booleana. Nel caso specifico, questo sommatore presenta due ingressi: A e B e due uscite S (la somma di A e B) e C (il riporto della somma di A e B). Le principali operazioni logiche che implementano questo dispositivo sono 3: AND (prodotto logico), OR (somma logica), NOT (complemento). Viene in seguito illustrato nel dettaglio il funzionamento di un Half Adder.

HALF ADDER – TABELLA DI VERITA’

La tabella di verità di un HALF ADDER può essere facilmente ottenuta sommando i due ingressi A e B. Ovviamente, poiché la somma di 1+1 in binario da come risultato 10 è importante considerare che tale dispositivo prevederà la presenza di due uscite: carry (riporto) e sum (somma senza riporto). Partendo da queste importanti considerazioni, è riportata in seguito la tabella di verità di un HALF ADDER a due ingressi:

A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

HALF ADDER – SIMBOLO CIRCUITALE

Da un punto di vista grafico il dispositivo HALF ADDER è rappresentato mediante il seguente simbolo:

Half Adder – Simbolo circuitale

HALF ADDER – SOMMA DI PRODOTTI

Utilizzando la tecnica della Somma di Prodotti (SOP) è possibile sintetizzare un HALF ADDER mediante porte logiche AND, OR e NOT.

Nello specifico la colonna del carry è facilmente ottenibile mediante una semplice porta logica AND. Differentemente la colonna della somma senza riporto è ottenuta sfruttando porte logiche NOT, AND e OR.

Half Adder – Schema circuitale

Nell’esempio trattato in questo articolo, sono stati utilizzati due interruttori a scorrimento per gestire gli input del dispositivo half adder. 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:

E’ facilmente verificabile il comportamento del dispositivo HALF ADDER modificando la posizione dei due differenti interruttori.

Codice:

Non serve codice.




ARDWARE #6 Porta Logica XOR 74HC86

Obiettivo: Utilizzare la porta logica XOR (74HC86)

Componenti elettronici:

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

TeoriaObiettivo di questa esperienza è imparare ad utilizzare una porta logica XOR (74HC86) 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). Tuttavia esistono anche altre porte logiche minori che trovano applicazione in alcuni campi dell’elettronica. Queste porte sono NAND, NOR, XOR. In seguito viene illustrato nel dettaglio il funzionamento di una porta logica XOR.

XOR – TABELLA DI VERITA’

L’operazione XOR restituisce come valore 1 solo se gli input hanno un valore tra loro differente. Tale operazione è anche detta somma senza riporto. In seguito è riportata la tabella di verità dell’operatore XOR nel caso di due entrate:

A B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

XOR – SIMBOLO CIRCUITALE

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

XOR Simbolo circuitale

OR – CIRCUITO INTEGRATO (74HC32)

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 74HC86 utilizzato per realizzare l’operazione logica XOR.

Questo circuito integrato permette di utilizzare 4 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-2, 4-5, 10-9, e 12-13 rappresentano gli input delle porte logiche, mentre i pin 3, 6, 8, 11 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:

E’ facilmente verificabile il comportamento della porta logica XOR modificando la posizione dei due differenti interruttori.

Tinkercad:



Codice:

Non serve codice.

Osservazioni:

  1. Prova a realizzare reti combinatorie con più porte logiche XOR



ARDWARE #5 Porta Logica OR 74HC32

Obiettivo: Utilizzare la porta logica OR (74HC32)

Componenti elettronici:

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

TeoriaObiettivo di questa esperienza è imparare ad utilizzare una porta logica OR (74HC32) 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 AND.

OR – TABELLA DI VERITA’

L’operazione OR restituisce come valore 1 se almeno uno degli ingressi ha valore 1, mentre restituisce 0 solo nel caso in cui entrami gli input siano 0. 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

OR – SIMBOLO CIRCUITALE

Da un punto di vista grafico la porta OR è rappresentata mediante il seguente simbolo (dove A e B rappresentano gli ingressi e Q l’uscita):

Simbolo circuitale porta logica OR

OR – CIRCUITO INTEGRATO (74HC32)

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 74HC32 utilizzato per realizzare l’operazione logica OR.

Questo circuito integrato permette di utilizzare 4 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-2, 4-5, 10-9, e 12-13 rappresentano gli input delle porte logiche, mentre i pin 3, 6, 8, 11 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:

E’ facilmente verificabile il comportamento della porta logica OR modificando la posizione dei due differenti interruttori.

Tinkercad:



Codice:

Non serve codice.

Osservazioni:

  1. Prova a realizzare reti combinatorie con più porte logiche OR