Real Time Clock per Arduino

Obiettivo: Scrivere e poi leggere l’ora e la data da una scheda RTC Real Time Clock.



Componenti elettronici:

  • Arduino UNO
  • 1 TinyRTC con chip DS1307 (link1link2)

TeoriaAlla base di questa esercitazione c’è il modulo TinyRTC con chip DS1307 ed EEPROM: 24C32 32K I2C con interfaccia I2C.

Caratteristiche Hardware

  • Chip RTC: DS1307
  • Memoria EEPROM: 24C32 32K I2C
  • Comunicazione: I2C (possibilità di collegare altri dispositivi I2C in cascata)
  • Batteria di backup supportata (NON inclusa): LIR2032
  • Ciclo di funzionamento del modulo (a piena carica): 1 anno
  • Dimensioni: 28 x 28 x 9mm
  • Peso: 4g

Se avete bisogno nei vostri progetti di un sistema per la
gestione di data e orario questa scheda è quello che fa per voi.

Per utilizzare tale scheda viene utilizzata la libreria RTClib.h

Tramite tale libreria è possibile settare nella funzione di setup la data e l’ora personalizzata (riga codice n.25), oppure quella di compilazione (riga codice n.22) , la prima volta che si carica il codice in Arduino, in modo tale che la scheda TinyRTC si configuri con un orario e data opportuni, poi si deve ricaricare lo stesso sketch commentando la riga di codice (n.22 o n.25).

Da questo momento in poi Arduino sarà in grado di utilizzare
un orologio real time in grado di gestire ore, minuti, secondi, anni, mesi e
giorni!

Collegamento Circuitale:

Collegamento Circuitale

Codice






Leggere informazioni dal GPS BN-880 o uBlox M8N

Obiettivo:

Leggere tutte le informazioni provenienti dal GPS BN-880 utilizzando la libreria TinyGPS++

Video:



Componenti elettronici:

Teoria:

Alla base di questa esercitazione c’è il modulo GPS Baitian BN-880, ma andrebbe benissimo anche un modulo uBlox NEO-7M o M8N o equivalenti.

Il modulo in oggetto oltre ad avere integrato il GPS,
oggetto dell’esercitazione, ha anche integrato una bussola (compass) HMC5883l comunicante
tramite il bus/protocollo I2C.

Ecco alcune caratteristiche:

  • Inexpensive,
    light, Dual Mode GPS and GPS/Compass using UBLOX M8N module
  • Receiving
    Format: GPS, GLONASS, Galileo, BeiDou, QZSS and SBAS
  • Frequency:
    GPS L1,GLONASS L1,BeiDou B1,SBAS L1,Galileo E1
  • Channels: 72
  • Data Protocol: NMEA-0183 or UBX, Default
    NMEA-0183
  • Single GNSS: 1Hz-18Hz
  • Concurrent GNSS: 1Hz-10Hz
  • Compass IC: HMC5883L

Il sistema GPS (Global Positioning System):

GPS sta per Global Positioning System cioè un Sistema di Posizionamento Globale, la cui funzione primaria è quella di determinare con precisione la posizione sul pianeta Terra di un ricevitore (come ad esempio uno smartphone o un apparecchio dedicato). Il ricevitore GPS riceve continuamente segnali da lontani satelliti in orbita attorno alla Terra. Attorno alla Terra, a circa 20.200 km di altitudine, orbitano 31 satelliti del sistema GPS. Ogni satellite ha al suo interno un precisissimo orologio atomico. Ogni satellite invia continuamente un segnale radio contenente la sua posizione, e l’orario di trasmissione del segnale. Il ricevitore GPS confronta questi segnali, e tramite alcune equazioni riesce a stabilire la sua posizione.

Il pallino rosso è il ricevitore GPS. Alle ore 12:00 tutti i
satelliti GPS inviano un segnale che dice “io mi trovo nella posizione XYZ, e
sono le 12:00”. Poiché i satelliti hanno distanze diverse dal ricevitore, il
segnale “io mi trovo nella posizione XYZ, e sono le 12:00” arriva al ricevitore
in momenti diversi: quello del satellite 4 arriva per primo; poi quello del
satellite 2; poi 3; e poi 1. Sapendo quanto ci ha messo il segnale ad arrivare,
e quindi la distanza fra il ricevitore e i vari satelliti, il ricevitore GPS,
con una relativamente semplice triangolazione, riesce a stimare la propria
posizione sul pianeta Terra.

Che cosa trasmette il modulo GPS:

Il modulo GPS trasmette tramite Seriale TTL (0-5 Volt) delle
“sentenze” tramite il protocollo NMEA0183.

NMEA 0183 (o più comunemente NMEA) è uno standard di comunicazione di dati utilizzato soprattutto in nautica e nella comunicazione di dati satellitari GPS. L’ente che gestisce e sviluppa il protocollo è la National Marine Electronics Association. Questo protocollo si basa sul principio che la fonte, detta talker, può soltanto inviare i dati (sentences) e la ricevente, detta listener, può soltanto riceverli.

Ad esempio la seguente sentenza $GGA trasmette tantissime
informazioni oltre alla Latitudine e Longitudine:

Tramite
la libreria TinyGPS++ è possibile intercettare tutti i tipi di sentenze GPS e
inoltre nell’ultima versione anche di elaborare le sentenze particolari, ad
esempio prelevate da altre fonti NMEA0183.

Schema Elettronico (Fritzing):

Codice:






Utilizzare e Creare una Libreria per il Sensore ad Ultrasuoni

Obiettivo: Utilizzare e creare una libreria (file header e cpp) per un Sensore a Ultrasuoni (HC-SR04) utilizzato per misurare la distanza.

Puoi scaricare i file di libreria cliccando nel seguente link: http://www.arduinofacile.it/wp-content/uploads/2020/10/UltrasonicSensor.zip
I file scaricati devono essere inseriti all’interno della cartella di progetto insieme al file .ino

Componenti elettronici:

  • Arduino UNO
  • Breadboard
  • 1 Sensore Ultrasuoni (e.g., HC-SR04)

Pre-requisiti:


Il Sensore a Ultrasuoni


Teoriala realizzazione di funzioni di libreria permette di facilitare l’operazione di riutilizzo del codice rendendo più veloce e più rapido lo sviluppo. Nel caso specifico la funzione di libreria implementata sarà costituta da un file header (.h) e da un file sorgente (.cpp).

Un file header è  un file di testo che contiene i prototipi dei metodi (funzioni) definite nel relativo file sorgente. Nel caso in questione il file header contiene anche la dichiarazione della classe “UltrasonicSensor” utilizzata per modellare il sensore ad ultrasuoni.
Tale classe sarà caratterizzata da 2 attributi:

  • int pinEcho: il pin di echo
  • int pinTrigger: il pin di trigger

e da 4 metodi:

  • void SetPinEcho (int pinEcho): metodo utilizzato per settare il pin di echo
  • void SetPinTrigger(int pinTrigger): metodo utilizzato per settare il pin di trigger:
  • long GetDistance(): metodo utilizzato per effettuare la misura di distanza (restituisce un valore di tipo long)
  • long GetAverageDistance(int numIteration): metodo utilizzato per effettuare la misura di distanza media su un numero dato di misure (restituisce un valore di tipo long)

Nel file sorgente viene invece riportata l’implementazione dei prototipi delle funzioni dichiarate nel file header.

Collegamento Circuitale:

Collegamento Circuitale

Codice:

Vengono in seguito riportate le tre porzioni di codice utilizzate per creare la funzione di libreria relativa al sensore ad ultrasuoni HC-SR04.

  • File Header: contiene la definizione della classe con i propri attributi (i.e., pinEcho e pinTrigger) ed i prototipi dei relativi metodi.



  • File Sorgente: contiene le implementazioni dei metodi riportati nel file header.



  • File Arduino: Utilizzato per fornire un esempio di come utilizzare la libreria per la gestione del sensore ad ultrasuoni.



Se tutti i file sono correttamente posizionati sullo stesso livello all’interno della cartella di progetto, due nuove tab compariranno nell’ambiente di sviluppo utilizzato per programmare Arduino. Attraverso queste tab sarà possibile visionare e modificare il file sorgente (.cpp) ed il file header (.h)




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.




App Inventor – Emoticon

Obiettivo: Realizzazione di una applicazione Android per riprodurre delle emoticon attraverso la pressione di pulsanti

Componenti:

TeoriaLa realizzazione di applicazioni Android richiede la conoscenza di software specifici (Android Studio) e complessi linguaggi di programmazione (Java). Tuttavia, queste competenze non sempre sono possedute dagli studenti e dalle persone che vogliono avvicinarsi alla programmazione per la prima volta. A tale scopo, il MIT di Boston ha sviluppato un tool che permette di creare applicazioni Android in modo grafico e semplice. Questo tool, denominato AppInventor, è accessibile a tutti attraverso il seguente portale web:

https://appinventor.mit.edu

Creazione della app (DESIGNER):

A seguire viene riportata una guida passo passo per la realizzazione della applicazione in questione. Prima di iniziare è opportuno scaricare i file necessari nella sezione “Componenti

  • Creazione di un nuovo progetto: attraverso il menu project creare un nuovo progetto cliccando su start new project. Denominare il progetto: Emoticon.

Creazione di un nuovo progetto 1/2

Creazione di un nuovo progetto 2/2

  • Inserimento degli elementi principali dell’applicativo: semplicemente trascinando gli elementi dalla palette (menu a sinistra) è possibile inserire i seguenti elementi: 2 Bottoni (il pulsante si trova in Palette/UserInterface) ed una immagine (si trova in Palette/UserInterface).

Inserimento degli elementi di layout

  • Inserire il file di sfondo (background): Per inserire il file di sfondo cliccare su screen1 nel menu components, ed in seguito cliccare sulla scritta background nel menu properties. Infine, uplodare il file di sfondo (EMOSfondo.png).

Inserire l’immagine di sfondo

  • Centrare i pulsanti: Per centrare i pulsanti, cliccare su screen1 nel menu componenti ed in seguito settare la proprietà center negli allineamenti verticali ed orizzontali attraverso il menu properties.

Centrare i pulsanti

  • Cambiare il testo dei pulsanti: Per cambiare il testo di un pulsante, cliccare su Button1 nel menu componenti ed in seguito cliccare su text e modificare il testo di riferimento.

Cambiare il testo di un pulsante

Cambiare il testo di un pulsante

  • Inserire le immagini contenti le emoticon: Per associare delle immagini ad un elemento è necessario innanzitutto caricare i file di sfondo. Pertanto selezionare image1 nella schermata componenti ed in seguito premere su Picture nel menu di proprietà. Caricare infine i due file associati (EMOFelice.jpeg, EMOTriste.jpeg)

Sviluppo dell’algoritmo (BLOCKS):

Terminata la creazione dell’interfaccia grafica è opportuno realizzare il codice associato all’applicazione. Per fare questo, cliccare in alto a destra sul pulsante BLOCKS.

  • Associare un evento al pulsante: Per cambiare uno sfondo di una immagine quando viene premuto un pulsante è opportuno associare l’opportuno ascoltatore. Pertanto cliccare su button1 ed in seguito trascinare nella schermata dei blocchi l’evento: “When Button1 Click do”. Eseguire la medesima operazione anche con il pulsante 2.

  • Modificare l’immagine: Per modificare il file associato ad una immagine selezionare il metodo set image Picture ed indicare il nome corretto del file nel campo stringa.

Download dell’applicazione:

Per scaricare l’applicativo è necessario avere un cellulare Android con relativo lettore di QRCode. Pertanto, terminato lo sviluppo cliccare nel menu build -> App (provide QR code for APK)




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.




Come Installare una Libreria (IRremote Library)

Obiettivo: Installare una libreria per la gestione del telecomando ad infrarossi.

Teoria:

Per utilizzare con Arduino alcuni componenti elettronici particolarmente complessi, potrebbe essere necessario utilizzare una libreria di funzioni scritta dal produttore del dispositivo. Le librerie permettono di utilizzare il dispositivo attraverso una serie di funzioni semplificate che garantisco all’utilizzatore un elevata facilità di utilizzo. Alcune librerie sono native nell’ambiente Arduino (eg. SERVO, EEPROM, WIRE) altre devono essere scaricate ed opportunamente installate seguendo una specifica procedura.

A seguire sono riportate le istruzioni per installare la libreria IRRemote necessaria per utilizzare il telecomando ad infrarossi:

  • Collegarsi al sito http://z3t0.github.io/Arduino-IRremote e scaricare lo zip relativo alla libreria.
  • Per installare la libreria aprire l’editor di Arduino e andare in Sketch > Includi Libreria > Aggiungi Libreria da File ZIP, e selezionare il file IRremote ZIP che è stato scaricato dal link precedentemente riportato. Terminata la procedura sarà possibile aggiungere la libreria direttamente dalla sezione includi libreria (vedi le immagini riportate in seguito).

Procedura per includere la libreria IRremote – Step 1

Procedura per includere la libreria IRremote – Step 2

Procedura per includere la libreria IRremote – Step 3




Password di accesso con KeyPad 4×4 e Arduino – (Tinkercad)

Obiettivo: Utilizzo di un keypad 4×4 per l’accensione di un led mediante una relativa password di accesso (lunga 4 caratteri). 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 keypad è un dispositivo elettronico costituito da un insieme di pulsanti disposti in un blocco o “pad” che riportano cifre, simboli o lettere alfabetiche. I keypad sono prevalentemente utilizzati nei dispositivi elettronici che richiedono principalmente input numerici come calcolatrici, telefoni a pulsante, distributori automatici, bancomat, serrature a combinazione e serrature digitali. .
Il keypad presente nel software di simulazione Tinkercad è un keypad 4×4 che presenta 16 tasti di cui 10 numerici (0,1,2,3,4,5,6,7,8,9) e 6 tasti alfanumerici (A,B,C,D,*,#). A seguire vengono riportate alcune immagini e tabelle utili per comprendere il funzionamento del keypad da un punto di vista elettronico.

Pin Number Description
ROW
1 PIN1 is taken out from 1st  ROW
2 PIN2 is taken out from 2nd  ROW
3 PIN3 is taken out from 3rd  ROW
4 PIN4 is taken out from 4th  ROW
COLUMN
1 PIN1 is taken out from 1st  COLUMN
2 PIN2 is taken out from 2nd  COLUMN
3 PIN3 is taken out from 3rd  COLUMN
4 PIN4 is taken out from 4th  COLUMN

Come riportato in tabella, un Keypad 4X4 è dotato di otto terminali dove quattro sono le righe della matrice e quattro invece le colonne. Attraverso questi 8 terminali è possibile comprendere quale tasto è stato premuto.
La struttura interna del keypad è riportata nella seguente figura:

Struttura interna del dispositivo

Nel caso in questione il keypad è utilizzato per accendere un led per 1 secondo quando una password lunga 4 caratteri è inserita nel modo corretto.

Collegamento Circuitale:

Collegamento Circuitale

Codice:

La gestione del keypad è facilitata grazie all’utilizzo della libreria <keypad.h>. Mentre la libreria è presente di default nell’applicativo Tinkercad, nel caso in cui il lettore voglia realizzare questo progetto con Arduino fisicamente è opportuno aggiungere la libreria manualmente al progetto.



Personalizzazioni:

E’ possibile aggiungere un display ed utilizzare un relè per implementare il controllo di una cassaforte.




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.