Prof.ri Ponte Vincenzo Ovazza Sergio

Slides:



Advertisements
Presentazioni simili
Corso di Informatica Applicata - © 2005 Saverio De Vito Corso di Informatica Applicata Esercitazione Università degli studi di Cassino Corso di Laurea.
Advertisements

Piattaforma Arduino Arduino uno Arduino Mega.
Per questo organizza un corso di Arduino per tutti i soci Amon e GMS.
Linguaggio Arduino: Struttura di un programma
ARDUINO Duemilanove Parte_5 Arduino e PHP
CENTRAL PROCESSOR UNIT (CPU) 1/2 E’ l’unità che regola e controlla tutti I processi nel microcontroller. E’ formata da diverse sottounità tra cui: Instruction.
Arduino: introduzione alla programmazione
arduino: dalla teoria alla pratica
Internetworking V anno.
SENSORI OTTICI - FOTORESISTENZE
Hardware necessario Una board Intel galileo Un alimentatore Dc 7-15 v
Progetti con arduino e pic.  Il trasduttore è analogico  Trasforma la temperatura in tensione secondo la relazione V millivolts =10*t celsius Essendo.
Comunicare con Arduino
Hands-On Arduino Come collegare i sensori ad Arduino P. Perego- Politecnico di Milano AA 2010/2011 Facoltà del Design - Politecnico di Milano 3.o anno.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi su stringhe e file 15 Stringhe e file.
ISTITUTO TECNICO – SETTORE TECNOLOGICO
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
Reti Mobili Ad Hoc e di Sensori Andrea De Salve. COS'È ARDUINO ? Piattaforma Open-Source per il Physical Computing basata su Microcontrollore Arduino.
LABORATORIO ARDUINO E ANDROID VENERDÌ, 11 SETTEMBRE 2015 UNIVERSITÀ DEGLI STUDI DI TRIESTE.
MODULI FORMATIVI ESTIVI: ANDROID E ARDUINO PICCOLO PROGETTO CREATO CON UNA SCHEDA ARDUINO E APPINVENTOR.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
IL SOFTWARE (FPwin 6.0).
Arduino uno Introduzione.
Il team dello sportello per il cittadino
Progetto Parcheggio intelligente
Scheda ethernet di arduino
(Impianto Pneumatico n°1 temporizzato)
VISUAL BASIC.
GPIO: General Purpose Input Output I parte
Introduzione al linguaggio C
Python per Raspberry Introduzione.
Pic16f84 Assembly I/O.
Terza Lezione → Navigare nel file System → parte 2
I2c.
Trasmettitori e ricevitori
Progetto n°1 con il Pannello operatore
Commenti Ogni riga che comincia con il simbolo # non viene letta dall’interprete per cui rappresenta un modo per commentare il listato # Questo è un esempio.
Excel 1 - Introduzione.
I FILES AD ACCESSO SEQUENZIALE
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
SAS® OnDemand for Academics SAS Studio
istalliamo l’ambiente di sviluppo - ide
Global System for Mobile Comunication
realizzato dal prof.Conti Riccardo
Caratteristiche e funzioni della scheda Arduino
Un editor intelligente!!!
Java World Cicli e Array.
Interrupt Arduino.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Pilotare Relè e Motori CC
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
La struttura dei primi programma in C
Maker_INO Lezione Quarta Trasduttori e Sensori Digitali
Display a 7 segmenti.
Lezione Seconda Primi passi di programmazione
Unità 5 Segnali analogici.
UNIT 12 INTERFACCIA SERIALE.
Osservatorio Regionale Commercio Applicativo
Programmazione e Laboratorio di Programmazione
Unità 1 Programmi base.
Unità 6 SCHERMI LCD.
Motori Passo-Passo (step)
Lezione Terza Primi passi di programmazione
Passaggio di parametri per indirizzo
Progettiamo un robot Prof.ri Ponte Vincenzo Ovazza Sergio
Array (vettori) In linguaggio C / C++.
PowerShell di Windows PowerShell è un shell che mette a disposizione un prompt interattivo e un interprete a riga di comando , per le sue caratteristiche.
Comunicazioni sincronizzate: I2c SPI
TCS230 Sensore di colore.
Transcript della presentazione:

Prof.ri Ponte Vincenzo Ovazza Sergio DISPLAY e TELECOMANDI Prof.ri Ponte Vincenzo Ovazza Sergio MAKER-INO Lezione 6°

DHT11 sensore umidità e temperatura 2° Parte: visualizziamo i dati su LCD Attenzione ai PIN del modulo sensore:

Visualizzazione dati su monitor #include <dht11.h> // dalla libreria dht-sensor-library-master dht11 sensore; // sensore è la variabile da utilizzare con la libreria #define sens_pin 4 //sensore collegato al pin 4 int chk;//memorizza valori temperatura e umidità void setup() { //gestione del monitor Serial.begin(9600); Serial.println("DHT TEST PROGRAM "); Serial.println(); Serial.println("Humidity (%),Temperature (C)"); }

Visualizzazione dati su monitor void loop() { chk=sensore.read(4);//leggo i dati,al posto del 4 si può // mettere sens_pin Serial.print(sensore.humidity,1);//,1 indica senza decimali Serial.print(" \t"); Serial.print(sensore.temperature,1); Serial.println(); delay(5000);// attendo 5 secondi }

LE LIBRERIE La compilazione dello sketch può generare errori dovuti alla assenza o directory della procedura richiamata: #include <dht11.h> Come procedere: 1) Se la libreria è installata assicurarsi che al suo interno sia presente il file in questione (a volte è scritto in MAIUSCOLO)

LE LIBRERIE: installazione 2) Ricercare il file specifico con un motore di ricerca e quindi individuare il link del download della libreria zippata e scaricarla. https://www.progettiarduino.com/uploads/8/1/0/8/81088074/dht-sensor-library-master.zip Da Sketch di Arduino #include libreria Aggiungi libreria da file.zip, selezionare la cartella compressa – OK

Display LCD 16x2 Libreria:http://www.adrirobot.it/display_lcd/lcd_seriale_sparkfun/ArduinoSerLCD.zip

La piedinatura

La libreria LiquidCrystal.h Contiene le istruzioni principali che consentono di gestire un display LCD. Di seguito analizziamo in dettaglio le principali: LiquidCrystal() È la funzione che attiva la libreria e che crea l'oggetto che ci servirà per comunicare con il display LCD.

La libreria LiquidCrystal.h LiquidCrystal lcd(7,8,9,10,11,12) In questo caso l'oggetto si chiama Icd, ma potrebbe anche avere un nome diverso. La funzione definisce anche quali piedini utilizziamo per comunicare con la scheda Arduino (in questo caso i piedini da 7 a 12). Deve essere sempre scritta per prima e successivamente a questa istruzione faremo sempre riferimento per le altre istruzioni all'oggetto creato (in questo caso Icd).

La libreria LiquidCrystal.h lcd.begin(16,2) ; Questa funzione definisce le colonne e le righe utilizzate nel display, in questo caso 16 colonne e 2 righe. lcd.clear(); Questa funzione "pulisce" lo schermo del display dai caratteri scritti in precedenza lcd.setCursor(2,5); Questa funzione posiziona il cursore nel punto voluto del display. Tra parentesi indichiamo prima la colonna e poi la riga.

La libreria LiquidCrystal.h Icd.print("Hello World!"); È la funzione che scrive il testo indicato tra parentesi, il dato può essere int, float,char oppure anche stringa. lcd.write(48); Scrive sul display il carattere associato a un certo codice esadecimale indicato tra parentesi.

La libreria LiquidCrystal.h Icd.home( ); Questa funzione posiziona il cursore nella casella in alto a sinistra. Cursor(“Hello” ) e noCursor(“World!”) cursor( ) mostra il carattere sottolineato nella casella in cui verrà scritto il prossimo carattere, mentre noCursor ( ) nasconde il cursore. lcd.blink( ) e lcd.noBlink( ) usati prima del print attiva il lampeggiamento del testo, mentre noBlink( ) riporta il testo alla normalità.

DHT11 2° Parte: visualizziamo i dati anche su LCD #include <dht11.h> // dalla libreria dht-sensor-library-master #include <LiquidCrystal.h> // libreria LCD dht11 sensore; // sensore è la variabile da utilizzare con la libreria #define sens_pin 8 //sensore collegato al pin 8 int chk; //memorizza valori temperatura e umidità LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // connessione display (pin) /* pin 12 RS register select: High=dati, Low=istruzioni pin 11 Abilita (High) o disabilita (Low) l’ingresso di un byte pin 5 data bus - bit 4 pin 4 data bus - bit 5 pin 3 data bus - bit 6 pin 2 data bus - bit 7 */ int chk; //memorizza valori temp e umid.

DHT11 2° Parte: visualizziamo i dati anche su LCD void setup() { Serial.begin(9600); Serial.println("DHT TEST PROGRAM "); Serial.println(); Serial.println("Humidity (%),Temperature (C)"); lcd.begin(16, 2); // imposto il tipo di display (colonne,righe) lcd.print("Temperatura"); lcd.setCursor(0,1); lcd.print("Umidita'"); }

DHT11 2° Parte: visualizziamo i dati anche su LCD void loop() { chk=sensore.read(8); //leggo i dati,al posto del 4 si può mettere sens_pin Serial.print(sensore.humidity,1); //,1 indica senza decimali Serial.print(" \t"); Serial.print(sensore.temperature,1); Serial.println(); int t = sensore.temperature; // memorizzo in t la temperatura int h = sensore.humidity; //memorizzo in h umidità lcd.setCursor(14, 0); // posiziono il cursore lcd.print(t); lcd.setCursor(14, 1); lcd.print(h); delay(500); }

REALIZZAZIONE PRATICA Come si presenta il montaggio senza DHT11:

Telecomando: RX e TX infrarossi II ricevitore ad infrarossi è un circuito integrato che riceve i segnali dei telecomandi. Ce ne sono di vari modelli, ma fondamentalmente si differenziano per la frequenza di trasmissione dei dati. Analizziamo due ricevitori disponibili :

Telecomando: RX e TX infrarossi 8220-IR38DM Alimentazione: 4,5-5,5V Freq. di ricezione: 38kHz Lunghezza d'onda: 940nm Distanza massima: 10m 7300-TSOP34156 Alimentazione: 2,7-5,5V Freq. di ricezione: 56kHz Distanza massima: 35m

Telecomando: RX e TX infrarossi II dato più importante è la frequenza di ricezione. Se avete un telecomando che non si accoppia in frequenza con il ricevitore possono succedere due cose: 1)il dato che viene ricevuto non ha senso, per cui vi accorgete che c'è un errore; 2) peggio arriva un dato che cambia nel tempo,anche se voi avete premuto sempre lo stesso tasto del telecomando.

I RICEVITORI I ricevitori infrarossi hanno 3 pin di cui 2 usati per l'alimentazione e il terzo per i dati ricevuti.

Identificare il codice tasti telecomando La libreria IRremote consente sia la trasmissione che la ricezione. #include <IRremote.h> // usa la library int ricev = 11; // ricevitore to Arduino pin 11 IRrecv Iricev(ricev); // crea un oggetto ricevente Iricev decode_results risultato; void setup() { Serial.begin(9600); // for serial monitor output Iricev.enableIRIn(); // Start the receiver }

Identificare il codice tasti telecomando void loop() { if (Iricev.decode(&risult)) // have we received an IR signal? Serial.println(risult.value, HEX); // visualizza in esadecimale Iricev.resume();// riceve valore successivo }

Esempio: accendere e spegnere led #include <IRremote.h> // usa la library int ricev = 11; // ricevitore to Arduino pin 11 IRrecv Iricev(ricev); // crea un oggetto ricevente Iricev decode_results risultato; void setup() { irrecv.enableIRIn(); // Start the receiver pinMode(9, OUTPUT); // Pin 9 output led rosso pinMode(8, OUTPUT); // Pin 8 output led verde }

Esempio: accendere e spegnere led void loop() { if (irrecv.decode(&results)) // have we received an IR signal? Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal irrecv.resume();// receive the next value } if ( results.value == 0xFF30CF) //codice tasto 1 sul telecomando aggiungere 0x digitalWrite(9, HIGH); // set the LED on if ( results.value == 0xFF18E7) //tasto 2 sul telecomando digitalWrite(8, HIGH); // set the LED on if ( results.value == 0xFF6897){ //tasto 0 sul telecomando digitalWrite(8, LOW); // set the LED 0ff digitalWrite(9, LOW); // set the LED 0ff

Esempio: variare velocità del motorino con vol- e vol+ #include <IRremote.h> // use thè library int receiver = 11; // pin 11 of IR receiver IRrecv irrecv(receiver); // create instance of 'irrecv' decode_results results; int Mot=6; // velocità motorino int i=0;//variabile per accelerare

Esempio: variare velocità del motorino con vol- e vol+ void setup() { Serial.begin(9600); // for serial monitor output irrecv.enableIRIn(); // Start the receiver pinMode (6, OUTPUT);// Pin collegamento //positivo motorino analogWrite(Mot, i); }

Esempio: variare velocità del motorino con vol- e vol+ void loop() { if (irrecv.decode(&results)) // have we received an IR //signal? Serial.println(results.value, HEX); // display it on serial //monitor in hexadecimal Serial.println(i); irrecv.resume();// receive the next value }

Aumentiamo velocità con Vol+ if ( results.value == 0xFDD827) // + vol { delay (30); i=i+10; Serial.println(i); analogWrite(Mot, i); if (i>=255) {i=245;} }

Diminuire velocità con Vol- if ( results.value == 0xFD5AA5) // - vol { delay (30); i=i-10; Serial.println(i); analogWrite(Mot, i); if (i<=0) {i=10;} }

Esercizi proposti 1)Progetto serra con sensore DHT11 2)Visualizzare messaggi su Display 3)Temperatura e umidità su Display 4)Individuare codici tasti su telecomando ed accendere LED Buon Lavoro Prof.ri Ponte Vincenzo e Ovazza Sergio