Piattaforma Arduino/microcontrollori Atmel. Ing. Cozzolino Francesco. www.ingegnercozzolino.altervista.org



Documenti analoghi
Tutorial progetti.tech. Ing. Cozzolino Francesco

7^ parte : Acquisizione della temperatura con LM35 e visualizzazione su display LCD. Author: Ing. Sebastiano Giannitto (ITIS M.

Corso Base Arduino ed Elettronica

Indruduzione... 1 Il modulo Bluetooth HC Il firmware... 3 Collegamento della scheda... 4 Software PC e l applicazione Android...

D sistema d allarme con sensori magnetici

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

CORSO ARDUINO. Giulio Fieramosca Stefano Panichi. Corsi GOLEM 2014

Autoware Ladder Tool (per Arduino ) Basic Tutorial

Progetto Esami Di Stato Anno 2014/2015

16/01/2009 AGGIORNAMENTO SOFTWARE LS7 AGGIORNAMENTO SOFTWARE LS7

MERIDESTER SOFTWARE DI COMUNICAZIONE PER PC

TITOLO ESPERIENZA: Progetto Arduino GPS OBIETTIVO: Realizzare tramite Arduino un sistema di localizzazione GPS

Manuale Software e Hardware Control lights music 1.0. Sommario. Introduzione

12 - timer da cucina display a 4 cifre

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

Arduino: Programmazione

TERMOMETRO LCD BASATO SUL TRASDUTTORE DI TEMPERATURA ANALOGICO LM 35

AGGIORNAMENTO SOFTWARE LS7 VERSIONE 5.13

Una volta inseriti tutti i parametri necessari premere.

CONTASECONDI CON DISPLAY A 7 SEGMENTI ARDUINO LIKE

Invio SMS. DM Board ICS Invio SMS

Guida Rapida all Installazione WLN10 e WLN10HS Server Wireless NMEA

Installazione driver per connessione inverter al PC

Tutorial 3DRoom. 3DRoom

Manuale di programmazione BerMar_Drive_Software

30 giorni di prova gratuiti, entra nel sito scarica e installa subito mypckey

IRSplit. Istruzioni d uso 07/10-01 PC

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

DomKing v Indice - Installazione... pag.2. Guida al programma... pag.4. Funzione Secondo monitor... pag.4. Funzione Orologio... pag.

INTERNET EXPLORER Guida introduttiva CAPITOLO 1 Fig. 1

Guida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico

11^ parte : Come gestire i servomotori con Arduino. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

DESKTOP. Uso del sistema operativo Windows XP e gestione dei file. Vediamo in dettaglio queste parti.

Installazione di Zelio Soft 2 su Microsoft Windows Vista

Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta

Manuale d Uso della Centralina A Pulsanti e Led Spia

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Guida rapida alla prima installazione

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

1 ABILITAZIONE PORTA USB

Permette di visualizzare l archivio di tutte le registrazioni e programmazione effettuate.

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA

Controllare un nastro trasportatore fischertechnik con Arduino

Aggiungere le funzionalità ACN in Iatros

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

SIMULAZIONE CIRCUITI LOGICI CON LOGISIM

Laboratorio base di: 19/11/2013. Francesca Biancani. Ravenna, 10 dicembre Come si accede a Statistics explorer

Panoramica Masergy Communicator

File, Modifica, Visualizza, Strumenti, Messaggio

Prima di iniziare l installazione, controlla che tutte le parti necessarie siano presenti. La scatola dovrebbe contenere:

Avvio di Internet ed esplorazione di pagine Web.

EM Camera Web con microfono

PROCEDURA DI INSTALLAZIONE DEI SOFTWARE E DEL DRIVER USB AIM

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

LEXTEL SPA GUIDA AL RINNOVO DEI CERTIFICATI DIGITALI

Per utenti Windows XP

Connessione di RStone al computer tramite RKey

4MODEM-ADSL. Guida. Rapida. 1 Trasmettitore Radio 2 Gateway Ethernet 3 Interfacce Ottiche e/o Trasformatore Amperometrico 4 Trasformatore per Gateway

Guida rapida Vodafone Internet Box

COME COLLEGARSI DA REMOTO AD UN PLC S7-300/400 via MPI Indice

Alimentazione Switching con due schede ATX.

ilightproject for ipod Touch V.1.00 by - info@germinara.it Il software ha una duplice funzionalita':

Provincia di Siena UFFICIO TURISMO. Invio telematico delle comunicazioni relative alle Agenzie di Viaggio

GUIDA RAPIDA. MICRO TELECAMERA PENNA DVR SU MEMORIE MICRO SD (nuovo modello con sovraimpressione di data e ora) (versione manuale 17/05/2010)

Guida per l'installazione SENSORE PER RADIOVIDEOGRAFIA RX4. Responsabile di redazione: Francesco Combe Revisione: Ottobre 2012

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

P-660HW-D Series. Guida Rapida g Wireless Gateway ADSL porte. Versione /2006 Edizione 1

Manuale Operativo per la firma digitale

Manuale IT_VNA by IZ1PMX

GUIDA ALLE SOLUZIONI

MANUALE EDICOLA 04.05

SISHOME 1.0 MANUALE SOFTWARE

MODULO 02. Iniziamo a usare il computer

Presentazione della pratica online

MANUALE UTENTE. Computer Palmare WORKABOUT PRO

ZIMO. Decoder per accessori MX81. Manuale istruzioni del. nella variante MX81/N per il formato dei dati NMRA-DCC

Progetto di Domotica


Dispensa di Informatica I.1

Manuale Operativo per la firma digitale

Manuale Terminal Manager 2.0

Il web server Apache Lezione n. 3. Introduzione

AGGIUNTA O SOSTITUZIONE DEL SISTEMA DI SUPERVISIONE SU UN FORNO A RULLI PER PIASTRELLE CERAMICHE.

P-661HW-D Series. Guida Rapida g Wireless Security Gateway ADSL porte. Versione 3.40 Edizione 1 3/2006

Manuale d uso Jump Starter

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

ITALIANO. Amministratore Tasto Macro Manuale d Uso

Benvenuti nella presentazione del nuovo catalogo per i pezzi di ricambio. Sp@re P@rts INDICE

COMBINATORE TELEFONICOMOD. KIM10GSM Istruzioni Base

Attivazione della connessione PPTP ADSL

Guida alla registrazione on-line di un DataLogger

IL CONTATORE ELETTRONICO:

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

Gui Gu d i a d ra r p a i p d i a V d o a d f a one Int fone In e t r e net rnet Box Key Mini

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Collegamento e funzionamento di un normale TNC con il D-RATS

Il presente supporto consente la gestione delle gare Giovanili. Premere il pulsante Immissione Dati Gara

ESERCITAZIONI PRATICHE: Ø Creazione di un decoder BCD/DEC con porte logiche. Ø Esercitazione con decoder 4511 e display 7 segmenti.

Transcript:

Ing. Cozzolino Francesco www.ingegnercozzolino.altervista.org 1

Che cos è Arduino? Arduino è una piattaforma elettronica di piccole dimensioni con un microcontrollore ATMEL montato sopra e una circuiteria di contorno, inventata da un gruppo di persone tra cui l Italiano Massimo Banzi, utile per creare rapidamente prototipi di impianti di automazione civili ed industriali o di creare circuiti di comando a distanza. Spesso utilizzato per scopi hobbistici e didattici, si sta diffondendo rapidamente nelle scuole per la sua semplicità sia nei collegamenti elettrici che nella programmazione software. Per quest ultimo aspetto sono presenti in rete una miriade di programmi e progetti già svolti. Tutto il software a corredo di Arduino è libero, e gli schemi circuitali sono distribuiti come hardware libero. In questo numero inizieremo a presentare un primo semplice progettino con tanto di programma servendoci di una scheda Arduino UNO il cui costo è di circa 20 euro. In questo numero mostreremo anche come si scarica il software ed il suo ambiente di sviluppo. DOWNLOAD DEL SOFTWARE ED INSTALLAZIONE Il software di Arduino è scaricabile dal sito www.arduino.cc nella sezione download. Se si utilizza come sistema operativo Windows, allora cliccare su windows installer, come si vede in figura. 2

Seguendo tutti i passi, l installazione è estremamente semplice Far lampeggiare un Diodo Led (Per fare questa operazione è necessario avere collegato il microcontrollore Arduino) In questa prima lezione ci proponiamo di collegare un circuito e di scrivere un programma che faccia lampeggiare un diodo led, per fare ciò ci occorrono: Modulo Arduino UNO Cavo di collegamento USB tra Arduino e computer Diodo led Step 1) Collegamento del diodo su Arduino tra il piedino 13 e GND (massa). Attenzione al corretto collegamento 3

Step 2) Per scrivere il programma fare click su start, e poi cliccare sull icona di Arduino, a quel punti si apre la schermata indicata a destra Step 2) Salvare il file con nome ed iniziare a scrivere il seguente programma: void setup () { pinmode(13,output); void loop () { digitalwrite(13,high); 4

delay(3000); digitalwrite(13,low); delay(1000); In una delle prossime lezioni parleremo diffusamente del linguaggio di programmazione, per adesso ci interessa dare la possibilità di capire la semplicità d uso e le potenzialità di Arduino. Ricordando che la parola delay significa ritardo, si può notare che all interno delle parentesi ci sono dei numeri, prima 3000 e poi 1000. Rappresentano il tempo espresso in millisecondi per cui il led resta acceso e spento. In questo caso il diodo led rimane acceso 3 secondi (sarebbero 3000 millisecondi), e spento 1 secondo. Problemi che possono nascere: 1. Per digitare la parentesi graffa nella scrittura dei programmi premere la freccia shift, alt gr e la parentesi quadra Step 3) Una volta scritto il programma si può compilare per vedere se ci sono errori e caricare su microcontrollore Se andrà tutto a buon fine il led si mette a lampeggiare e, mi permetto, il vostro cuore inizierà a battere più forte. Complimenti, siete appena entrati in un mondo nuovo e tutto da scoprire, da dove potete partire e realizzare tante bellissime applicazioni 5

Un ultima nota: può essere che durante il caricamento del software, il computer dia questo errore: Bisogna settare la porta seriale COM giusta. E un operazione semplice, basta seguire le indicazioni che vengono fuori man mano. Semaforo semplice con 3 led In questo secondo esercizio comandiamo tre led che in si accenderanno e spegneranno in sequenza simulando un semaforo. Occorrono 3 led, di colore rosso, giallo e verde, un saldatore, dello stagno ed un filo nero per collegarli al gnd 6

Di seguito il software. Si consiglia di provare a scriverlo senza guardare questo manuale La definizione dei 3 ingressi, denominati verde, giallo e rosso int verde=10; int giallo=11; int rosso=12; La dichiarazione come ingressi void setup (){ pinmode(rosso,output); //inserire led rosso al pin 12// pinmode(verde,output); //inserire led verde al pin 10// pinmode(giallo,output); //inserire led giallo al pin 11// Il ciclo del programma void loop () { digitalwrite(giallo,low); digitalwrite(rosso,high); delay(2000); digitalwrite(rosso,low); digitalwrite(verde,high); delay(2000); digitalwrite(verde,low); digitalwrite(giallo,high); delay(1000); 7

Si consiglia di cambiare i pin di ingresso, il tempo di lampeggiamento ed eventualmente il nome degli ingressi. Il tutto a mò di esercitazione In questo numero vedremo come gestire un ingresso ed un uscita digitale andando a comandare un diodo led tramite un pulsante. Tutto l hardware di cui abbiamo bisogno è indicato in figura: scheda Arduino, Resistenza da 1 k, pulsante, diodo led, bread board, cavetti Il circuito è puramente didattico, rimandiamo al prossimo numero qualche applicazione più sofisticata. Oggi comandiamo semplicemente un led tramite pulsante. Il diodo costituisce l uscita digitale mentre il pulsante rappresenta l ingresso al nostro sistema. Il software da caricare su ATMEL montato su scheda Arduino è il seguente #define LED 13 // LED collegato al pin digitale 13 #define BUTTON 7 // pin di input dove è collegato il pulsante int val = 0; // si userà val per conservare lo stato del pin di input void setup() { pinmode(led, OUTPUT); // imposta il pin digitale come output pinmode(button, INPUT); // imposta il pin digitale come input void loop() { val = digitalread(button); // legge il valore dell'input e lo conserva 8

// controlla che l'input sia HIGH (pulsante premuto) if (val == HIGH) { digitalwrite(led, HIGH); //accende il led else { digitalwrite(led, LOW); //spegne il led Comandiamo un display a Cristalli Liquidi (LCD) #include <LiquidCrystal.h> Scriviamo il software // initialize the library with the numbers of the interface pins LiquidCrystal lcd (12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); 9

// Print a message to the LCD. lcd.print("buon Lavoro!"); void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setcursor(0, 1); // print the number of seconds since reset: lcd.print(millis()/1000); Interruttore Battimano L interruttore battimani è un divertente progetto ce consente di spegnere e accendere la luce della tua stanza con il semplice battito delle mani Principio di funzionamento Un microfono rileva il battito delle mani trasformandolo attraverso la sua circuiteria in un segnale elettrico apprezzabile dal microcontrollore presente sulla scheda Arduino uno, in quale programmato come di seguito sarà in grado una volta percepito il giusto livello elettrico dal microfono piloterà la scheda di potenza facendo accendere e spegnere la lampada. Lista materiale 10

Realizzazione pratica Alimentare il modulo microfonico dalla scheda Arduino uno a 5 volt e collegare il pin di segnale al pin A0 della scheda Arduino uno come riportato in figura Nb nella schedina microfonica funduino vi è un dotazione un cavetto con colori errati dove il nero è il positivo e quindi va a +5 il giallo è il negativo e va a GND ed il rosso è il segnale e va al pin A0. Passo numero due : adesso bisogna creare la schedina di potenza che controlla la lampada (interfaccia con il microcontrollore) riportiamo sotto lo schema per realizzarla su millefori assemblando i componenti come da schema 11

Una volta realizzata la schedina con un risultato simile a quella sotto in figura non ci rimane che cablarla anche essa con la scheda arduino uno come indicato nello schema sopra Cablare il tutto nel seguente modo : 12

Passo numero tre Ora non ci rimane altro che caricare il seguente programma al microcontrollore di Arduino uno const int analogpin = A0; const int sensib = 600; void setup() { // initialize the LED pin as an output: pinmode(13, OUTPUT); // initialize serial communications: Serial.begin(9600); void loop() { int analogvalue = analogread(analogpin); 13

if (analogvalue > sensib) { PORTB^=B100000; delay(100); Serial.println(analogValue); delay(1); In fine non rimane che collaudare il nostro interruttore battimano. Buon Divertimento Circuito apriscatola x gatti Versione con motore passo passo (Attenzione questo circuito benché perfettamente funzionante può essere utilizzato per imparare a comandare il motore passo passo con Arduino, per quanto riguarda il progetto dell apriscatola in se si consiglia di utilizzare un servomotore) Lista materiale Item Componente Descrizione Quantità 1 Modulo Arduino + cavo 3 Pacco Batterie o PC 9 V 4 fotoresistenza 1 14

5 Resistenza limitatrice 100 1 7 Motore passo passo 1 8 Driver del motore passo passo Scheda elettronica 1 9 Basetta millefori 12 morsetti per millefori 13 Cavi Rosso + nero + Vari colori 15 Ciotola Collegamento Arduino motore passo passo 15

16

17

Software int dirpin = 2; int stepperpin = 3; const int fotoresistenza = 0 ; void setup() { pinmode(fotoresistenza,input); pinmode(dirpin, OUTPUT); pinmode(stepperpin, OUTPUT); Serial.begin(9600); void step(boolean dir,int steps){ digitalwrite(dirpin,dir); delay(50); for(int i=0;i<steps;i++){ digitalwrite(stepperpin, HIGH); delaymicroseconds(100); digitalwrite(stepperpin, LOW); delaymicroseconds(100); void loop(){ Serial.println(analogRead(fotoresistenza)); int lettura=analogread(fotoresistenza); 18

if(lettura > 300){ step(true,1600); delay(500); step(false,1600); delay(5000); Versione servomotore Lo schema elettrico è il seguente: 19

Mentre il software: #include <Servo.h> Servo myservo; // creato servo int fotoresistenza = A0; // analog pin used to connect the potentiometer int rif= 400; void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object void loop() { int analogvalue = analogread (fotoresistenza); if(analogvalue>rif) { myservo.write(90); delay(15); else { myservo.write(0); 20

Auto parking realizzato con conteggio e visualizzazione numero di auto Lista materiale Item Componente Descrizione Quantità 1 Modulo Arduino 2 Cavo Collegamento PC - Arduino 3 Pacco Batterie 9 V 4 Fusibile x batteria 1 A 5 Led IR Tx Sensore passaggio auto 4 6 Fototransistor Rx // 4 7 Resistenza limitatrice 100 2 8 Resistenza 1 k 2 9 LCD 2 x 16 caratteri 1 10 Trimmer 1 k 1 11 Diodo Led Rosso + Verde 2 12 Basetta millefori 13 morsetti per millefori 14 Mammut 15 Cavi Rosso + nero + Vari colori 16 Cavo Flat 12 cavi 17 Struttura in legno di supporto 23 Strip maschi + femmine 21

22

Tabella 1 mappatura PIN Segnali Morsettiera - Colore # PIN Arduino I/O Descrizione #Morsettiera Colore 0 IN Fotocellula 1 0 Blu 1 IN Fotocellula 2 1 giallo 2 OUT Invio dati verso LCD All LCD Bianco/Arancio 3 OUT // // Arancio 4 OUT // // Bianco/Blu 5 OUT // // Bianco 11 OUT Comunicaz. Con LCD // Bianco / rosso 12 OUT // // Bianco 10 OUT Accensione LED Verde 10 Verde 13 OUT Accensione LED Rosso 13 Bianco/Verde #define BUTTON_AVANTI 10 #define BUTTON_INDIETRO 9 #define RED_LED 13 #define GREEN_LED 12 int Contatore = 0; int StatoPulsanteAvanti = 0; // conta il numero di volte che il pulsante è premuto buttonpushcounter // stato corrente del pulsante int StatoPulsantePrecedenteAvanti = 0; int StatoPulsanteIndietro = 0; // stato precedente del pulsante // stato corrente del pulsante int StatoPulsantePrecedenteIndietro = 0; #include <LiquidCrystal.h> 23

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { pinmode(10, INPUT); pinmode(9, INPUT); pinmode(13,output); pinmode(12,output); Serial.begin (9600); // pinmode(9, OUTPUT); //digitalwrite(9, 0); // start with the "dot" off void loop() { StatoPulsanteAvanti = digitalread(button_avanti); conserva // legge il valore dell'input e lo StatoPulsanteIndietro = digitalread(button_indietro); if ((StatoPulsanteAvanti!= StatoPulsantePrecedenteAvanti) (StatoPulsanteIndietro!= StatoPulsantePrecedenteIndietro ) ) { // compara lo stato del pulsante attuale con il precedente if (StatoPulsanteAvanti == HIGH) { // se lo stato è cambiato incrementa il contatore // se lo stato corrente è alto, il pulsante è passato da off a on Contatore++; delay(200); Serial.print("Disponibilita: "); //invio su porta seriale il dato 24

Serial.println(Contatore); lcd.clear(); lcd.print("disponibilità: "); lcd.print(contatore); else if(statopulsanteindietro == HIGH) { // se lo stato è cambiato incrementa il contatore // se lo stato corrente è alto, il pulsante è passato da off a on Contatore--; lcd.clear(); lcd.print("disponibilita: "); lcd.print(contatore); Serial.print("Disponibilita: "); //invio su porta seriale il dato Serial.println(Contatore) StatoPulsantePrecedenteIndietro = StatoPulsanteIndietro; StatoPulsantePrecedenteAvanti = StatoPulsanteAvanti; if (Contatore ==0) { Serial.println("OCCUPATO"); digitalwrite(red_led,1); digitalwrite(green_led,0); // Serial.println("mi riavvio"); else { digitalwrite(red_led,0); 25

digitalwrite(green_led,1); if (Contatore <0) { Serial.println("OCCUPATO"); Contatore = 99; StatoPulsanteIndietro = 0; StatoPulsantePrecedenteIndietro = 0; // Serial.println("mi riavvio"); if (Contatore >=99) { Contatore = 1; StatoPulsanteAvanti = 0; StatoPulsantePrecedenteAvanti = 0; // Serial.println("mi riavvio"); // stampa sulla console "mi riavvio" // Serial.print( Contatore ); 26

Tutor di velocità Lista materiale Item Componente Descrizione Quantità 1 Modulo Arduino 2 Cavo Collegamento PC - Arduino 3 Pacco Batterie 9 V 5 Led IR Tx Sensore passaggio auto 2 6 Fototransistor Rx // 2 7 Resistenza limitatrice 100 2 8 Resistenza 1 k 2 9 LCD 2 x 16 caratteri 1 10 Trimmer 1 k 1 11 Diodo Led Rosso 1 12 Basetta millefori 13 morsetti per millefori 14 Mammut 15 Cavi Rosso + nero + Vari colori 17 Struttura in legno di supporto 18 Macchinina 19 Saldatore + Stagno 20 Pistola a caldo + ricariche 21 Multimetro Digitale 27

28

Tabella 1 mappatura PIN Segnali Morsettiera - Colore # PIN I/O Descrizione #Morsettiera Colore 0 IN Fotocellula 1 0 Blu 1 IN Fotocellula 2 1 giallo 2 OUT Invio dati verso LCD All LCD Bianco/Arancio 3 OUT // // Arancio 4 OUT // // Bianco/Blu 5 OUT // // Bianco 11 OUT Comunicaz. Con LCD // Bianco / rosso 12 OUT // // Bianco 13 OUT Accensione LED Rosso 13 Bianco/Verde const int rx1=5; #define led 13 const int rx2=2; #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { lcd.begin(16, 2); pinmode(rx1,input); pinmode(rx2,input); pinmode(led,output); 29

Serial.begin(9600); void loop() { double spazio=0.0031; double tempo=0.0; double velocita=0.0; double t1=0.0; double t2=0.0; int t=1; //Serial.println(analogRead(rx2)); if(analogread(rx1)<100) { t1=millis(); while(t>0) { if(analogread(rx2)<100) { t2=millis(); //prendo il secondo tempo tempo=(t2-t1)/3600000; velocita=spazio/tempo; lcd.clear(); lcd.print("velocita': "); 30

lcd.print(velocita); lcd.setcursor(10,1); lcd.print(" km/h"); Serial.print("velocita': "); //invio su porta seriale il dato Serial.print(velocita); Serial.println(" km/h"); t--; //decremento in modo che t==0 ed esce dal while digitalwrite(led,low); if(velocita>30){ lcd.clear(); lcd.print("velocita': "); lcd.print(velocita); lcd.print(velocita); lcd.setcursor(4,1); lcd.print("rallenta!! "); digitalwrite(led,high); else digitalwrite(led,low); Serial.println("Rallenta "); 31

Serial.flush(); Accensione segnale intelligente Questo progetto prevede di comandare un segnale stradale variandone il valore di velocità visualizzata in caso di pioggia. Il caso proposto prevede due valori di velocità: 90 km/h in caso di mancanza di pioggia e 70 Km/h in caso di pioggia. In pratica è un sensore di pioggia che commuta dall uno all altro valore. Il ritorno al valore più alto quando la pioggia finisce avviene in modo automatico non istantaneamente bensì un certo ritardo (si prevede che dopo la pioggia la strada resti bagnata per un bel pò). Lo schema con relativi componenti di Arduino è il seguente: 32

Infine volendo alimentare il tutto con pannello fotovoltaico di modo da fare un segnale intelligente ed alimentato con fonti rinnovabili (o anche dette pulite) si ha: Per visualizzare i video dei progetti descritti sopra visitare il sito: www.ingegnercozzolino.altervista.org 33

Per i restanti progetti, appartenenti all area.tech c è da implementare il circuito e/o scrivere il software Risposta esatta Il circuito consiste nel creare un supporto di grandezza tipo foglio A4 o un pò più piccolo su cui applicare i pulsanti e nel predisporre Arduino con un certo numero di domande con relative risposte. In caso di riposta esatta la sequenza va avanti da sola mentre in caso di risposta errata si può prevedere di scrivere quella corretta e di andare avanti manualmente con il pulsante di reset. Il punto debole consiste nel fatto che la sequenza di domande è sempre la stessa, si potrebbe scegliere magari con altri pulsanti o con un selettore quale Stendino antipioggia Questo progetto, sebbene molto utile e apprezzato viene qui realizzato in modo didattico comandando un servomotore cui è solidale una copertura o una tenda che si chiude. La potenza del servomotore è molto bassa per cui volendo passare ad un prototipo più grande non sarebbe sufficiente sostituire il servomotore con un motore in corrente continua ed eventuale scheda di comando poiché cambierebbe anche il software. Infine si fa notare che per realizzare questo circuito potrebbe essere sufficiente un relè a doppio scambio ed un trasduttore di pioggia un po più professionale 34

Per visualizzare i video dei progetti descritti sopra visitare il sito: www.ingegnercozzolino.altervista.org 35