Arduino - II parte. Laboratorio di Segnali e Sistemi II - Arduino-II parte

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Arduino - II parte. Laboratorio di Segnali e Sistemi II - Arduino-II parte"

Transcript

1 Arduino - II parte

2 Esercizio: simulazione di un semplice sistema di controllo Un certo impianto viene acceso e spento manualmente tramite un interruttore. Inoltre,passando da spento ad acceso si deve immaginare una fase di riscaldamento iniziale. Durante il funzionamento si puo poi verificare una qualche situazione anomala (per esempio surriscaldamento) che deve provocare uno spegnimento automatico.

3 Esercizio: una simulazione (2) Simuliamo lo stato spento o acceso con due LED: Led Verde acceso: impianto spento (in attesa); Led Rosso acceso: impianto acceso; Led Verde lampeggiante: fase di preriscaldamento; Led Rosso lampeggiante: fase di spegnimento per allarme. (Simuliamo la situazione di allarme come un pulsante che viene premuto in modo asincrono)

4 Esercizio: una simulazione (3) Diagramma degli stati:

5 Prima soluzione - Codice (1) / 4 p o s s i b i l i s t a t i 0=spento, 1= riscaldamento, 2=acceso, 3=allarme / i n t ledverde = 8; i n t ledrosso = 9; i n t switchpin = 2; i n t switchval = 0; v o l a t i l e i n t s tate = 0; void setup ( ) { / / put your setup code here, to run once : S e r i a l. begin (9600); pinmode ( ledverde, OUTPUT) ; pinmode ( ledrosso, OUTPUT) ; pinmode ( 2, INPUT_PULLUP ) ; / / pin d i accensione e spegnimento pinmode (3, INPUT_PULLUP ) ; / / pin d i allarme ( i n t e r r u p t ) a t t a c h I n t e r r u p t (1, allarme, FALLING ) ; S e r i a l. p r i n t ( " Stato a t t u a l e " ) ; S e r i a l. p r i n t l n ( s tate ) ;

6 Prima soluzione - Codice (2) void loop ( ) { switchval = digitalread ( switchpin ) ; switch ( s tate ) { case 0: { d i g i t a l W r i t e ( ledverde, HIGH ) ; d i g i t a l W r i t e ( ledrosso, LOW) ; i f ( switchval == 1) s tate =1; break ; case 1: { f l a s h ( ledverde, 5, 1000); s tate = 2; break ; case 2: { d i g i t a l W r i t e ( ledverde, LOW) ; d i g i t a l W r i t e ( ledrosso, HIGH ) ; i f ( switchval == 0) s tate =0; break ; case 3: { f l a s h ( ledrosso, 10, 500); s tate = 0; break ;

7 Prima soluzione - Codice (3) void allarme ( ) { S e r i a l. p r i n t ( " I n t e r r u p t : Stato a t t u a l e " ) ; S e r i a l. p r i n t l n ( s tate ) ; s tate = 3; void f l a s h ( i n t pin, i n t number, i n t leng ) { i n t i = 0; f o r ( i = 0; i < 5; i ++) { d i g i t a l W r i t e ( pin, HIGH ) ; delay ( leng ) ; d i g i t a l W r i t e ( pin, LOW) ; delay ( leng ) ;

8 Commenti Questa soluzione e sbagliata! Dove sta l errore?

9 Commenti Questa soluzione e sbagliata! Dove sta l errore? In caso di allarme il sistema si spegne, ma poi legge il pin 2, lo trova HIGH e si riaccende. Possibili soluzioni: Introdurre un ulteriore stato (4) in cui si va dopo l allarme e da cui si esce solo con reset manuale; Accensione e spegnimento tramite pulsante (toggle) (tramite interrupt o in altro modo).

10 Diagramma modificato Diagramma degli stati:

11 Soluzione con interrupt - Codice (1) / 4 p o s s i b i l i s t a t i 0=spento, 1= riscaldamento, 2=acceso, 3=allarme / i n t ledverde = 8; i n t ledrosso = 9; v o l a t i l e i n t s tate = 0; void setup ( ) { S e r i a l. begin (9600); pinmode ( ledverde, OUTPUT) ; pinmode ( ledrosso, OUTPUT) ; pinmode ( 2, INPUT_PULLUP ) ; / / pin d i accensione e spegnimento pinmode ( 3, INPUT_PULLUP ) ; / / pin d i allarme a t t a c h I n t e r r u p t (0, comando, FALLING ) ; a t t a c h I n t e r r u p t (1, allarme, FALLING ) ; S e r i a l. p r i n t ( " Stato a t t u a l e " ) ; S e r i a l. p r i n t l n ( s tate ) ;

12 Soluzione con interrupt - Codice (2) void loop ( ) { / / put your main code here, to run repeatedly : switch ( s tate ) { case 0: { d i g i t a l W r i t e ( ledverde, HIGH ) ; d i g i t a l W r i t e ( ledrosso, LOW) ; break ; case 1: { f l a s h ( ledverde, 5, 1000); s tate = 2; break ; case 2: { d i g i t a l W r i t e ( ledverde, LOW) ; d i g i t a l W r i t e ( ledrosso, HIGH ) ; break ; case 3: { f l a s h ( ledrosso, 10, 500); s tate = 0; break ;

13 Soluzione con interrupt - Codice (3) void comando ( ) { i f ( s tate == 0) { s tate = 1 ; else i f ( s tate == 2 ) { s tate = 0 ; void allarme ( ) { s tate = 3; void f l a s h ( i n t pin, i n t number, i n t leng ) { i n t i = 0; f o r ( i = 0; i < 5; i ++) { d i g i t a l W r i t e ( pin, HIGH ) ; delay ( leng ) ; d i g i t a l W r i t e ( pin, LOW) ; delay ( leng ) ;

14 Timing Ci sono varie funzioni legate al timing delay(); delaymicroseconds(); millis() micros() Le funzioni millis() e micros() consentono di misurare intervalli di tempo (per esempio per misurare la velocita di esecuzione di una istruzione)

15 Esempio i n t imax = 1000; f l o a t t e s t = ; f l o a t test2 ; unsigned long i s t a r t ; unsigned long i s t o p ; unsigned long d i f f ; void setup ( ) { S e r i a l. begin (9600); S e r i a l. p r i n t l n ( " INIZIO " ) ; void loop ( ) { S e r i a l. p r i n t ( " Time s t a r t stop d i f f " ) ; i s t a r t = micros ( ) ; f o r ( i n t i =0; i < imax ; i ++) { test2 = s q r t ( t e s t ) ; i s t o p = micros ( ) ; d i f f = i s t o p i s t a r t ; S e r i a l. p r i n t ( i s t a r t ) ; S e r i a l. p r i n t ( " " ) ; S e r i a l. p r i n t ( i s t o p ) ; S e r i a l. p r i n t ( " " ) ; S e r i a l. p r i n t l n ( d i f f ) ; delay (2000);

16 Alcune cose da NON fare con Arduino La scheda (e il µc) non sono completamente protetti contro errori che possono danneggiare irreparabilmente l hardware. Esempi: Mettere a massa un pin di I/O (quando usato come output); Mettere in corto tra loro due pin di I/O; Applicare sovratensioni ai pin di I/O; Applicare tensioni negative ai pin di I/O; Applicare tensioni ai pin 5 V o 3.3 V; Mettere a massa il pin V in ; Superare la corrente massima dei pin di I/O (40 ma); Superare la corrente massima totale (200 ma);......

17 Operazioni logiche e operazioni sui bit Operazioni logiche: i f ( a == b && c == d ) / / AND LOGICO { / /.... i f ( x > 0 y > 0) / / OR LOGICO { / /... i f (! x ) / /NOT LOGICO { / /...

18 Operazioni logiche e operazioni sui bit Operazioni sui bit: i n t a = 92; i n t b = 101; i n t c = a & b ; / / AND b i t per b i t dei due operandi i n t a = 92; i n t b = 101; i n t c = a b ; / / OR b i t per b i t dei due operandi i n t a = 92; i n t b = 101; i n t c = a ^ b ; / / XOR b i t per b i t dei due operandi i n t a = 103; i n t b = ~a ; / / NOT b i t per b i t

19 Spostamenti di bit i n t a = 5; / / i n t b = a << 3; / / spostamento a s i n i s t r a d i 3 p o s t i i n t a = 5; / / i n t c = a >> 4; / / spostamento a destra d i 4 p o s t i

20 I canali di Input/Output I canali di I/O del µc sono organizzati in gruppi di 8 (tecnicamente ports): PORTB, PORTC, PORTD

21 Ports Ordinamento: Bit PORTB PORTC PORT D 0 D I/O 8 A 0 D I/O 0 1 D I/O 9 A 1 D I/O 1 2 D I/O 10 A 2 D I/O 2 3 D I/O 11 A 3 D I/O 3 4 D I/O 12 A 4 D I/O 4 5 D I/O 13 A 5 D I/O 5 6 (crystal) (reset) D I/O 6 7 (crystal) / D I/O 7

22 Ports Ad ogni port sono associati 3 registri da 8 bit PORT B C D REGISTER DDRB Data Direction Register Read/Write PORTB Data Register Read/Write PINB Input Pin Register Read only DDRC Data Direction Register Read/Write PORTC Data Register Read/Write PINC Input Pin Register Read only DDRB Data Direction Register Read/Write PORTD Data Register Read/Write PIND Input Pin Register Read only Il programma puo accedere e manipolare direttamente questi registri.

23 Esempi: DDRD = B ; / / Definisce i pin 0,1,2,3 come i nput / / e i pin 4,5,6,7 come output DDRD = DDRD B ; / / Definisce i pin 2,3,4,5,6,7 come output / / senza a l t e r a r e i pin 0,1 DDRD = DDRD & B ; / / Definisce i pin 2,3,4,5,6,7 come i nput / / senza a l t e r a r e i pin 0,1 PORTD = B ; / / sets d i g i t a l pins 7,5,3 HIGH byte A; A = PIND ; / / Legge i n A g l i 8 pin d i Input 0 7;

24 Vantaggi L uso diretto dei registri consente di fare in modo molto piu veloce le manipolazioni dei canali di I/O. Esempio: void setup ( ) { i n t pin ; f o r ( pin =0; pin <= 7; ++pin ) { pinmode ( pin, OUTPUT) ; Richiede un grandissimo numero di cicli di clock (e molta memoria). Lo stesso risultato puo essere ottenuto con una sola istruzione: PORTD = B ; / /

25 Altro esempio Generare onde rettangolari alla massima frequenza possibile: Esempio: void setup ( ) { DDRD = B ; / / set PORTD ( d i g i t a l 7~0) to outputs void loop ( ) { PORTD = B ; PORTD = B ; Notare che non si ottiene un onda quadra, perche il µc impiega del tempo extra per tornare all inizio del loop.

26 Cautele Bisogna fare attenzione a non toccare bit che possono svolgere altre funzioni! Per esempio, i pin digitali 0 e 1 sono usati dalla comunicazione seriale. Il pin PC6 e utilizzato per il Reset (active LOW).

27 Interfacciamento del DAC MCP4922

28 L integrato MCP DAC indipendenti a 12 bit (DAC A e DAC B). Interfaccia SPI Singola alimentazione ( V) Fondo scala di V OUT selezionabile (V REF oppure 2 V REF ) Uscite sincronizzabili (tramite LDAC) Le uscite possono essere messe in alta impedenza (tramite SHDN) e il consumo ridotto al minimo

29 Schema funzionale

30 String DAC

31 Caratteristiche generali

32 Significato dei pin

33 Interfaccia SPI

34 Interfaccia SPI: timing

35 Interfacciamento con Arduino

36 Un semplice programma / / Legge 2 i n t e r i da consolle e s c r i v e sui DAC # include <SPI. h> const i n t slaveselectpin = 10; i n t datoa = 0; i n t datob = 0; boolean datoaready = f a l s e ; boolean datobready = f a l s e ; void setup ( ) { S e r i a l. begin (9600); pinmode ( slaveselectpin, OUTPUT) ; d i g i t a l W r i t e ( slaveselectpin, HIGH ) ; SPI. begin ( ) ; SPI. setdatamode (SPI_MODE0 ) ; SPI. setbitorder (MSBFIRST ) ;

37 Un semplice programma void loop ( ) { S e r i a l. p r i n t l n ( " I n s e r i s c i i l primo dato ( ) : " ) ; while (! datoaready ) { i f ( S e r i a l. a v a i l a b l e ( ) > 0 ) { datoa = S e r i a l. parseint ( ) ; datoaready = true ; S e r i a l. p r i n t l n ( " I n s e r i s c i i l secondo dato ( ) : " ) ; while (! datobready ) { i f ( S e r i a l. a v a i l a b l e ( ) > 0) datob = S e r i a l. parseint ( ) ; datobready = true ; writedac ( datoa, 0 ) ; / / s c r i v e sui DAC A writedac ( datob, 1 ) ; / / s c r i v e sui DAC B datoaready= f a l s e ; datobready = f a l s e ;

38 Un semplice programma void writedac ( i n t dato, i n t dac ) { / / Scrive sul DAC dac (0 o 1) i l dato / / Prende solo i 12 b i t meno s i g n i f i c a t i v i d i dato / / config per i l DAC A (SHDN=1,GAIN = 1, UNBUFFERED) byte conf = B ; byte mask = B ; byte low = lowbyte ( dato ) ; byte high = highbyte ( dato ) ; high = high & mask ; / / maschera i 4 b i t piu s i g n i f i c a t i v i high = high conf ; / / c i mette i b i t d i configurazione i f ( dac == 1) b i t S e t ( high, 7 ) ; / / mette a 1 i l b i t 7 se vogliamo / / S e r i a l. p r i n t ( high, BIN ) ; / / S e r i a l. p r i n t ( " " ) ; / / S e r i a l. p r i n t l n ( low, BIN ) ; d i g i t a l W r i t e ( slaveselectpin,low) ; SPI. t r a n s f e r ( high ) ; SPI. t r a n s f e r ( low ) ; d i g i t a l W r i t e ( slaveselectpin, HIGH ) ;

39 Timing / / Programma per osservare a l l o s c i l l o g r a f o i l dialogo SPI # include <SPI. h> i n t dato = 0; i n t dac = 0; boolean datoready = f a l s e ; const i n t slaveselectpin = 10; void setup ( ) { S e r i a l. begin (9600); pinmode ( slaveselectpin, OUTPUT) ; d i g i t a l W r i t e ( slaveselectpin, HIGH ) ; SPI. begin ( ) ; SPI. setdatamode (SPI_MODE0 ) ; SPI. setbitorder (MSBFIRST ) ; SPI. setclockdivider (SPI_CLOCK_DIV2 ) ; S e r i a l. p r i n t l n ( " I n s e r i s c i i l dato ( ) : " ) ; while (! datoready ) { i f ( S e r i a l. a v a i l a b l e ( ) > 0 ) { dato = S e r i a l. parseint ( ) ; datoready = true ;

40 Timing void loop ( ) { writedac ( dato, dac ) ;

41 Timing void writedac ( i n t dato, i n t dac ) { / / Scrive sul DAC dac (0 o 1) i l dato / / Prende solo i 12 b i t meno s i g n i f i c a t i v i d i dato / / config per i l DAC A (SHDN=1,GAIN = 1, UNBUFFERED) byte conf = B ; byte mask = B ; byte low = lowbyte ( dato ) ; byte high = highbyte ( dato ) ; high = high & mask ; / / maschera i 4 b i t piu s i g n i f i c a t i v i high = high conf ; / / c i mette i b i t d i configurazione i f ( dac == 1) b i t S e t ( high, 7 ) ; / / mette a 1 i l b i t 7 se vogliamo / / S e r i a l. p r i n t ( high, BIN ) ; / / S e r i a l. p r i n t ( " " ) ; / / S e r i a l. p r i n t l n ( low, BIN ) ; d i g i t a l W r i t e ( slaveselectpin,low) ; SPI. t r a n s f e r ( high ) ; SPI. t r a n s f e r ( low ) ; d i g i t a l W r i t e ( slaveselectpin, HIGH ) ;

42 Interfacciamento dello schermo LCD

43 TFT LCD Utilizzeremo un piccolo schermo LCD a colori (160x128 pixels), che verra connesso ad Arduino Uno. La scheda contiene anche una slot per Memory Card SD (tipo micro). La comunicazione con queste 2 periferiche avviene tramite il protocollo SPI (Serial Peripheral Interface).

44 TFT: Schema logico delle connessioni

45 TFT LCD: Connessioni

46 Coordinate grafiche Tutte le applicazioni grafiche utilizzano questa sistema di riferimento:

47 TFT LCD: programmazione Per utilizzare lo schermo occorre includere nello sketch le librerie SPI e TFT e definire alcuni pin (gli altri sono di default). Lo schermo va poi inizializzato. # include <SPI. h> # include <TFT. h> / / Arduino LCD l i b r a r y # defi ne cs 10 # define dc 9 # define r s t 8 TFT screen = TFT( cs, dc, r s t ) ; / / Crea una istanza d i TFT void setup ( ) { / / i n i t i a l i z e the screen screen. begin ( ) ; void loop ( ) {

48 Colore Il colore e sempre definito utilizzando il modello RGB. Il colore di fondo dello schermo viene definito con la funzione screen.background(red,green,blue) red : int green : int blue : int # include <SPI. h> # include <TFT. h> / / Arduino LCD l i b r a r y # defi ne cs 10 # define dc 9 # define r s t 8 TFT screen = TFT( cs, dc, r s t ) ; / / Crea una istanza d i TFT void setup ( ) { screen. begin ( ) ; / / i n i t i a l i z e the screen screen. background (255,255,255); / / background white void loop ( ) {

49 Il modello RGB dei colori il modello RGB è di tipo additivo e si basa su tre colori primari: rosso (Red), verde (Green) e blu (Blue) (da non confondere con i colori primari sottrattivi giallo, ciano e magenta). Unendo i tre colori con la loro intensità massima si ottiene il bianco. La combinazione delle coppie di colori dà il ciano, il magenta e il giallo. La scelta dei colori primari è correlata alla fisiologia dell occhio umano;sono stimoli che massimizzano la differenza tra le risposte delle cellule cono della retina (ce ne sono di 3 tipi) alle differenze di lunghezza d onda della luce. Notare che non tutti i colori visibili possono essere riprodotti con la miscelazione RGB.

50 Colore (2) Per ogni oggetto grafico si distingue il colore del contorno e il colore del riempimento. Il colore del contorno e definito con la funzione screen.stroke(red,green,blue) red : int green : int blue : int Il colore del riempimento con la funzione screen.fill(red,green,blue) red : int green : int blue : int 0-255

51 Colore (3) Se non si vuole il contorno, lo si puo escludere con la funzione screen.nostroke( ) invece se non si vuole il riempimento con la funzione screen.nofill()

52 Forme screen. point ( x, y ) ; / / disegna un punto (1 p i x e l ) / / i n posizione x, y screen. l i n e ( xs, ys, xe, ye ) ; / / disegna una l i n e a / / da ( xs, ys ) a ( xe, ye ) screen. r e c t ( xs, ys, w, h ) / / disegna un r e t t a n g o l o d i / / larghezza w e altezza h / / xs, ys sono l e coordinate / / d e l l o spigolo superiore s i n i s t r o screen. c i r c l e (xc, yc, r ) ; / / disegna un cerchio d i raggio r / / con centro i n xc, yc

53 Altre funzioni i n t screen. width ( ) ; / / r e s t i t u i s c e l a larghezza / / d e l l o schermo i n t screen. height ( ) ; / / r e s t i t u i s c e l altezza / / d e l l o schermo

54 Esempi (1): rettangolo # include <SPI. h> # include <TFT. h> / / Arduino TFT l i b r a r y # defi ne cs 10 # define dc 9 # define r s t 8 TFT screen = TFT( cs, dc, r s t ) ; void setup ( ) { screen. begin ( ) ; / / i n i z i a l i z z a l o schermo screen. background ( 0, 0, 0 ) ; / / background nero screen. stroke (255,255,255); / / bordo bianco screen. f i l l (255,0,0); / / riempimento rosso / / draw un r e t t a n g o l o a l centro screen. l i n e ( screen. width ()/2 5, screen. height ()/2 5, 10, 10); void loop ( ) {

55 Esempi (2): testo # include <SPI. h> # include <TFT. h> / / Arduino TFT l i b r a r y # defi ne cs 10 # define dc 9 # define r s t 8 TFT screen = TFT( cs, dc, r s t ) ; void setup ( ) { screen. begin ( ) ; screen. background ( 0, 0, 0 ) ; / / background nero screen. stroke (255,255,255); / / testo bianco screen. settextsize ( 2 ) ; / / testo da 20 p i x e l s screen. t e x t ( " Buongiorno ", 5, 5 ) ; void loop ( ) {

56 Esempi (3): linee # include <SPI. h> # include <TFT. h> / / Arduino TFT l i b r a r y # defi ne cs 10 # define dc 9 # define r s t 8 TFT screen = TFT( cs, dc, r s t ) ; void setup ( ) { screen. begin ( ) ; screen. background ( 0, 0, 0 ) ; screen. stroke (255,255,255); screen. l i n e (0, 0, 160, 128); / / diagonale bianca screen. stroke (0,255,0); screen. l i n e (0, 128, 160, 0 ) ; / / diagonale verde void loop ( ) { / / put your main code here, to run repeatedly :

57 Persistenza Si noti che l immagine persiste indefinitamente sullo schermo. Esempio: # include <SPI. h> # include <TFT. h> / / Arduino TFT l i b r a r y # defi ne cs 10 # define dc 9 # define r s t 8 TFT screen = TFT( cs, dc, r s t ) ; void setup ( ) { screen. begin ( ) ; screen. background ( 0, 0, 0 ) ; screen. stroke (255,255,255); screen. settextsize ( 2 ) ; / / testo da 20 p i x e l s screen. t e x t ( " Buongiorno ", 5, 5 ) ; / / S c r i t t a n. 1 delay (10000); screen. t e x t ("15 maggio 2014", 5, 5 ) ; / / S c r i t t a n. 2 void loop ( ) { Le due scritte si sovrappongono malamente!

58 Persistenza Perciò, se si vuole aggiornare un immagine occorre cancellare la precedente: # include <SPI. h> # include <TFT. h> / / Arduino TFT l i b r a r y # defi ne cs 10 # define dc 9 # define r s t 8 TFT screen = TFT( cs, dc, r s t ) ; void setup ( ) { screen. begin ( ) ; screen. background ( 0, 0, 0 ) ; screen. stroke (255,255,255); screen. settextsize ( 2 ) ; screen. t e x t ( " Buongiorno ", 5, 5 ) ; / / S c r i t t a n. 1 delay (10000); screen. stroke ( 0, 0, 0 ) ; / / Colore del background screen. t e x t ( " Buongiorno ", 5, 5 ) ; / / Cancella s c r i t t a n. 1 screen. stroke (255,255,255); / / R i p r i s t i n a i l colore d e l l o stroke screen. t e x t ("15 maggio 2014", 5, 5 ) ; / / S c r i t t a n. 2 void loop ( ) {

59 Persistenza Un bravo programmatore puo fare di meglio usando le funzioni: TFT screen = TFT( cs, dc, r s t ) ; i n t background [ ] = {0, 0, 0 ; i n t foreground [ ] = {255, 255, 255 ; void setup ( ) { screen. begin ( ) ; screen. background ( background [ 0 ], background [ 1 ], background [ 2 ] ) ; screen. stroke (255,255,255); screen. settextsize ( 2 ) ; writetext ( foreground [ 0 ], foreground [ 1 ], foreground [ 2 ], 5, 5, " Buongiorno ", 2 ) ; delay (10000); writetext ( background [ 0 ], background [ 1 ], background [ 2 ], 5, 5, " Buongiorno ", 2 ) ; writetext ( foreground [ 0 ], foreground [ 1 ], foreground [2],5,5,"14 maggio 2014",2); void loop ( ) { void writetext ( i n t r, i n t g i n t b, i n t x, i n t y, char t e x t [ ], i n t size ) { screen. stroke ( r, g, b ) ; screen. settextsize ( size ) ; screen. t e x t ( text, x, y ) ;

60 Esempi (4): sinusoide calcolata # include <SPI. h> # include <TFT. h> / / Arduino TFT l i b r a r y # defi ne cs 10 # define dc 9 # define r s t 8 TFT screen = TFT( cs, dc, r s t ) ; double xmin = 0. ; double xmax = ; double pax = 0. ; double x ; double y ; i n t ix, i y ; i n t imin = 0; i n t imax = 160;

61 Esempi (4): sinusoide calcolata void setup ( ) { screen. begin ( ) ; screen. background ( 0, 0, 0 ) ; screen. stroke (255,255,255); S e r i a l. begin (9600); pax = (xmax xmin ) / imax ; f o r ( i n t i =0; i < imax ; i ++) { x = xmin + pax ( i 1); y = sin ( x ) ; i x = i n t ( x 6.37); i y = i n t ( y 30.)+64; S e r i a l. p r i n t ( i x ) ; S e r i a l. p r i n t ( " " ) ; S e r i a l. p r i n t l n ( i y ) ; screen. f i l l (255,255,255); screen. point ( ix, i y ) ; screen. point ( ix, i y +1); / / l i n e a a l t a 2 p i x e l s void loop ( ) {

62 Esempi(4): Sinusoide calcolata

63 Esempio: Grafico in tempo reale Si vuole costruire sullo schermo LCD (160 x 128 pixels) un grafico dove si riporta l andamento di una grandezza ( per esempio la temperatura C) misurata ad intervalli regolari di tempo, δt. Supponendo quindi di dedicare un punto di un pixel ad ogni misura avremo sul grafico il valore delle ultime 160 misure. Il grafico si deve aggiornare ad ogni δt eliminando la misura piu vecchia e aggiungendo (a destra) l ultima misura. Si noti che un immagine disegnata sul LCD e persistente, quindi ad ogni aggiornamento l immagine vecchia va cancellata e sostituita da quella nuova.

64 Grafico in tempo reale

65 Grafico in tempo reale Come si affronta questo problema? E chiaro che dovremo avere una array con 160 posizioni dove memorizzare man mano le misure e riportare sul grafico i 160 punti corrispondenti. Che succede quando avremo memorizzato le prime 160 misure? Questa struttura si chiama tecnicamente una coda ovvero una struttura FIFO (First In First Out). L idea piu ovvia e quella di traslare via via a sinistra i dati per liberare l ultimo posto a destra.

66 Grafico in tempo reale Come si affronta questo problema? E chiaro che dovremo avere una array con 160 posizioni dove memorizzare man mano le misure e riportare sul grafico i 160 punti corrispondenti. Che succede quando avremo memorizzato le prime 160 misure? Questa struttura si chiama tecnicamente una coda ovvero una struttura FIFO (First In First Out). L idea piu ovvia e quella di traslare via via a sinistra i dati per liberare l ultimo posto a destra. Ma questo richiede un enorme spreco di tempo!

67 Grafico in tempo reale Bisogna invece pensare all array come ad una struttura circolare:

68 Grafico in tempo reale

69 Applicazioni Didattica; Giochi; Sistemi di controllo e gestione; Robotica e domotica.

70 Controllo remoto di Arduino

71 Controllo remoto di Arduino

72 Arduino come programmatore ISP

73 Conclusioni Arduino e un ottimo strumento didattico perche ci aiuta a comprendere e risolvere sistemi elettronici complessi; In rete si trovano miriadi di applicazioni piu o meno futili; Puo essere un strumento di sviluppo di applicazioni serie.

Arduino: Programmazione

Arduino: 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

Dettagli

PRIMI PASSI CON ARDUINO

PRIMI 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

Dettagli

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

CORSO 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

Dettagli

ARDUINO. Ing. Francesco Giurlanda francesco.giurlanda@iet.unipi.it

ARDUINO. Ing. Francesco Giurlanda francesco.giurlanda@iet.unipi.it ARDUINO Ing. Francesco Giurlanda francesco.giurlanda@iet.unipi.it Cos'è ARDUINO? Il progetto nasce ad Ivrea, nel 2005. Obiettivo: realizzare un sistema di prototipizzazione economico. Al Maggio del 2011

Dettagli

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico ISTITUTO TECNICO STATALE MARCHI FORTI Viale Guglielmo Marconi n 16-51017 PESCIA (PT) - ITALIA PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico Docente PARROTTA GIOVANNI

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Programmazione di Base Variabili Array Funzioni Strutture di controllo. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Programmazione di Base Variabili Array Funzioni Strutture di controllo. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) Programmazione di Base Variabili Array Funzioni Strutture di controllo Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) 3^ parte Com è fatto Arduino Programmazione da USB Nota: Firmware: Insieme

Dettagli

Prof. Capuzzimati Mario - ITIS Magistri Cumacini - Como MICROCONTROLLORE

Prof. 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.

Dettagli

I SENSORI DI PROSSIMITA

I 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à

Dettagli

Cablaggio ponte H con integrato L293B

Cablaggio ponte H con integrato L293B ISTITUTO SUPERIORE Fossati - Da Passano A.S. 2012/2013 Relazione Tecnica Cablaggio ponte H con integrato L293B Redatori: Bianchi Claudia Gjoni Juela Manfredi Francesca Musso Giada Pelati M. Chiara INDICE

Dettagli

Esercitazione Controllo di un motore DC mediante Arduino YUN

Esercitazione Controllo di un motore DC mediante Arduino YUN Percorsi Abilitanti Speciali A.A. 2013/2014 classe abilitazione C320 LABORATORIO MECCANICO TECNOLOGICO Esercitazione Controllo di un motore DC mediante Arduino YUN Pag. 2 SOMMARIO Presentazione delle caratteristiche

Dettagli

N.2 INGRESSI DI TEMPERATURA

N.2 INGRESSI DI TEMPERATURA DISPLAY GRAFICO 128x64 pixels ALIMENTAZIONE TRAMITE BATTERIA Li-Ion INTERNA RICARICABILE DURATA BATTERIA CIRCA 80 ORE DI FUNZIONAMENTO CONTINUO CON TUTTI I SENSORI COLLEGATI PREDISPOSIZIONE PER COLLEGAMENTO

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

All interno di un ATmega16 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multiplexer

All interno di un ATmega16 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multiplexer All interno di un ATmega6 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multipleer ecc. Inoltre troviamo 3 tipi di memoria: l EEPROM che

Dettagli

HP LED Driver Shield. EtherMania di Signorini Marco Via Cadore 9 21046 MALNATE (VA) P.I. 03111760124 REA VA-324137 http://www.ethermania.

HP LED Driver Shield. EtherMania di Signorini Marco Via Cadore 9 21046 MALNATE (VA) P.I. 03111760124 REA VA-324137 http://www.ethermania. HP LED Driver Shield Introduzione Lo HPLEDDriverShield e' uno shield per Arduino (UNO e Mega 2560) che permette di pilotare fino a 4 stringhe di LED High Power. Ogni canale e' dotato di un preciso generatore

Dettagli

Dispositivi di output

Dispositivi di output Dispositivi di output I dispositivi di output sono generalmente i monitor o display (CRT, LCD ) Inizialmente (primi anni '60) i display sono dispositivi di tipo vettoriale (lineare), in grado di tracciare

Dettagli

Relazione finale del progetto Arduino - NIMT

Relazione finale del progetto Arduino - NIMT Relazione finale del progetto Arduino - NIMT Gruppo 3: Salvatore Brunelli, Alessandro Del bono, Luca Guazzi, Davide Petrolini 24 febbraio 2016 La "scatola" di Arduino One può essere considerata come il

Dettagli

1.1 Caratteristiche tecniche

1.1 Caratteristiche tecniche Centrale gestione led RGB art. 3.RGB.LM/S Gentile cliente nel ringraziarla per avere scelto un nostro prodotto la preghiamo di leggere attentamente questo manuale prima di iniziare l installazione. DESCRIZIONE

Dettagli

La piattaforma hardware e software Arduino: parte I. Corso di autoapprendimento

La piattaforma hardware e software Arduino: parte I. Corso di autoapprendimento La piattaforma hardware e software Arduino: parte I (tempo di apprendimento previsto circa 2-3 ore) Introduzione Corso di autoapprendimento Prof. Angelo Monfroglio Questa è la prima parte di un corso di

Dettagli

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style

Corso 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

Dettagli

ELECTRONICS LAB [WITH ARDUINO]

ELECTRONICS LAB [WITH ARDUINO] ELECTRONICS LAB [WITH ARDUINO] >>> DAY #2 Daniele Costarella Salvatore Carotenuto Teatro Carlo Gesualdo / Casina Del Principe Avellino Rights to copy Attribution ShareAlike 3.0 Unported You are free: to

Dettagli

RAPPRESENTAZIONE DELLE INFORMAZIONI

RAPPRESENTAZIONE DELLE INFORMAZIONI RAPPRESENTAZIONE DELLE INFORMAZIONI 1 RAPPRESENTAZIONE DELLE INFORMAZIONI Le informazioni gestite dai sistemi di elaborazione devono essere codificate per poter essere memorizzate, elaborate, scambiate,

Dettagli

STRUMENTO ELETTRONICO DI PESATURA

STRUMENTO ELETTRONICO DI PESATURA STRUMENTO ELETTRONICO DI PESATURA WST MANUALE D INSTALLAZIONE.Pag. 2 MANUALE OPERATIVO.Pag. 10 CODICE SOFTWARE: PWST01 VERSIONE: Rev.0.7 Alimentazione Assorbimento Isolamento Categoria d installazione

Dettagli

ARDUINO. Misurare e controllare. Riccardo Barberi. Dip. di Fisica Univ. Della Calabria Rende (CS), Italy

ARDUINO. Misurare e controllare. Riccardo Barberi. Dip. di Fisica Univ. Della Calabria Rende (CS), Italy ARDUINO Misurare e controllare Riccardo Barberi Dip. di Fisica Univ. Della Calabria Rende (CS), Italy Misurare In ambito scientifico le misure di grandezze fisiche permettono di studiare i fenomeni, verificare

Dettagli

IIS ENZO FERRARI SUSA Anno scolastico: 2013/2014. Tonco Daniel. Classe V EA - Periti in Elettronica e Telecomunicazioni

IIS ENZO FERRARI SUSA Anno scolastico: 2013/2014. Tonco Daniel. Classe V EA - Periti in Elettronica e Telecomunicazioni IIS ENZO FERRARI SUSA Anno scolastico: 2013/2014 Tonco Daniel Classe V EA - Periti in Elettronica e Telecomunicazioni 1 2 Indice: Obiettivo Premessa Prime operazioni (foto allegate) Spiegazione montaggio

Dettagli

Sistema SRT - Unita centrale di raccolta dati

Sistema SRT - Unita centrale di raccolta dati Sistema SRT - Unita centrale di raccolta dati L unità di ricezione dati da antenne remote permette di raccogliere i dati letti da tali antenne. È possibile collegare fino 16 antenne poste ad una distanza

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

OPEN DRIVE OPEN DRIVE

OPEN DRIVE OPEN DRIVE OPEN DRIVE INDICE 1. Configurazione applicazione... 2 1.1. Configurazione del nodo... 2 2. Servizi gestiti... 3 2.1. Descrizione messaggio Profibus... 3 2.1.1. Dati di parametrizzazione: PKW... 3 2.1.2.

Dettagli

CTU Presenta. Contest Automation con Arduino. IK0XBX - Francesco

CTU 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

Dettagli

CODIFICA IMMAGINI IN BIANCO E NERO

CODIFICA IMMAGINI IN BIANCO E NERO Rappresentazione delle immagini Anche le immagini possono essere codificate mediante una sequenza di 0 e 1., questa operazione si chiama digitalizzazione. La prima cosa da fare è dividere l immagine in

Dettagli

Davide Gennaretti, Matteo Nicolini

Davide Gennaretti, Matteo Nicolini Seminario sui Microcontrollori Davide Gennaretti, Matteo Nicolini AA 2003-04 II Facoltà di Ingegneria Elettronica Cesena Cosa sono i microcontrollori? Piccoli computer concentrati in un chip Un Datapath

Dettagli

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

Architettura di una CPU

Architettura di una CPU Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

D sistema d allarme con sensori magnetici

D 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,

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama

Dettagli

Tramite il software ImageJ è possibile effettuare la conta di cellule principalmente in due modi: a) Conta automatica b) Conta manuale

Tramite il software ImageJ è possibile effettuare la conta di cellule principalmente in due modi: a) Conta automatica b) Conta manuale CONTA DI CELLULE: Tramite il software ImageJ è possibile effettuare la conta di cellule principalmente in due modi: a) Conta automatica b) Conta manuale Caso a): CONTA AUTOMATICA Prima di utilizzare la

Dettagli

Classe III specializzazione elettronica. Sistemi automatici

Classe III specializzazione elettronica. Sistemi automatici Macro unità n 1 Classe III specializzazione elettronica Sistemi automatici Reti elettriche Reti elettriche in regime continuo. Generatore, resistori, legge di Ohm. Resistenze in serie e parallelo. Partitore

Dettagli

12 - timer da cucina display a 4 cifre

12 - timer da cucina display a 4 cifre 12 - timer da cucina display a 4 cifre Il display led da 4 cifre utilizzato in questo esercizio e il modello HS410561K-32. Questo modello, e caratterizzato da 4 anodi (uno per ogni cifra) e dai 8 catodi,

Dettagli

EFA 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 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

Dettagli

Alimentatore master. Introduzione

Alimentatore master. Introduzione Alimentatore master Introduzione L alimentatore master è un controllore programmabile che permette all utente di sviluppare sequenze per i convertitori REEL dei tunnel, gestire I/O digitali e analogici

Dettagli

Esame di INFORMATICA Lezione 4

Esame di INFORMATICA Lezione 4 Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Il sottosistema di memorizzazione (memoria) contiene dati + istruzioni, inseriti inizialmente tramite

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

Introduzione alla scheda Arduino/Genuino

Introduzione alla scheda Arduino/Genuino Introduzione alla scheda Arduino/Genuino Francesco Mar6nelli, Sergio Galeani e Daniele Carnevale Università di Roma "Tor Vergata" Dipar6mento di Ingegneria Civile e Ing. Informa6ca DICII 1 FRAMEWORK GENERALE

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Regolatore / Convertitore Tipo VMM

Regolatore / Convertitore Tipo VMM 1/5 istruzioni _variac03-05c Premessa Regolatore / Convertitore Tipo VMM Sintetica descrizione allacciamenti e segnalazioni, Ingressi e Uscite Questa apparecchiatura per esigenze di mercato è stata ingegnerizzata

Dettagli

Gestione dell'interrupt con il microcontrollore ATMega328 (scheda Arduino)

Gestione dell'interrupt con il microcontrollore ATMega328 (scheda Arduino) Gestione dell'interrupt con il microcontrollore ATMega328 (scheda Arduino) Un microcontrollore normalmente esegue le istruzioni nella sequenza definita in fase di programmazione (fig. 1). Comunque, il

Dettagli

± 7 10 mm Risoluzione. 1 mm Emissione LASER rosso (class 2) 30 ms (S85- -Y03) Tempo di risposta 15 45 ms (S85- -Y13) Interfaccia seriale

± 7 10 mm Risoluzione. 1 mm Emissione LASER rosso (class 2) 30 ms (S85- -Y03) Tempo di risposta 15 45 ms (S85- -Y13) Interfaccia seriale Sensore LASER di distanza per misure precise fino a 20 m, con un millimetro di risoluzione e ripetibilità, tramite tecnologia Time of Flight Tecnologia Time of flight LASER rosso visibile in classe 2 per

Dettagli

IT MANUALE UTILIZZO. Manuale utilizzo tastiera Art / 3

IT MANUALE UTILIZZO. Manuale utilizzo tastiera Art / 3 IT MANUALE UTILIZZO Manuale utilizzo tastiera Art. 30006002 / 3 DESCRIZIONE TASTIERA La tastiera LCD permette, ad un utente autorizzato, di effettuare manovre di inserimento e disinserimento impianto,

Dettagli

1. CARATTERISTICHE: Modi di funzionamento (motori 1,8 ) Temperatura di funzionamento da 5 C a 45 C Grado di protezione IP 20 2.

1. CARATTERISTICHE: Modi di funzionamento (motori 1,8 ) Temperatura di funzionamento da 5 C a 45 C Grado di protezione IP 20 2. Descrizione COM 0-0-0 Mod. 0-0-06 AZIONAMENTO PASSO-PASSO MILLISTEP COM 6 IS 0. CARATTERISTICHE: Tensione di alimentazione Corrente di alimentazione max Corrente motore Modi di funzionamento (motori,8

Dettagli

Automobile Bluetooth

Automobile Bluetooth Automobile Bluetooth Ivancich Stefano 17 Maggio 2015 SOMMARIO Di seguito s illustra un progetto di un automobile comandata da uno smartphone tramite la connessione Bluetooth. E stata presa una automobilina

Dettagli

I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E V E R O N A

I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E V E R O N A I S T I T U T O T E C N I C O I N D U S T R I A L E S T A T A L E G U G L I E L M O M A R C O N I V E R O N A PROGRAMMA SVOLTO A.S. 2015/2016 CLASSE 5DL MATERIA: Elettrotecnica, elettronica e automazione

Dettagli

Progetti reali con ARDUINO

Progetti 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

Dettagli

Aritmetica dei Calcolatori

Aritmetica dei Calcolatori Aritmetica dei Calcolatori Nicu Sebe March 14, 2016 Informatica Nicu Sebe 1 / 34 Operazioni su Bit Bit Scienza della rappresentazione e dell elaborazione dell informazione Abbiamo visto come i computer

Dettagli

Week Programmer v2.1 Week Programmer Rev2.1

Week Programmer v2.1 Week Programmer Rev2.1 Week Programmer Rev2.1 Modulo Web Server con 8 relè programmabili 1 Descrizione Il dispositivo permette di controllare 8 di uscite digitali (per contatti/attuatori per domotica o altro: apri-porta, luce,

Dettagli

ARDUINO. Colleghiamolo al PC/MAC - FUNZIONA?

ARDUINO. 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

Dettagli

Il multimetro HP 34401A (1)

Il multimetro HP 34401A (1) Il multimetro HP 34401A (1) Strumento per la misura di - tensione [DC, AC (vero val. efficace,... )]; - corrente [DC, AC (vero val. efficace,... )]; - resistenza (2 e 4 terminali); - frequenza/periodo;

Dettagli

7CH4Q45B_I_0 DATE : 13/05/2013 REV.

7CH4Q45B_I_0 DATE : 13/05/2013 REV. 7CH4Q45B_I_0 DATE : 13/05/2013 REV. 0.0 7CH4Q45B CONTROLLORE QUATTRO QUADRANTI A MICROPROCESSORE PER MOTORI MAGNETI PERMANENTI - MANUALE D USO - - INTRODUZIONE - L azionamento 7CH4Q45B è un controller

Dettagli

I dispositivi di input/output: il mouse

I dispositivi di input/output: il mouse I dispositivi di input/output: il mouse Oggi quasi tutti i computer hanno un dispositivo di puntamento detto mouse Una freccia indica la posizione del mouse sul video e lo spostamento del mouse sul tavolo

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

SIMULATORE DI SEMAFORO INTELLIGENTE DL 2121RM. Laboratorio di Automazione

SIMULATORE DI SEMAFORO INTELLIGENTE DL 2121RM. Laboratorio di Automazione SIMULATORE DI SEMAFORO INTELLIGENTE DL 2121RM Laboratorio di Automazione DL 2121RM Descrizione del modulo DL 2121RM Il modulo DL 2121RM è un unità didattica che simula un impianto semaforico. Il modulo

Dettagli

Come è fatto un computer

Come è fatto un computer Come è fatto un computer COMPUTER = HARDWARE + SOFTWARE Hardware = Ferramenta Ovvero la parte elettronica e meccanica del PC Software = i programmi TIPI DI COMPUTER mainframe workstation server IL COMPUTER

Dettagli

5^ 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) 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

Dettagli

SCHEDA PRODOTTO NDA LIRA DIGITAL Interfaccia digitale di un inverter trifase per New Decors Art Srl

SCHEDA PRODOTTO NDA LIRA DIGITAL Interfaccia digitale di un inverter trifase per New Decors Art Srl Modello Codice SCHEDA PRODOTTO NDA LIRA DIGITAL Interfaccia digitale di un inverter trifase per New Decors Art Srl NDA LIRA DIGITAL Note sulle Specifiche Tecniche Il prodotto NDA LIRA DIGITAL è una centralina

Dettagli

KB Centralina bicanale multistandard Luglio 2005

KB Centralina bicanale multistandard Luglio 2005 KB506-05 Centralina bicanale multistandard Luglio 2005 Funziona con chiavi elettroniche DALLAS, DENVER, KEYBIT, KEYVIP,DKU, con tastiere DIGICAP, DIGITEN, MICROTEN e con lettori di prossimità PROXYPASS

Dettagli

Curcio Davide matr /7/2016

Curcio Davide matr /7/2016 Progetto: Rilevatore di temperatura, umidità e intensità luminosa tramite scheda Arduino, e gestione dati tramite database SQL. 1. Premessa: Si intende realizzare un sistema che rilevi la temperatura,

Dettagli

Manuale d uso e manutenzione

Manuale 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.

Dettagli

LA GESTIONE DELLA I/O

LA GESTIONE DELLA I/O LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono

Dettagli

CONTASECONDI CON DISPLAY A 7 SEGMENTI ARDUINO LIKE

CONTASECONDI 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

Dettagli

Strutture di controllo e cicli

Strutture di controllo e cicli Appendice B Strutture di controllo e cicli Le condizioni I cicli Le interruzioni A p p e n d i c e B Il microcontrollore della scheda Arduino, opportunamente programmato, è in grado di prendere decisioni

Dettagli

Utilizzo di Fiery WebSpooler

Utilizzo di Fiery WebSpooler 20 Utilizzo di Fiery WebSpooler Fiery WebSpooler duplica molte delle funzioni e delle caratteristiche di Command WorkStation. WebSpooler consente di controllare e gestire i lavori da più piattaforme su

Dettagli

TeeJet 834 MANUALE OPERATIVO E DI PROGRAMMAZIONE - v Pag 1 di 8

TeeJet 834 MANUALE OPERATIVO E DI PROGRAMMAZIONE - v Pag 1 di 8 834 MANUALE 834 TeeJet 834 MANUALE OPERATIVO E DI PROGRAMMAZIONE - v1.02 - Pag 1 di 8 Funzione Azione/i Lettura iniziale Lettura successiva Computer: procedura di accensione Accensione Premere il tasto

Dettagli

// Controllo remoto 05/05/2012 // poichè sono ancora ai primi passi ho usato // a larghe mani idee e listati di altri. Ringrazio tutti loro.

// Controllo remoto 05/05/2012 // poichè sono ancora ai primi passi ho usato // a larghe mani idee e listati di altri. Ringrazio tutti loro. // Controllo remoto 05/05/2012 // poichè sono ancora ai primi passi ho usato // a larghe mani idee e listati di altri. Ringrazio tutti loro. // Librerie necessarie per il progetto #include #include

Dettagli

Dipartimento di Ingegneria Industriale e dell Informazione. Laboratorio di acquisizione dati

Dipartimento di Ingegneria Industriale e dell Informazione. Laboratorio di acquisizione dati Dipartimento di Ingegneria Industriale e dell Informazione 1 Obiettivi dell attività Realizzazione di semplici sistemi di acquisizione dati da rivelatori, di sistemi di controllo e programmazione remota

Dettagli

IO LOG SIELCO SISTEMA DI ACQUISIZIONE DATI CARATTERISTICHE PRINCIPALI DESCRIZIONE GENERALE SISTEMI

IO LOG SIELCO SISTEMA DI ACQUISIZIONE DATI CARATTERISTICHE PRINCIPALI DESCRIZIONE GENERALE SISTEMI IO LOG SISTEMA DI ACQUISIZIONE DATI GENERALE CARATTERISTICHE PRINCIPALI La linea IOlog è costituita da un ampia gamma di moduli di ingresso/uscita e di convertitori seriali isolati disponibili in tre diverse

Dettagli

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Il concetto di FILE FILE: sequenza di byte conosciuta nel computer

Dettagli

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

Il 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

Dettagli

DOMOTICA. Developed by SANTAMARIA PASQUALE VITIELLO FABIO

DOMOTICA. Developed by SANTAMARIA PASQUALE VITIELLO FABIO DOMOTICA Developed by SANTAMARIA PASQUALE 0108001321 VITIELLO FABIO 0108001383 INTRODUZIONE Il termine domotica deriva dal termine francese domtique,contrazione della parola latina domus (casa) e automatique

Dettagli

Interfacciamento di periferiche I/O al μp 8088

Interfacciamento di periferiche I/O al μp 8088 Interfacciamento di periferiche I/O al μp 8088 5.1 Principali segnali della CPU 8086 5.2 Periferiche di I/O e loro gestione 5.3 Collegamento di periferiche di input 5.4 Collegamento di periferiche di output

Dettagli

24 - Possibili approfondimenti

24 - Possibili approfondimenti 24 - Possibili approfondimenti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Modulo: Elementi di Informatica

Modulo: Elementi di Informatica ARCHITETTURA DI VON NEUMANN Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Fisica medica e statistica Modulo: Elementi di Informatica A.A. 2009/10 Lezione

Dettagli

SIMULATORE DI PARCHEGGIO A DUE ZONE DL 2120RM. Laboratorio di Automazione

SIMULATORE DI PARCHEGGIO A DUE ZONE DL 2120RM. Laboratorio di Automazione SIMULATORE DI PARCHEGGIO A DUE ZONE DL 2120RM Laboratorio di Automazione DL 2120RM Descrizione del modulo DL 2120RM Il modulo DL 2120RM è un unità didattica che riproduce in scala ridotta un parcheggio

Dettagli

8^ parte : Pilotare Motori passo-passo bipolari usando l integrato L298N. Author: Ing. Sebastiano Giannitto (ITIS M.

8^ parte : Pilotare Motori passo-passo bipolari usando l integrato L298N. Author: Ing. Sebastiano Giannitto (ITIS M. 8^ parte : Pilotare Motori passo-passo bipolari usando l integrato L298N Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) Come pilotare un motore passo passo usando l integrato L298N Nelle nostre

Dettagli

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni

Tecnologie per il web e lo sviluppo multimediale. Rappresentazione delle informazioni Tecnologie per il web e lo sviluppo multimediale Rappresentazione delle informazioni Luca Pulina Corso di Laurea in Scienze della Comunicazione Università degli Studi di Sassari A.A. 2015/2016 Luca Pulina

Dettagli

Relazione progetto Arduino

Relazione 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

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

1043/277. Sch 1043/277

1043/277. Sch 1043/277 Sch 1043/277 1043/277 IINTERFACCIIA SERIIALE PER RIIVELATORII CONVENZIIONALII La scheda di interfaccia seriale 1043/277 consente il collegamento di rivelatori o contatti convenzionali non analogici (pulsanti,

Dettagli

COMPONENTI PER L ELETTRONICA INDUSTRIALE E IL CONTROLLO DI PROCESSO. Misuratori ed indicatori digitali da pannello DAT9550, DAT8050 e SERIE DAT700

COMPONENTI PER L ELETTRONICA INDUSTRIALE E IL CONTROLLO DI PROCESSO. Misuratori ed indicatori digitali da pannello DAT9550, DAT8050 e SERIE DAT700 COMPONENTI PER L ELETTRONICA INDUSTRIALE E IL CONTROLLO DI PROCESSO Misuratori ed indicatori digitali da pannello DAT9550, DAT8050 e SERIE DAT700 La serie di misuratori e indicatori digitali è costituita

Dettagli

14^ 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) 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

Dettagli

Tesina di Maturità. Gianfriddo Giuseppe Classe: 5^B I.T.I.S Indirizzo: Elettronica ed elettrotecnica Anno: 2014/15. Autore: Gianfriddo Giuseppe

Tesina 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,

Dettagli

Questo sistema si è poi diffuso in tutto il mondo, soprattutto in ambito didattico e hobbistico. Arduino mette a disposizione:

Questo sistema si è poi diffuso in tutto il mondo, soprattutto in ambito didattico e hobbistico. Arduino mette a disposizione: Arduino L utilizzo di un microcontrollore presenta talvolta alcune difficoltà per chi si avvicina per la prima volta alla progettazione. I costruttori, per agevolare il lavoro ai progettisti, in genere

Dettagli

Modulo di uscite di sicurezza AS-i con slave di diagnostica

Modulo di uscite di sicurezza AS-i con slave di diagnostica uscite di sicurezza, ingressi di sicurezza e ingressi standard in un unico modulo 4 x uscite di sicurezza elettroniche veloci ingressi di sicurezza di -canali, regolabile per contatti senza potenziale

Dettagli

Programmazione Orientata agli Oggetti

Programmazione Orientata agli Oggetti Programmazione Orientata agli Oggetti Lezione 13 La programmazione ad oggetti si basa su due principi fondamentali ereditarietà polimorfismo Queste due proprietà consentono di definire nuovi tipi di dato

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Soluzioni a 8 bit per il bus del PIC18F8x20

Soluzioni a 8 bit per il bus del PIC18F8x20 Soluzioni a 8 bit per il bus del PIC18F8x20 Questo schema necessita di adattamenti software (e quindi non è ottimizzato per la velocità di esecuzione del ciclo di bus esterno) e non sfrutta tutto lo spazio

Dettagli

TCIP0202 SCHEDA TELECONTROLLO IP

TCIP0202 SCHEDA TELECONTROLLO IP TCIP0202 SCHEDA TELECONTROLLO IP Doc v1.0 La scheda Telecontrollo IP è un dispositivo che permette il controllo a distanza di ingressi e di uscite tramite collegamento di rete ETHERNET basata su protocollo

Dettagli

Corso di Informatica Applicata. Lezione 7. Università degli studi di Cassino

Corso di Informatica Applicata. Lezione 7. Università degli studi di Cassino Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 7 Ing. Saverio De Vito e-mail: saverio.devito@portici.enea.it Tel.: +39

Dettagli

Ma andiamo un pò più in profondità... ci sono altre opzioni che forniscono più flessibilità :)

Ma andiamo un pò più in profondità... ci sono altre opzioni che forniscono più flessibilità :) PWM ed oltre ovvero prendiamo confidenza con il PWM di Arduino Duemilanove La modulazione di larghezza di impulso (Pulse Width Modulation ) può essere usata da Arduino in diversi modi. In questo tutorial

Dettagli

Relazione attività di laboratorio - Arduino

Relazione attività di laboratorio - Arduino Relazione attività di laboratorio - Arduino Bertini Filippo, Feher Francesco, Monti Lucio, Ungari Alessandro 23 febbraio 2016 Contenuti teorici preliminari,scheda e codice Sono due le parti fondamentali

Dettagli