Arduino - II parte. Laboratorio di Segnali e Sistemi II - Arduino-II parte
|
|
- Assunta Manfredi
- 7 anni fa
- Visualizzazioni
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
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
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
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
DettagliARDUINO. 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
DettagliPROGRAMMA 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
DettagliPer 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
DettagliProgrammazione 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
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.
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à
DettagliCablaggio 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
DettagliEsercitazione 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
DettagliN.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
DettagliGestione 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)
DettagliAll 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
DettagliHP 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
DettagliDispositivi 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
DettagliRelazione 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
Dettagli1.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
DettagliLa 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
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
DettagliELECTRONICS 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
DettagliRAPPRESENTAZIONE 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,
DettagliSTRUMENTO 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
DettagliARDUINO. 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
DettagliIIS 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
DettagliSistema 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
DettagliIL 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
DettagliOPEN 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.
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
DettagliCODIFICA 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
DettagliDavide 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
DettagliUtilizza 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
DettagliArchitettura 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
DettagliCorso 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
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,
DettagliInput/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
DettagliInformatica/ 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
DettagliTramite 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
DettagliClasse 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
Dettagli12 - 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,
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
DettagliAlimentatore 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
DettagliEsame 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
DettagliLinguaggio 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
DettagliIntroduzione 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
DettagliVBA è 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?
DettagliRegolatore / 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
DettagliGestione 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
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
DettagliIT 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,
Dettagli1. 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
DettagliAutomobile 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
DettagliI 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
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
DettagliAritmetica 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
DettagliWeek 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,
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
DettagliIl 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;
Dettagli7CH4Q45B_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
DettagliI 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
DettagliIl 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
DettagliSIMULATORE 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
DettagliCome è 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
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
DettagliSCHEDA 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
DettagliKB 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
DettagliCurcio 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,
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.
DettagliLA 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
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
DettagliStrutture 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
DettagliUtilizzo 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
DettagliTeeJet 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. // Librerie necessarie per il progetto #include #include
DettagliDipartimento 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
DettagliIO 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
DettagliProgramma 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
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
DettagliDOMOTICA. 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
DettagliInterfacciamento 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
Dettagli24 - 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
DettagliModulo: 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
DettagliSIMULATORE 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
Dettagli8^ 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
DettagliTecnologie 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
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
DettagliRappresentazione 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
Dettagli1043/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,
DettagliCOMPONENTI 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
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
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,
DettagliQuesto 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
DettagliModulo 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
DettagliProgrammazione 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
DettagliUnità 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
DettagliSoluzioni 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
DettagliTCIP0202 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
DettagliCorso 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
DettagliMa 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
DettagliRelazione 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