Corso base su arduino Seconda parte
|
|
- Giulia Alberti
- 6 anni fa
- Visualizzazioni
Transcript
1 Corso base su arduino Seconda parte Gli ingressi digitali Gli stessi piedini utilizzati come uscite digitali possono essere impiegati come ingressi digitali. I livelli logici sono ancora di tipo TTL (livello basso = 0V, livello alto = 5V). Cosa si può collegare a tali ingressi? Il caso più frequente consiste nella lettura dello stato di uno o più pulsanti, ma trovano applicazione anche nella lettura di un fotoaccoppiatore, di un sensore ad effetto Hall (di tipo ON-OFF), di un tastierino numerico, di un segnale impulsivo ad onda rettangolare, dello stato di un sensore PIR, di sensori con uscita digitale, ecc In questa sede tratterò l esempio classico della gestione di un singolo pulsante normalmente aperto. Innanzitutto, come si collega un pulsante alla scheda arduino? Ci sono due modalità possibili: attivo alto quando premo il pulsante mando alla scheda un livello alto, quando lo rilascio alla scheda arriva un livello basso; attivo basso il contrario del caso precedente, premo il pulsante e mando un livello basso. Gli schemi di collegamento sono riportati nella figura seguente Nella parte superiore vediamo un pulsante attivo basso, nelle posizioni aperto (sinistra) e chiuso (destra). Nella parte inferiore notiamo lo schema di collegamento di un pulsante attivo alto. La freccia centrale di tutte e 4 le immagini va collegata ad un piedino di ingresso digitale di arduino, la 1
2 freccia superiore va al terminale 5V e la massa al terminale GND. Il valore consigliato delle resistenze è di 10 KΩ. Nota: le porte di arduino hanno già al loro interno delle resistenze di pullup che si possono attivare nel modo seguente: nella funzione setup() si definisce il piedino come ingresso con l istruzione pinmode(numero_del_piedino, INPUT_PULLUP); Per definire un piedino come ingresso digitale, è necessario inserire nella funzione setup() l istruzione pinmode(numero_del_piedino, INPUT); dove numero_del_piedino può essere una costante da 0 a 13 o una variabile con lo stesso campo di valori. Una volta definito un piedino come ingresso, per leggere lo stato dell ingresso digitale si utilizza la funzione digitalread(numero_del_piedino) che può ritornare solo due valori: HIGH (è stato rilevato un livello alto) oppure LOW (è stato rilevato un livello basso). Per chiarire quanto esposto, vediamo come scrivere un programma che legge lo stato di un pulsante attivo alto e, se questo è premuto, accende il LED L della scheda arduino Uno. Supponiamo di collegare il pulsante al piedino 7 come nello schema di cablaggio seguente: Il programma che accende il LED L può essere: 2
3 #define LED 13 #define PULSANTE 7 LED sul piedino 13 (interno alla scheda) Piedino a cui è collegato il pulsante int val = 0; variabile dove salvo lo stato del pulsante void setup(){ pinmode(led, OUTPUT); Piedino 13 come uscita digitale pinmode(pulsante, INPUT); Piedino 7 come ingresso digitale void loop(){ per sempre val = digitalread(pulsante); salvo in val lo stato del pulsante if (val == HIGH) se lo stato del pulsante è alto digitalwrite(led, HIGH); accendo il LED else digitalwrite(led, LOW); altrimenti spengo il LED Modi alternativi per dichiarare LED e PULSANTE: const int LED = 13; const int PULSANTE = 7; oppure: int LED = 13; int PULSANTE = 7; Programma in forma più compatta: #define LED 13 #define PULSANTE 7 LED sul piedino 13 (interno alla scheda) Piedino a cui è collegato il pulsante void setup(){ pinmode(led, OUTPUT); Piedino 13 come uscita digitale pinmode(pulsante, INPUT); Piedino 7 come ingresso digitale void loop(){ per sempre if (digitalread(pulsante) == HIGH) se lo stato del pulsante è alto digitalwrite(led, HIGH); accendo il LED else digitalwrite(led, LOW); altrimenti spengo il LED Proponiamoci ora di modificare il programma in questo modo: vogliamo che ad ogni pressione del pulsante il LED cambi stato. Premo una volta e il LED si accende, premo un altra volta e il LED si spegne, e così via Non dovrebbe essere così difficile, basta introdurre un ulteriore variabile che memorizzi lo stato del pulsante in questo modo: ogni volta che premo il pulsante la variabile cambia valore da 0 a 1 e viceversa. Poi, se questa variabile vale 0, spengo il LED, se vale 1, lo accendo. 3
4 #define LED 13 #define PULSANTE 7 LED sul piedino 13 (interno alla scheda) Piedino a cui è collegato il pulsante int val = 0; variabile dove memorizzo il livello logico letto dal pulsante variabile dove salvo lo stato del pulsante int stato = 0; void setup(){ pinmode(led, OUTPUT); Piedino 13 come uscita digitale pinmode(pulsante, INPUT); Piedino 7 come ingresso digitale void loop(){ per sempre val = digitalread(pulsante); leggo il livello logico del pulsante if (val == HIGH) se il pulsante è premuto stato = 1 stato; cambio stato if (stato == 1) digitalwrite(led, HIGH); accendo il LED else digitalwrite(led, LOW); altrimenti spengo il LED Il programma appena visto non funziona nel modo previsto ed il comportamento del LED è imprevedibile. Ciò è dovuto, come molti già sapranno, al fatto che le istruzioni contenute nella funzione loop() vengono eseguite in tempi molto più rapidi rispetto ai normali riflessi di una persona e al rimbalzo dei contatti del pulsante Ogni volta che premo o rilascio il pulsante genero un treno di impulsi che complessivamente ha una durata di qualche millisecondo. L immagine, trovata in rete ( si riferisce ad un pulsante attivo alto, ma il fenomeno è lo stesso nel caso di un pulsante attivo basso. Esistono molte tecniche per rimediare a questo problema, sia hardware (uso di reti RC, porte logiche trigger di schmitt) che software. Esiste addirittura una libreria di arduino, denominata Bounce (rimbalzo). Vediamo allora una possibile soluzione di tipo software. Introdurremo una nuova variabile (vecchio_valore) dove verrà memorizzato il valore letto dal pulsante in precedenza e aggiungeremo un po di ritardo nel punto opportuno del programma. #define LED 13 #define PULSANTE 7 LED sul piedino 13 (interno alla scheda) Piedino a cui è collegato il pulsante int val = 0; variabile dove memorizzo il livello logico letto dal pulsante int vecchio_valore = 0; int stato = 0; variabile dove salvo lo stato del pulsante void setup(){ 4
5 pinmode(led, OUTPUT); Piedino 13 come uscita digitale pinmode(pulsante, INPUT); Piedino 7 come ingresso digitale void loop(){ per sempre val = digitalread(pulsante); leggo il livello logico del pulsante if ((val == HIGH) && (vecchio_valore == LOW)) { transizione avvenuta stato = 1 stato; cambio stato delay(100); attendi 100 millisecondi (sperimentale) vecchio_valore = val; memorizzo l ultimo valore letto dal pulsante if (stato == 1) digitalwrite(led, HIGH); accendo il LED else digitalwrite(led, LOW); altrimenti spengo il LED Il monitor seriale di arduino In precedenza abbiamo visto che cos è e come si attiva dalla IDE il monitor seriale. Ecco come si presenta: Sul bordo superiore della finestra viene riportata la porta seriale a cui è collegato arduino (la schermata è relativa ad un sistema operativo linux, su Windows viene riportata la porta COMx). Appena sotto c è un area di testo in cui si possono inserire dei caratteri da inviare alla scheda arduino qualora si premesse il pulsante invia. Proseguendo verso il basso, troviamo un area più ampia dove appariranno i caratteri inviati da arduino verso il PC. Sul bordo inferiore, la zona più importante è costituita dal menù a scomparsa posto sul lato destro e recante la scritta 9600 baud. Quest ultima rappresenta la velocità (baud = bit/secondo, perché la comunicazione è a soli due livelli 0 e 1) con cui il PC e la scheda arduino si scambiano i dati. A cosa può servire? 5
6 Rappresenta l equivalente di printf / scanf o cin /cout, pertanto può servire per visualizzare stringhe di caratteri, valori di variabili oppure inviare caratteri che il programma residente su arduino potrà interpretare come comandi. Il canale attraverso cui viaggiano i dati è costituito dalla porta seriale presente nel microcontrollore che comunica col PC tramite il cavo USB. Come si fa a stampare qualcosa? Come prima cosa, occorre inserire la seguente chiamata di funzione all interno della funzione setup(): Serial.begin(9600); Questa ha lo scopo di inizializzare il serial monitor e impostare la velocità di comunicazione (in questo caso a 9600 baud). La velocità deve essere uguale a quella impostata nella finestra del serial monitor. Per i C++isti: si fa riferimento ad un istanza della classe Serial e begin rappresenta l invocazione di un metodo di tale classe. Poi, quando vogliamo visualizzare qualcosa sul serial monitor, all interno del nostro programma inseriamo la chiamata alla funzione Serial.print oppure alla funzione Serial.println (si scrive print elle enne). Ad esempio, se vogliamo stampare una stringa costante di caratteri, possiamo scrivere: Serial.print( Maramao ); Serial.println( Cacao ); viene visualizzato Maramao viene visualizzato Cacao e va a capo della riga successiva Se vogliamo stampare il valore di una variabile: int cubetti_di_porfido = 17; Serial.print(cubetti_di porfido); viene visualizzato 17 La differenza tra Serial.print e Serial.println è che la seconda, dopo aver stampato, va a capo della riga successiva. Queste due funzioni (print e println) consentono di specificare un secondo parametro opzionale che rappresenta il formato e può essere: BIN (base binaria), DEC (base 10), OCT (base 8), HEX (base 16). Esempi: Serial.print(78, BIN) visualizza Serial.print(78, OCT) visualizza 116 Serial.print(78, DEC) visualizza 78 Serial.print(78, HEX) visualizza 4E Nel caso di numeri o variabili float, il secondo parametro è una cifra che rappresenta il numero di decimali da visualizzare (per arrotondamento). Esempi: Serial.println( , 0) visualizza 1 Serial.println( , 2) visualizza 1.23 Serial.println( , 4) visualizza Notare l ultima cifra! Vediamo un esempio di programma che fa uso di queste funzioni per visualizzare un conteggio da 0 in poi. 6
7 int number = 0; il numero di partenza void setup() { Serial.begin(9600); imposto la velocità di comunicazione in baud void loop(){ Serial.print( Numero = ); Serial.println(number); delay(1000); number++; Scrive Numero = scrive il valore della variabile e va a capo pausa di 1 secondo incrementa la variabile ripete dall inizio di loop() Dal monitor seriale è possibile anche inviare caratteri al programma che risiede nella scheda. In base al carattere inviato, si potranno poi prendere diverse decisioni. Il singolo carattere da inviare va scritto sulla riga di testo superiore, a sinistra del pulsante invia, che va poi premuto. Cosa succede se scrivo una stringa di più caratteri? Viene letto solo il primo carattere. C è modo di inviare una stringa di più caratteri? Sì, mediante Serial.readString(), ma esula dal presente corso. Nel programma su arduino, prima di poter leggere il carattere inviato, occorre accertarsi che la porta seriale abbia ricevuto dei caratteri e a tale scopo si invoca la funzione Serial.available() che ritorna il numero di caratteri presenti nel buffer della seriale. Una volta stabilito che la seriale ha ricevuto dei caratteri, la funzione che ci permette di leggere il primo carattere inviato è Serial.read(). Per chiarire quanto esposto, vediamo un esempio di programma che legge un carattere dal monitor seriale, se il carattere è 1, accende il LED sul piedino 13 (L) e visualizza sul monitor seriale la scritta LED acceso, se il carattere è 2, spegne il LED L e visualizza sul monitor seriale la scritta LED spento. Un carattere diverso da 1 o 2 comporterà la visualizzazione della scritta Comando ignoto: seguita dal codice ASCII del carattere stesso. int LED = 13; il piedino dove è collegato il LED void setup() { Serial.begin(9600); imposto la velocità di comunicazione in baud pinmode(led, OUTPUT); piedino 13 impostato come uscita digitale void loop(){ if (Serial.available()>0) { se la seriale ha ricevuto caratteri int comando = Serial.read(); leggo primo carattere if (comando == 1 ) { se è stato ricevuto il carattere 1 digitalwrite(led, HIGH); accende il LED L Serial.println( LED acceso ); stampa stringa e va a capo else if (comando == 2 ) { è stato ricevuto il car. 2 digitalwrite(led, LOW); spegne il LED Serial.println( LED spento ); else { nessuno dei due Serial.print( Comando ignoto: ); Serial.println(comando); stampa carattere non riconosciuto 7
8 fine if (Serial.available().... fine loop() Il display alfanumerico LCD Il monitor seriale risulta molto comodo nella fase di stesura del programma, ma richiede la presenza del PC collegato alla scheda arduino tramite cavo USB. Nelle applicazioni comuni della scheda arduino, il PC è inutile, ingombrante e dispensioso. Come fare allora per visualizzare informazioni numeriche o testuali? Pensate ad un distributore di bevande o di merendine, ad un termostato per caldaia, alla lavatrice, ecc, le informazioni vengono visualizzate su display alfanumerici o grafici a cristalli liquidi (LCD) di piccole dimensioni. Limitandoci ai display LCD alfanumerici, i più comuni visualizzano 2 o 4 righe di 16, 20 o più caratteri e sono dotati, in gran parte, di un interfaccia standard. Normalmente, la gestione di questi display non è semplice, ma arduino dispone di una libreria di funzioni che rende tutto più facile. Prima di trattare l aspetto software però, vediamo come si interfaccia un display 16 x 2 (due righe da 16 caratteri, compatibile HD44780) dal punto di vista dei segnali elettrici. l display retroilluminati hanno normalmente 16 piedini e di solito è presente un riferimento scritto che indica qual è il primo, l ultimo, oppure entrambi. Il piedino 1 va collegato a massa (GND di arduino) e il 2 a +5 V. Il terzo piedino serve per regolare il contrasto; va collegato al cursore di un potenziometro (10 KΩ, valore non critico) i cui terminali estremi vanno a GND e +5V. Il piedino RS (register select) serve per far capire al display, tramite un livello logico alto o basso, se gli stiamo inviando un carattere oppure un comando. Va collegato ad un uscita digitale di arduino. Il piedino R/W ci permette di leggere (livello alto) oppure scrivere (livello basso) nella memoria del 8
9 display. Usualmente si inviano caratteri per poterli visualizzare, quindi questo piedino viene posto stabilmente a livello basso (collegato a GND). Il piedino E (Enable) serve per sincronizzare la scrittura di un comando o di un carattere. In pratica, si fornisce il carattere / comando ai piedini dei dati del display e si provoca una breve variazione di livello logico, di durata predefinita, su questo piedino. In questo modo, il carattere / comando viene visualizzato / eseguito. Anche questo va collegato ad un uscita digitale di arduino. I successivi 8 piedini sono quelli che ricevono il carattere / comando in forma binaria e vanno collegati anch essi alle uscite digitali di arduino. Restano altri due piedini, utilizzati per la retroilluminazione del display. Vengono trattati come un LED pertanto, il catodo (piedino 16) va posto a GND e l anodo a +5V con in serie un resistore da 330 Ω. (Alcuni display non necessitano di resistore in serie, va consultato il datasheet). Facendo i conti, per pilotare un display di questo tipo servirebbero 10 uscite digitali della scheda arduino, un po troppe! Fortunatamente, esiste una modalità di comunicazione che sfrutta solo le 4 linee dati più significative del display (da D4 a D7), riducendo il numero di uscite digitali impegnate a 6 (RS, E, D4, D5, D6, D7). Il carattere / comando viene spezzato in due gruppi di 4 bit ciascuno e inviato in due scritture successive. Volendo ridurre ulteriormente il numero di uscite impegnate, si deve ricorrere a display con interfaccia su bus i2c, che costano qualcosina di più ma comunicano mediante 2 soli piedini (clock e dati, SCL e SDA). Ecco un esempio grafico di come va effettuato il collegamento tra la scheda arduino Uno ed un display LCD: In questo esempio, che non è vincolante come vedremo, RS è collegato al piedino 12 di arduino, E al piedino 11, D4, D5, D6, D7 rispettivamente ai piedini 5, 4, 3, 2. Notate la presenza del trimmer per la regolazione del contrasto, della resistenza in serie all anodo della retroilluminazione e il segnale R/W posto a massa (display sempre in scrittura). 9
10 Gestione software del display, la libreria LiquidCrystal Gestire un display LCD alfanumerico partendo da zero non è per niente semplice. La cosa diventa praticabile se ci si appoggia all apposita libreria già presente nel software di arduino. Innanzitutto, bisogna includere la libreria con l istruzione #include <LiquidCrystal.h> attenzione alle maiuscole e minuscole! La libreria ci mette a disposizione diverse funzioni (metodi C++), ma prima bisogna dichiarare un oggetto di tipo LiquidCrystal che di solito assume il nome di lcd e indicare a quali piedini di arduino sono collegati i segnali del display. La modalità d uso più comune è la seguente: LiquidCrystal lcd(rs, enable, d4, d5, d6, d7); dove, al posto dei termini dentro alle parentesi, vanno scritti i numeri dei piedini. Esempio che coincide con lo schema di cablaggio riportato in precedenza: LiquidCrystal lcd(12,11, 5, 4, 3, 2); Possiamo anche utilizzare altri piedini digitali al posto di quelli indicati, basta cambiare il cablaggio tra display e scheda arduino. Esistono altre modalità per dichiarare il display che prevedono di includere il piedino R/W e / o tutti e 8 i segnali dati (da D0 a D7), ma quella riportata è la più usata perché spreca meno piedini. Creato l oggetto lcd, nella funzione setup() bisogna inizializzare il display e specificare il numero di colonne e di righe dello stesso: lcd.begin(16,2); Inizializzo un display che si chiama lcd, con 16 colonne e 2 righe di caratteri A questo punto, abbiamo a disposizione le seguenti funzioni (metodi): lcd.clear(); Cancella lo schermo e posiziona il cursore sul primo carattere della prima riga lcd.home(); Non cancella, posiziona solo il cursore sul primo carattere della prima riga lcd.setcursor(colonna, riga); /* posiziona il cursore su colonna e riga indicate (possono essere numeri o variabili). La numerazione parte da 0 in entrambi i casi, quindi nel display in figura le colonne vanno da 0 a 15 e le righe da 0 a 1. Le successive scritture partiranno da tale posizione.*/ lcd.print (dato); dato può essere char, byte, int, float, stringa di caratteri Esempi: lcd.print( Mammalucco ); visualizza la stringa Mammalucco a partire dalla posizione del cursore float temp = 12.1; lcd.print(temp); visualizza il valore 12.1 assegnato alla variabile temp int i = 123; lcd.print(i); visualizza il valore 123 assegnato alla variabile i lcd.print(i, BIN); visualizza , cioè il valore di i in binario 10
11 lcd.print(i,hex); visualizza 7B, cioè il valore di i in esadecimale lcd.write(dato); visualizza il carattere (uno solo) assegnato a dato lcd.cursor() ; mostra il cursore (normalmente non si vede) lcd.nocursor(); nasconde il cursore lcd.blink(); fa lampeggiare il cursore (solo il cursore, non il testo!) lcd.noblink(); cursore fisso, non lampeggiante lcd.display(); mostra il contenuto del display lcd.nodisplay(); nasconde il testo nel display, assieme si possono usare per far lampeggiare il testo presente sul display lcd.scrolldisplayleft(); sposta il testo di un carattere verso sinistra lcd.scrolldisplayright(); sposta il testo di un carattere verso destra Inserite in un ciclo possono spostare il testo di un certo numero di caratteri a sinistra o a destra. lcd.autoscroll(); ogni volta che viene scritto un carattere, sposta il testo che lo precede di un carattere verso sinistra lcd.noautoscroll(); cessa l autoscroll lcd.createchar(num,data); permette di creare fino a 8 simboli personalizzati. Vedere documentazione su internet. Quello che segue è un piccolo programma dimostrativo di alcune delle funzionalità della libreria LiquidCrystal. Programma dimostrativo delle funzionalità della libreria LiquidCrystal A. Visentini Display 16x2 HD44780 compatibile collegato: pin 1 GND, pin 2 5V, pin 3 contrasto trimmer 10k, pin 4 Register Select a pin 12 arduino pin 5 Read/Write a GND pin 6 Enable a pin 11 arduino pin 11 DB4 a pin 5 arduino pin 12 DB5 a pin 4 arduino pin 13 DB6 a pin 3 arduino pin 14 DB7 a pin 2 arduino pin 15 Backlight anodo a +5V con in serie 330 ohm pin 16 Backlight catodo a GND #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); RS, E, D4, D5, D6, D7 int i; void setup() { lcd.begin(16, 2); 11 display 16 colonne 2 righe
12 void loop() { lcd.clear(); pulisce il display lcd.print("dimostrazione"); lcd.setcursor(0,1); riga inferiore delay(500); lcd.print("della libreria"); delay(1500); lcd.clear(); lcd.print("liquidcrystal"); delay(1000); for (i = 0; i < 13; i++) { lcd.scrolldisplayleft(); delay(200); for (i = 0; i < 13; i++) { lcd.scrolldisplayright(); delay(200); for (i = 0; i < 10; i++) { lcd.nodisplay(); delay(200); lcd.display(); delay(200); lcd.clear(); lcd.print("variabile = "); for ( i = 0; i < 10; i++){ lcd.setcursor(13, 0); lcd.print(i); delay(1000); Gli esempi svolti in classe e le esperienze di laboratorio proposte agli studenti La parte teorica della gestione dei pulsanti è quella riportata all inizio di questa dispensa. Per la parte laboratoriale, propongo le seguenti esperienze: Collegare 4 LED ed un pulsante alla scheda arduino e fare in modo che ad ogni pressione del pulsante si accenda un LED in sequenza. Ad esempio, numerando i LED da 1 a 4 e partendo con tutti i LED spenti, premo il pulsante e si accende il LED 1, premo ancora e si accende il LED 2 e così via fino al LED 4, poi si ricomincia dal LED 1. Naturalmente occorre inserire nel codice la tecnica antirimbalzo. Collegare alla scheda arduino un display a 7 segmenti ed un pulsante. Ad ogni pressione del pulsante la cifra visualizzata deve incrementarsi di una unità. La cifra deve partire da 0 ed arrivare a 9, per poi ripartire da 0. Come la precedente, ma con due pulsanti; col primo incremento il conteggio fino al massimo di 9, col secondo lo decremento fino al minimo di 0. Un po come i tasti per il controllo del volume di certe autoradio o lettori mp3. Interfacciamento di un sensore PIR (sensibile al calore umano) con arduino. Quando il sensore rileva una presenza si accende un LED e resta acceso per alcuni secondi anche dopo che il soggetto si è allontanato dal sensore. 12
13 Le esperienze che si possono realizzare col display LCD sono, a questo punto del programma svolto, le seguenti: Visualizzare un conteggio. Controllare attentamente i collegamenti perché il display è delicato e non sopporta inversioni di tensione. Far lampeggiare una scritta. In seguito, dopo aver spiegato il funzionamento degli ingressi analogici e del sensore ad ultrasuoni, le possibilità d uso del display LCD si ampliano notevolmente. Materiale extra: porta seriale virtuale per arduino Abbiamo visto che la porta seriale di arduino, che fa capo ai piedini digitali 0 e 1, viene utilizzata per trasferire i programmi dal PC alla scheda e per il monitor seriale. A volte è necessario utilizzarla per interfacciare altri dispositivi seriali (moduli GPS, moduli Bluetooth, moduli mp3, ecc ); in tal caso, la procedura da seguire prevede prima di inviare il programma alla scheda e poi,tolta l alimentazione, collegare il dispositivo seriale ai piedini 0 e 1. Converrete che la tecnica risulta oltremodo scomoda. Fortunatamente, la IDE di arduino ha già al suo interno una libreria che permette di emulare una porta seriale su qualsiasi coppia di piedini digitali. Tale libreria, denominata SoftwareSerial, non raggiunge le prestazioni della seriale hardware del microcontrollore, ma è utilizzabile senza problemi fino a 9600 baud e oltre. La SoftwareSerial mette a nostra disposizione le stesse funzioni (metodi) della seriale standard, pertanto possiamo utilizzarla per inviare e ricevere caratteri, stringhe, numeri interi e float. Come si usa? Prima di tutto, bisogna includere la libreria nel nostro programma con: #include <SoftwareSerial> Poi bisogna definire una coppia di piedini da utilizzare per la ricezione e per la trasmissione dei dati, ad esempio: int rxpin = 3; int txpin = 2; A questo punto, creare un oggetto di tipo SoftwareSerial al quale possiamo attribuire un nome valido di identificatore, ad esempio: SoftwareSerial la_mia_porta_seriale(rxpin, txpin); Nella funzione setup(), inserire l inizializzazione della porta con i parametri di trasmissione: la_mia_porta_seriale.begin(9600); 9600 baud 8N1 (8bit, no parità, 1 bit di stop) Ora è possibile utilizzarla con le stesse funzioni della seriale standard, avendo cura di sostituire la parola Serial con l identificatore che abbiamo scelto. Nel nostro esempio: 13
14 la_mia_porta_seriale.print( Bella giornata ); if (la_mia_porta_seriale.available()) la_mia_porta_seriale.read(); eccetera Materiale extra: Arduino e Bluetooth In commercio sono reperibili, a costi contenuti, dei moduli che permettono ad una scheda arduino di comunicare tramite protocollo Bluetooth 2.0. A dire il vero, sono apparsi ultimamente anche moduli BLE (Bluetooth Low Energy) a basso consumo, ma il loro costo e la difficoltà di gestione li rende, al momento, poco interessanti. I moduli a cui faccio riferimento sono gli HC-05 e HC-06; il primo costa 8-9 euro (Amazon) e dispone di maggiori funzionalità (può operare sia come master che come slave, tra l altro), il secondo costa intorno agli 8 euro (Amazon, molto meno su ebay, Ali express, Banggood, ecc ) e opera solo come slave. Nella maggior parte delle applicazioni è sufficiente lo HC-06. Entrambi comunicano con arduino mediante protocollo seriale, vengono alimentati a 5 V con un assorbimento di circa 20 ma, dispongono di un LED che fa vedere se sono accoppiati con un dispositivo Bluetooth (tablet, smartphone, PC) ed hanno un range di una decina di metri. Come si interfacciano? Con 4 terminali: Vcc, GND, TX, RX (HC-05 ne possiede altri 2 che non tratterò). Attenzione: i livelli logici dei piedini RX e TX del modulo Bluetooth operano con livelli logici (0V, 3,3V). Il piedino Vcc di HC va collegato al piedino 5V di arduino, il piedino GND di HC va collegato al piedino GND di arduino, il piedino TX di HC va collegato al piedino che useremo come RX di arduino (senza problemi di interfacciamento), il piedino RX di HC va collegato al piedino che useremo come TX di arduino, interponendo un partitore di tensione formato da 2 resistenze. Dal TX di arduino colleghiamo in serie una R = 1 K al piedino RX del modulo HC e da quest ultimo, una R = 2 K verso GND (vedere schema pratico più avanti). (Trasmissione di arduino alla ricezione del modulo Bluetooth e viceversa.) Esempio di utilizzo Come esempio, proposto anche ai miei studenti, vediamo come si possono comandare 4 carichi ONOFF (io ho usato 4 LED) collegati alla scheda arduino, tramite una app residente in uno smartphone o tablet android (gli iphone, ipad non vanno bene perché limitano l uso del Bluetooth. Se sapete come fare, ditemelo). Il collegamento sarà di tipo bi-direzionale, nel senso che inviando un comando tramite app accenderemo o spegneremo uno dei LED e nella app vedremo una frase inviata da arduino che ce lo confermerà. La app utilizzata si chiama Blueterm2, ma ce ne sono a bizzeffe che fanno le stesse cose. Prima di tutto, lo schema di cablaggio: 14
15 Vediamo adesso il programma, tenendo presente quanto segue: scrivendo 1 sulla tastiera della app, accenderemo il LED sul piedino 4, premendo 2 lo spegneremo, scrivendo 3 accenderemo il LED sul piedino 5, premendo 4 lo spegneremo, e così via fino a 8. Notate che è stata utilizzata la libreria SoftwareSerial, attribuendo RX al pin 3 di arduino e TX al pin 2. Il programma non è stato ottimizzato volutamente, per renderlo più comprensibile agli studenti. Prima di poterlo usare, occorre fare il pairing tra il Bluetooth dello smartphone e quello del modulo. La password del modulo è 1234 (si può cambiare). Poi, dall interno della app, è necessario connettersi con il modulo (di serie si chiamano HC-05, HC-06, i nomi si possono modificare). /* Comanda accensione 4 LED collegati ai pin 4, 5, 6 e 7 di arduino con R in serie da 330 ohm. Su terminale Bluetooth Android connesso: 1 accende led1 2 spegne led1 3 accende led2 4 spegne led2 5 accende led3 6 spegne led3 7 accende led4 8 spegne led4 Collegare pin 3 arduino a pin TX modulo Bluetooth. 15
16 Collegare pin 2 arduino a R2=1K e altro capo di R1 a RX Bluetooth. Collegare R2=2K tra RX Bluetooth e GND. Modulo Bluetooth alimentato a 5V. Provato con HC05 e HC06 */ #include <SoftwareSerial.h> includo libreria seriale virtuale int rxpin = 3; pin 3 arduino = RX seriale virtuale int txpin = 2; pin 2 arduino = TX seriale virtuale SoftwareSerial bluetooth(rxpin, txpin); associo TX e RX alla seriale virtuale che ho chiamato bluetooth char comando; variabile char che conterrà il comando ricevuto const int Led1 = 4; piedini associati ai LED const int Led2 = 5; const int Led3 = 6; const int Led4 = 7; void setup() { Serial.begin(9600); Inizializzo monitor seriale bluetooth.begin(9600); Inizializzo seriale virtuale chiamata bluetooth pinmode(led1,output); piedini con i LED come uscite digitali pinmode(led2,output); pinmode(led3,output); pinmode(led4,output); void loop(){ while(bluetooth.available()){ finchè ci sono caratteri nel buffer comando=bluetooth.read(); leggo carattere e lo assegno a comando if(!bluetooth.available()){ elaboro l ultimo carattere ricevuto switch (comando){ case '1': se comando = 1 digitalwrite(led1, HIGH); accendo LED1 bluetooth.println("led1 ON"); invio conferma alla app Serial.println("Led1 ON"); e anche al monitor seriale delay(20); piccolo ritardo comando=' '; sostituisco comando con uno non valido break; case '2': digitalwrite(led1, LOW); bluetooth.println("led1 OFF"); Serial.println("Led1 OFF"); delay(20); comando=' '; break; case '3': digitalwrite(led2, HIGH); bluetooth.println("led2 ON"); Serial.println("Led2 ON"); delay(20); comando=' '; break; case '4': digitalwrite(led2, LOW); bluetooth.println("led2 OFF"); Serial.println("Led2 OFF"); delay(20); comando=' '; break; case '5': 16
17 digitalwrite(led3, HIGH); bluetooth.println("led3 ON"); Serial.println("Led3 ON"); delay(20); comando=' '; break; case '6': digitalwrite(led3, LOW); bluetooth.println("led3 OFF"); Serial.println("Led3 OFF"); delay(20); comando=' '; break; case '7': digitalwrite(led4, HIGH); bluetooth.println("led4 ON"); Serial.println("Led4 ON"); delay(20); comando=' '; break; case '8': digitalwrite(led4, LOW); bluetooth.println("led4 OFF"); Serial.println("Led4 OFF"); delay(20); comando=' '; fine switch fine if(!bluetooth.available()) fine loop() 17
Corso Base Arduino ed Elettronica
Corso Base Arduino ed Elettronica Quarto incontro Display LCD, Sensori avanzati Relatore: Roberto Beligni rbeligni@altratecnoloiga.com Sensore di temperatura LM35 Il sensore di temperatura LM35 Possiede
DettagliACCENDERE E SPEGNERE UN DIODO LED
ACCENDERE E SPEGNERE UN DIODO LED ACCENDERE E SPEGNERE UN DIODO LED ACCENDERE E SPEGNERE UN DIODO LED ACCENDERE E SPEGNERE UN DIODO LED CON UN PULSANTE ACCENDERE E SPEGNERE UN DIODO LED CON UN PULSANTE
DettagliCTU Presenta. Contest Automation con Arduino. IK0XBX - Francesco
CTU Presenta Contest Automation con Arduino IK0XBX - Francesco Arduino cosa è??? Arduino Uno lo standard Arduino Mega più in/out e 4 seriali Arduino Nano quello tascabile Arduino è una piattaforma open-source
DettagliInterfaccia seriale per LM709SW
Interfaccia seriale per LM709SW Caratteristiche tecniche : Alimentazione di ingresso : 6.6 VDC 12 VDC Interfaccia di collegamento : RS232 Segnalazione a led di rx e tx seriale Segnalazione a led per errori
DettagliPRIMI PASSI CON ARDUINO
PRIMI PASSI CON ARDUINO 1) Accensione e spegnimento del led presente sulla scheda Arduino. La scheda Arduino presenta, a bordo, alcuni led uno dei quali può essere controllato dal pin digitale 13; quando
DettagliFacciamo lampeggiare un led
Facciamo lampeggiare un led Passiamo a fare qualche esercizio, il più semplice per iniziare a programmare con Arduino è il canonico esercizio blink, che trovate anche negli esempi del programma. Si tratta
DettagliTermometro digitale. Ivancich Stefano
Termometro digitale Ivancich Stefano 11 Gennaio 2015 SOMMARIO Di seguito si illustra il progetto di un termometro digitale. Il progetto è molto utile per capire il funzionamento delle dinamiche interne
DettagliCORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii
CORSO ARDUINO Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM 206 Di cosa parliamo oggi... Generazione di suoni Sensoristica complessa: i protocolli di comunicazione; Shield per Arduino: circuiti avanzati
DettagliARDUINO. Colleghiamolo al PC/MAC - FUNZIONA?
ARDUINO Colleghiamolo al PC/MAC - FUNZIONA? DUE LED PREINSTALLATI led L è connesso al pin13. PWR indica se l alimentazione c è, e implicitamente se la porta USB è corretta ARDUINO Composizione del codice
DettagliCORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Stefano Panichi e Giulio Fieramosca
CORSO ARDUINO Giulio Fieramosca Stefano Panichi Corso ASEV 2015 Pulsanti e interruttori Pushbutton Momentary button Pulsante monostabile A B Switch Interruttore bistabile C A B C D C B A Pulsanti e interruttori
DettagliFar lampeggiare un led o forse un semaforo?
Far lampeggiare un led o forse un semaforo? Lezione 1 di Arduino Grazie per le slide a Giacomo Magisano, Duilio Peroni, Michele Maffucci Il circuito Un circuito è un percorso chiuso fatto da conduttore
DettagliCorso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style
Corso Arduino 2014 21 Maggio 2014 Riccardo Binetti punkerbino@gmail.com Lezione 1 - Blinking LEDs with style Riccardo Binetti Arduino 2014 Lezione 1 1 / 24 Fate domande Riccardo Binetti Arduino 2014 Lezione
DettagliCorso Base Arduino ed Elettronica
Corso Base Arduino ed Elettronica Terzo incontro Sensori e comunicazione con il computer Relatore: Roberto Beligni rbeligni@altratecnoloiga.com Il comunicazione seriale Per comunicare con la seriale abbiamo
DettagliCorso di programmazione Arduino DI MALVEZZI DAVIDE
Corso di programmazione Arduino DI MALVEZZI DAVIDE Argomenti Pin digitali e pin analogici Gestione di timer e bottoni Utilizzo della porta seriale Oggetto String Controllo di schermi LCD Utilizzo dell
DettagliRelazione progetto Arduino
Relazione progetto Arduino A cura di Francesca Cella e Andrea Marras Il progetto che abbiamo realizzato è un dispositivo in grado di leggere la temperatura, l umidità presente nell aria e di tenere il
Dettagli14^ parte : Sensore a ultrasuoni HC SR04 e Arduino. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)
14^ parte : Sensore a ultrasuoni HC SR04 e Arduino Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) La GPRS Shield Un sensore a ultrasuoni come il HC SR 04 misura il tempo impiegato dalle onde
DettagliIl protocollo RS Introduzione. 1.2 Lo Standard RS-232
1 Il protocollo RS232 1.1 Introduzione Come noto un dispositivo di interfaccia permette la comunicazione tra la struttura hardware di un calcolatore e uno o più dispositivi esterni. Uno degli obiettivi
Dettagli7^ parte : Acquisizione della temperatura con LM35 e visualizzazione su display LCD. Author: Ing. Sebastiano Giannitto (ITIS M.
7^ parte : Acquisizione della temperatura con LM35 e visualizzazione su display LCD Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) Esperienzan 6 Lo scopo del progetto è realizzare un termometro
DettagliProgetti reali con ARDUINO
Progetti reali con ARDUINO Introduzione alla scheda Arduino (parte 2ª) ver. Classe 3BN (elettronica) marzo 22 Giorgio Carpignano I.I.S. Primo LEVI - TORINO Il menù per oggi Lettura dei pulsanti Comunicazione
DettagliL'alfabeto di Arduino
L'alfabeto di Arduino Introduzione all'uso di Arduino lezione 4 Struttura della lezione Argomenti Input analogico - sensore di temperatura Uso del display LCD Il codice e le slide utilizzate sono suscettibili
DettagliEEPROM SERIALI IN I2C BUS.
Corso di BASCOM 8051 - (Capitolo 3 0 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. EEPROM SERIALI IN I2C BUS. Tra i dispositivi più utilizzati, nelle applicazioni
DettagliInternetworking V a nno
Internetworking V anno Introduzione ad Arduino Introduzione La scheda Arduino nasce nel 2005 dall idea di alcuni giovani ricercatori guidati da Massimo Banzi. Il loro obiettivo era quello di creare una
DettagliCircuiti antirimbalzo
Circuiti antirimbalzo La figura seguente mostra una semplice applicazione di un latch SR per l'accensione o lo spegnimento di un LED mediante due pulsanti "con ritorno": Le due resistenze R sono resistenze
DettagliIl Theremin con il microcontrollore
Il Theremin con il microcontrollore Possiamo costruire uno strumento simile al Theremin utilizzando un dispositivi programmabile come il microcontrollore e un sensore di distanza (ultrasuoni). A secondo
Dettagli22/09/2010. Rossato Alessio
Hardware del PC roxale@hotmail.it 1 I componenti del computer Possiamo paragonare il computer al corpo umano che, come sappiamo, è formato da un elemento centrale, il busto, al quale sono collegati gli
DettagliTipologie dei dati nell SDK di Arduino come in un vero LP ad alto livello :
Questa è una breve guida alla sintassi di base della famosa scheda a microprocessore Arduino. Maggiori informazioni potrete trovarle sul sito ufficiale a questo link Tipologie dei dati nell SDK di Arduino
DettagliDisplay numerico con i LED
Display numerico con i LED Ferrari, Porti, Zannetti 1 febbraio 2016 1 Scheda Questo progetto prevede l unione di più caratteristiche prese dai vari progetti fatti in precedenza, per riuscire a formare
DettagliApparecchiatura Kit KS.ino2.1 Preliminare 0.1c
Apparecchiatura Kit KS.ino2.1 Preliminare 0.1c Pagina 1 L apparecchiatura KS.ino2.1 è un Kit realizzato a scopo didattico, sperimentale; si presta ottimamente anche all utilizzo di automazioni casalinghe
DettagliCONTASECONDI CON DISPLAY A 7 SEGMENTI ARDUINO LIKE
SCHEDA DI LABORATORIO N 3 CONTASECONDI CON DISPLAY A 7 SEGMENTI ARDUINO LIKE Si vuole realizzare un contasecondi con display a 7 segmenti utilizzando la scheda Arduino. Materiale occorrente: N 1 Bread
DettagliIn questo tutorial decodificheremo i segnali provenienti da un telecomando qualsiasi e utilizzeremo gli stessi segnali per comandare Arduino a
Arduino lettore e trasmettitore di codici IR In questo tutorial decodificheremo i segnali provenienti da un telecomando qualsiasi e utilizzeremo gli stessi segnali per comandare Arduino a distanza per
DettagliPer controllare un motore DC (funzionante in corrente continua) con Arduino, devi utilizzare il circuito integrato Ponte H (nel mio caso un L293NE
Controllo di velocità e verso di un motore DC con Arduino con L293NE Per controllare un motore DC (funzionante in corrente continua) con Arduino, devi utilizzare il circuito integrato Ponte H (nel mio
DettagliLe sintonie elettroniche per l ATV
Le sintonie elettroniche per l ATV II Meeting ATV Magenta 18/04/2004 IW2LFD Luciano Arrigoni iw2lfd@libero.it http://digilander.libero.it/iw2lfd A.R.I. Sezione di Gallarate IQ2GM - http://www.qsl.net/iq2gm/
DettagliProgramma di simulazione per Arduino
Programma di simulazione per Arduino Un interessante simulatore di circuiti elettronici che possono impiegare Arduino (ma non solo) si può usare online all indirizzo circuits.io Per utilizzare questo servizio
DettagliMacchina con Arduino Uno comandata tramite dispositivo Android e sensore ultrasuoni per fermarsi istantaneamente di fronte ad un ostacolo
Macchina con Arduino Uno comandata tramite dispositivo Android e sensore ultrasuoni per fermarsi istantaneamente di fronte ad un ostacolo Progetto di fine anno Gruppo C, A.S 2015/2016 Realizzato da Classe:
DettagliGateway KNX/DALI 64/16 - da guida DIN GW Manuale Tecnico
Gateway KNX/DALI 64/16 - da guida DIN GW 90872 Manuale Tecnico 1 Sommario 1 Introduzione... 3 2 Applicazione... 3 2.1 Limiti delle associazioni... 3 3 Menù Generale... 4 3.1 Parametri... 4 3.2 Oggetti
Dettagli============================================================================
progetto con rfid Scritto da tigiemme - 02/08/2013 22:10 Salve a tutti Avrei bisogno di aiuto per creare un progetto che mi frulla in testa da un po di tempo. Comincio col dire che sono un principiante
DettagliProgetti reali con ARDUINO
Progetti reali con ARDUINO Introduzione alla scheda Arduino (parte 2ª) giugno 2013 Giorgio Carpignano I.I.S. PRIMO LEVI C.so Unione Sovietica 490 (TO) Materiale didattico: www.iisprimolevi.it Il menù per
DettagliFC-51: IR Infrared Obstacle Detection Sensor Module 2-30cm
FC-51: IR Infrared Obstacle Detection Sensor Module 2-30cm Giorgio De Nunzio Giovanni Marsella 0 Premessa: i raggi infrarossi (IR) Fig. 0 Lo spettro delle onde elettromagnetiche, in cui è presente la porzione
DettagliCorso di BASCOM (Capitolo 1 5 ) Corso Teorico/Pratico di programmazione in BASCOM Autore: DAMINO Salvatore. D I S P L A Y L C D (3).
Corso di BASCOM 8051 - (Capitolo 1 5 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. D I S P L A Y L C D (3). GESTIONE DI UNA SEMPLICE CALCOLATRICE. Questo programma
DettagliI SENSORI DI PROSSIMITA
I SENSORI DI PROSSIMITA In questa lezione su Arduino, parleremo di un interessante trasduttore, che può essere utile per tantissimi progetti: il sensore di presenza o di prossimità I sensori di prossimità
DettagliCOMUNICAZIONE SERIALE a cura dell' Ing. Buttolo Marco
COMUNICAZIONE SERIALE a cura dell' Ing. Buttolo Marco Un PC può comunicare in vari modi con le periferiche. Fondamentalmente esistono due tipi di comunicazione molto comuni: 1. La comunicazione seriale
DettagliSENSORI OTTICI - FOTORESISTENZE
SENSORI OTTICI - FOTORESISTENZE ComponentI elettronici con resistenza inversamente proporzionale alla quantità di luce che lo colpisce. La corrente che attraversa una fotoresistenza è direttamente proporzionale
DettagliTM1638 BOARD con ARDUINO
TM1638 BOARD con ARDUINO 8-Bit LED 8-Bit Digital 8-Bit Key TM1638. Ci sono solo tre linee di controllo.c'è una libreria e la scheda ha solo 3 pin di controllo, più alimentazione e la terra. I pin di controllo
DettagliRappresentazione binaria delle variabili (int e char)
Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati
DettagliArduino. Led, pulsanti, PWM, tastierino, display sette segmenti, display LCD
Arduino Led, pulsanti, PWM, tastierino, display sette segmenti, display LCD Accendere e spegnere i led in void setup() { for(int i=2;i
DettagliProgetto per il corso di Microcontrollori: Gestore Ambientale
UNIVERSITÀ DEGLI STUDI DELL INSUBRIA Corso di Laurea Magistrale in Informatica Progetto per il corso di Microcontrollori: Gestore Ambientale Studente: Bonizzi Mauro Matr. 711020 Anno Accademico 2013/2014
DettagliIndice. Introduzione 15. L hardware 24. Il software 43. Introduzione al linguaggio di Arduino 60. Basi del linguaggio di Arduino 65
Indice Introduzione 15 1.1 - Un po di storia 15 1.2 - Le vecchie schede 18 1.3 - La filosofia open 23 L hardware 24 2.1 - La scheda Arduino UNO 24 2.1.1 - Avvertenze sull uso della scheda 27 2.2 - Il microcontrollore
DettagliArduino: Programmazione
Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite
DettagliCORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii
CORSO ARDUINO Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM 2016 1 FAQ time domande e risposte? 2 Iterazioni: while Si usa per ripetere un blocco di codice finché una condizione è vera, ma senza tenere
DettagliLettura da tastiera e scrittura su monitor
Lettura da tastiera e scrittura su monitor Per poter leggere UN SINGOLO CARATTERE dalla tastiera e visualizzare UN SINGOLO CARATTERE sul monitor si possono utilizzare le funzioni: int getchar (void) (per
DettagliPowerFATT Modulo di vendita al banco e. Stampa su dispositivi fiscali
PowerFATT Modulo di vendita al banco e Stampa su dispositivi fiscali Il software PowerFATT comprende un modulo di vendita al banco con il quale è possibile vendere gli articoli inseriti, come con un normale
DettagliAlunna: Gennuso Ylenia classe VB a.s. 2014/2015
Alunna: Gennuso Ylenia classe VB a.s. 2014/2015 Arduino è una piattaforma di sviluppo open-source basata su una semplice scheda I / O con un µc e un ambiente di sviluppo che implementa hardware e software
DettagliSTRUTTURE DI CONTROLLO DEL C++
STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto
DettagliTutorial Display LCD e PIC
Tutorial Display LCD e PIC Si fa presente per coloro che sono a "digiuno" con la programmazione dei PIC di leggersi il tutorial in questo link http://www.grix.it/viewer.php?page=429 Descrizione Questo
DettagliScheda Didattica di Sperimentazione.
Corso di BASCOM 8051 - (Capitolo 4 6 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. Scheda Didattica di Sperimentazione. La DEB 01 (Didactics Experimental Board) è
DettagliNMRONDOAS1-NMATX3-NMATX2S
NMRONDOAS1-NMATX3-NMATX2S SIRENA AUTOALIMENTATA VIA RADIO, BIDIREZIONALE, A PILE ALCALINE Descrizione generale Scheda ricetrasmittente in grado di comandare fino a 8 sirene radio con possibilità di ricevere
DettagliBus RS-232. Ing. Gianfranco Miele April 28, 2011
Ing. Gianfranco Miele (g.miele@unicas.it) http://www.docente.unicas.it/gianfranco_miele April 28, 2011 Alcune definizioni Comunicazione seriale Bit trasmessi in sequenza Basta una sola linea Più lenta
DettagliIndruduzione... 1 Il modulo Bluetooth HC il firmware... 4 Collegamento della scheda... 4 L applicazione Android... 6
Sommario Indruduzione... 1 Il modulo Bluetooth HC-06... 2 il firmware... 4 Collegamento della scheda... 4 L applicazione Android... 6 Indruduzione un semplice Dimmer Controller da 3,5 A/12 V, per gestire
DettagliApplicazioni dei microcontrollori PIC
Applicazioni dei microcontrollori PIC In questa unità vengono esposte le modalità di realizzazione di un circuito hardware con il microcontroller PIC16C84 (o PIC16F84), per la prova dei programmi presentati
DettagliArduino Tutorial #7 - Nunchuk materiale utilizzato Arduino, cavi elettrici, breadboard, nunchuk, 3 led.
www.creativecommons.org Arduino Tutorial #7 - Nunchuk materiale utilizzato Arduino, cavi elettrici, breadboard, nunchuk, 3 led. Per vedere tutti i tutorial: /arduino/ In questo tutorial colleghiamo il
DettagliGestione Termometro e Termostato.
Corso di BASCOM 8051 - (Capitolo 4 0 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. Gestione Termometro e Termostato. Un interessante dispositivo della Dallas (Maxim),
DettagliDomotica con Arduino. Prima di proseguire con la descrizione del progetto, elenco, di seguito, il materiale utilizzato:
Domotica con Arduino Questo progetto, che chiamo sinteticamente come da titolo, si occupa di gestire l accensione e lo spegnimento di elettrodomestici e illuminazione, attraverso una semplice interfaccia
DettagliTERMOMETRO LCD BASATO SUL TRASDUTTORE DI TEMPERATURA ANALOGICO LM 35
ESERCITAZIONE CON ARDUINO N 5 TERMOMETRO LCD BASATO SUL TRASDUTTORE DI TEMPERATURA ANALOGICO LM 35 Con il presente circuito, si vuole realizzare un termostato ambientale per un caseificio, che utilizza
DettagliWord 2003 Lavorare col testo
Word 2003 Lavorare col testo Scrivere cancellare selezionare 1 Modalità di visualizzazione 2 Prima di cominciare a scrivere bisogna conoscere le diverse modalità con cui Word 2003 permette di visualizzare
DettagliCorso Arduino Maggio Riccardo Binetti Lezione 2 - Il calore dell analogico
Corso Arduino 2014 28 Maggio 2014 Riccardo Binetti punkerbino@gmail.com Lezione 2 - Il calore dell analogico Riccardo Binetti Arduino 2014 Lezione 2 1 / 27 Segnali analogici L altra volta abbiamo lavorato
DettagliProf. Capuzzimati Mario - ITIS Magistri Cumacini - Como MICROCONTROLLORE
Microcontrollori MICROCONTROLLORE I Microcontrollori (MCU: MicroController Unit) sono dispositivi integrati su un singolo chip, che interagiscono direttamente col mondo esterno, grazie a un programma residente.
DettagliRealizzate il circuito come indicato nello schema seguente:
Esercizio 1 Fare lampeggiare contemporaneamente due diodo LED collegati rispettivamente al pin 12 e 11 di Arduino con tempi di accensione e spegnimento pari ad 1 secondo. Realizzate il circuito come indicato
DettagliLab. Sistemi - Classe 5Bn A. S. 2000/2001 ITIS Primo Levi - Torino AA.AA. STANDARD SERIALE DI COMUNICAZIONE: RS232 Lo standard seriale di
STANDARD SERIALE DI COMUNICAZIONE: RS232 Lo standard seriale di interfacciamento è stato introdotto al fine di collegare dispositivi remoti a bassa velocità con un calcolatore centrale. In questo genere
DettagliManuale d uso e manutenzione
2 Serial I/F RS22 optoisolata Manuale d uso e manutenzione 5904517201 Codice ordine: Data: 04/2014 - Rev: 1.2 Sommario 1. Generalità... 2. Caratteristiche tecniche.... Modalità di configurazione... 4.
DettagliEFA Automazione S.r.l. Serial Bridge 3 - Modbus RTU slave to PICnet (01 ITA).doc pag. 1 / 8
EFA Automazione S.r.l. Serial Bridge 3 - Modbus RTU slave to PICnet (01 ITA).doc pag. 1 / 8 Applicazione Integrazione di reti PICnet mediante l interfacciamento del modulo master (PN MAS dotato di porta
DettagliQuindi dopo aver collegato tutto avremo qualcosa di simile:
Arduino + IMU In questa lezione cercheremo di utilizzare un Arduino UNO e un IMU (giroscopi e accelerometri) per attivare dei motori a spazzole (brushed) a seconda dell'inclinazione dei sensori, in modo
DettagliCorso base su arduino Terza parte
orso base su arduino Terza parte Gli ingressi analogici caratteristiche hardware Il microcontrollore di arduino Uno possiede al suo interno un convertitore analogico digitale con 10 bit di risoluzione.
DettagliL hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:
Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti
DettagliCORSO ARDUINO. Jacopo Beli Giulio Fieramosca Luca Mati GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii 1
CORSO ARDUINO Jacopo Beli Giulio Fieramosca Luca Mati GOLEM 2016 Jacopo Belli Giulio Fieramosca Luca Mattii 1 Cosa c'è dietro Arduino? Jacopo Belli Giulio Fieramosca Luca Mattii 2 Cosa c'è dietro Arduino?
DettagliGenere DATA Generalità Note Distribuzione
UTILIZZO DISPLAY 16X2 SU BREAD-BOARD ARDUINO RIFERIMENTI GENERALITA Genere DATA Generalità Note Distribuzione radio Feb 16 laboratorio af Utilizzare ARDUINO con efficacia per prove in laboratorio richiede
DettagliTMD 2CSG524000R2021 ABB
TMD 2CSG524000R2021 2CSG445018D0901 ABB ABB ABB S.p.a Divisione ABB SACE V.le dell Industria, 18 20010 Vittuone (MI) Tel +39 02 9034 1 FAX +39 02 9034 7609 2 I Principali funzionalità Un eccessivo incremento
DettagliIST-1395.CS01.01/A CE395CS / Istruzioni d uso Pag. 2/6
IT IST-1395.CS01.01/A File: IST-1395.CS01.01-A_CE395CS-IT_Convertitore RS232-RS422.docx CONVERTITORE SERIALE RS232-RS485 CE395CS ISTRUZIONI D USO TECNOCONTROL S.r.l. Via Miglioli, 4720090 SEGRATE (MI)
DettagliBytronic s.r.l. via Como, Cairate (VA) Tel. 0331/ Fax. 0331/ Partita IVA SCHEDA TECNICA BY5165T
BY5165T CARICABATTERIA INTELLIGENTE 2 x 12V/4A La presente documentazione è di proprietà esclusiva di Bytronic S.r.l. Via Como 55 21050 Cairate (VA) ITALY. Essa non può essere copiata, modificata o distribuita
DettagliDISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE
DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE Si propone l'uso di un microcontrollore pic16f84 della Microchip. Si acquisiscono i segnali di un encoder con due canali in quadratura con la possibilità
DettagliUNA CERTIFICAZIONE PER IL FUTURO
UNA CERTIFICAZIONE PER IL FUTURO Test attitudinale 14 Maggio 2014 Alunno Nome: Cognome: Svolgere i seguenti esercizi a risposta multipla segnando una sola tra le soluzioni proposte. 1) Che tipo di computer
DettagliVariabili e Istruzioni
Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome
DettagliReal Time Clock, in I2C BUS, Provvisto di RAM.
Corso di BASCOM 8051 - (Capitolo 4 1 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. Real Time Clock, in I2C BUS, Provvisto di RAM. Il PCF 8583 è un diffusissimo dispositivo
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliHyperTerminal e Serie IDP TR
Sensori di spostamento a triangolazione laser INTRODUZIONE: HyperTerminal e Serie IDP TR In questo breve documento viene presentata una procedura per la configurazione del programma HyperTerminal di Microsoft
DettagliI dispositivi di input/output
I dispositivi di input/output I dispositivi di input/output (anche detti periferiche), permettono di realizzare l'interazione tra l'uomo e la macchina La loro funzione primaria è quella di consentire l'immissione
DettagliProgetto di Domotica
Progetto di Domotica Titolo dell esercitazione: Progetto di Domotica Descrizione sommaria dell esperienza: Realizzazione di un circuito che permette il controllo di vari sensori all interno di un edificio.
DettagliFONDAMENTI DI ARDUINO
FONDAMENTI DI ARDUINO LEZIONE 1: LE BASI 8 novembre 2016 presso POLIFACTORY il makerspace del Politecnico di Milano PROGRAMMA DEL CORSO 8/11 Le basi, corrente elettrica, led, resistenze 10/11 Ingressi
DettagliInformatica! Appunti dal laboratorio 1!
Informatica! Appunti dal laboratorio 1! Sistema Operativo! Windows 7, Windows 8, Mac OS X, Linux, Debian, Red Hat, etc etc! Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti
DettagliSpecifiche del protocollo di comunicazione semplificato per il modulo seriale di I/O
Specifiche del protocollo di comunicazione semplificato per il modulo seriale di I/O Architettura del frame di comunicazione Il frame di comunicazione è lungo 13 bytes ed ha questo formato nell ordine
DettagliDispositivi Power Line: manuale per l'installatore
Dispositivi Power Line: manuale per l'installatore Versione 1.0 Data: 13/03/12 Indice generale Introduzione...3 X-Gate...4 Collegamenti...4 Pulsanti e Led...5 Installazione e manutenzione...5 X-PL24...6
DettagliSensori di Prossimità Guida Utente
Sensori di Prossimità Guida Utente 1 INDICE: 1 INTRODUZIONE... 2 2 NORME DI INSTALLAZIONE... 2 2.1 Precauzioni... 2 2.2 Connessione elettrica... 3 3 SETTAGGIO DEI CANALI CON ACQUISITORI GET... 3 4 CARATTERISTICHE
DettagliTesina di Maturità. Gianfriddo Giuseppe Classe: 5^B I.T.I.S Indirizzo: Elettronica ed elettrotecnica Anno: 2014/15. Autore: Gianfriddo Giuseppe
1 Tesina di Maturità Gianfriddo Giuseppe Classe: 5^B I.T.I.S Indirizzo: Elettronica ed elettrotecnica Anno: 2014/15 2 3 Premesse 4 L obiettivo che mi sono prefissato, inizialmente era quello di progettare,
DettagliD sistema d allarme con sensori magnetici
D sistema d allarme con sensori magnetici Il sistema di allarme proposto in questa nota prevede l utilizzo di sensori reed per rilevare l apertura di porte e/o finestre. Il programma prevede due sensori,
Dettagli5^ parte : Controllare un LED RGB con 3 potenziometri. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)
5^ parte : Controllare un LED RGB con 3 potenziometri Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) Esperienzan 3 Lo scopo è riuscire a controllare i tre canali di un led RGB attraverso dei
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliModulo analogico D1-15A. Manuale Utente
Modulo analogico D1-15A Manuale Utente Modulo analogico D1-15A Manuale Utente Sielco Elettronica S.r.l. via Edison 209 20019 Settimo Milanese (MI ) Italia http://www.sielcoelettronica.com info@sielcoelettronica.com
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
DettagliL interruttore viene montato su un dispositivo di accoppiamento bus.
L interruttore viene montato su un dispositivo di accoppiamento bus. I pulsanti possono inviare comandi di commutazione, regolazione di lampade, controllo di tapparelle o telegrammi da 1 byte agli attuatori
DettagliI CARATTERI E LE STRINGHE
I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard
DettagliE labirinto cronaca di un fallimento
E labirinto cronaca di un fallimento Non tutte le ciambelle riescono con il buco e questa e la relazione di un fallimento, poiche il risultato finale non e stato raggiunto. Ma il prototipo funziona correttamente
Dettagli