INPUTS/OUTPUTS digitali e interruzioni

Slides:



Advertisements
Presentazioni simili
Piattaforma Arduino Arduino uno Arduino Mega.
Advertisements

Linguaggio Arduino: Struttura di un programma
Linux, Android e Internet of Things
Table View. Problemi ricorrenti Una situazione ricorrente è quella in cui il controller potrebbe avere un’altezza superiore a quella dello schermo. In.
passaggi per capire meglio Coding a scuola:
ASSISTENZA TECNICA: Sì, in cosa posso aiutarti? ASSISTENZA TECNICA: Sì, in cosa posso aiutarti? CLIENTE: Bene, dopo varie considerazioni, ho deciso.
Come affrontare una prova INVALSI di matematica.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
Configurazione Router IR794- IG601
Risolvere i problemi globali
Christian Locatelli 3°Info A
Arduino uno Introduzione.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Proporzioni Nella giusta misura!.
SICURI IN RETE MODULO C.
I PROCESSI.
Comparatore e FlashADC con l’Op.Amp. “TDC” con l’FPGA LM35
Pic16f84 Assembly I/O.
Creato da Samuele Baldi, Vania Cheli, Irene Cocchi e Roberto Maranghi
Arduino Clap-Light.
Microcontrollori e microprocessori
Spiegazione di alcuni concetti
7. Strutture di controllo Ing. Simona Colucci
I2c.
Trasmettitori e ricevitori
IL CONCETTO DI ALGORITMO
Laboratorio II, modulo Elettronica digitale (2a parte) (cfr.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Definizione di patto sociale
Diodo.
INSEGUITORE SOLARE CON ARDUINO
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.
TELEFONO CELLULLARE E SACRA BIBBIA CELLULAR PHONE AND HOLY BIBLE
2018/9/ /9/11 USER ENVIRONMENT 1 1.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
01 - INTRODUZIONE ALLA DOMOTICA
istalliamo l’ambiente di sviluppo - ide
Caratteristiche e funzioni della scheda Arduino
Processi e Thread Meccanismi di IPC (1).
1.3 Dama matematica-gioco da tavolo
Programmare.
© 2007 SEI-Società Editrice Internazionale, Apogeo
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
VIDEOGIOCHI A SCUOLA Andrea capitani e marco giorgini.
Coinvolgere, selezionare e motivare le risorse umane
Algebra Booleana.
Ricorsione 16/01/2019 package.
Interrupt Arduino.
Processi e thread in Windows 2000
People’s appearance changes
Esercitazione 8 Laboratorio di Architetture degli Elaboratori I
Lezione Seconda Primi passi di programmazione
Processi decisionali e funzioni di controllo
Unità 5 Segnali analogici.
UNIT 12 INTERFACCIA SERIALE.
Unità 9 Relè.
Unità 1 Programmi base.
Unità 6 SCHERMI LCD.
Lezione Terza Primi passi di programmazione
Espressioni, pause e suoni
CONTROLLO DI UN SERVOMOTORE A ROTAZIONE CONTINUA
Unità 7: SENSORI A INFRAROSSI
Progettiamo un robot Prof.ri Ponte Vincenzo Ovazza Sergio
Ricerca 01/08/2019 package.
Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Docente: Sabato Bufano
TEMPI? Dalle 08:00 del 16 gennaio alle 20:00 del 06 febbraio 2017;
Algoritmi.
TCS230 Sensore di colore.
CLOUD.
Transcript della presentazione:

INPUTS/OUTPUTS digitali e interruzioni Unità 2 INPUTS/OUTPUTS digitali e interruzioni

Scopo e Agenda dell’unità 2 Chiarire alcune idee sul controllo di device digitali e spiegare che cosa sono i resistori pull-up e pull-down. Avere uno sguardo ravvicinato sulle interruzioni. Scopo della presentazione L’agenda della presentazione Spiegare che cosa sono i livelli attivi high logic negli OUTPUT digitali Spiegare le differenze tra resistori PULL-UP e PULL-DOWN Fornire le conoscenze di base sulle interruzioni 2

OUTPUT DIGITALI E LIVELLI LOGICI Si parla sempre di setting al livello “1” (+5 V) ogni volta che vogliamo accendere qualcosa e usiamo il livello “0” (0 V) quando vogliamo spegnere qualcosa Possiamo farlo al contrario? SI’!!!! Entrambi i livelli “1” e “0” sono rappresentativi allo stesso modo L’anodo deve essere positivamente comparato al catodo per accendere Send a “1” (+5 V) through D4 (pin 7) to the cathode to turn on a LED we have to send a “1” (+5 V) through D4 (pin 7) Send a “0” (0 V) through D4 to the cathode in the circuit as the anode is connected to +5 V through the resistor. 3

INPUT DIGITALI; RESISTORI PULL-UP E PULL-DOWN Le periferiche digitali più semplici ed economiche sono semplicemente pulsanti e switch Il pulsante deve essere connesso a D2 (pin5) che è apparentemenmte configurato come input When you press the pushbutton D2 pin connects up with GND (0 V) and is therefore at “0” level When you press the pushbutton D2 pin connects up with 5 V and is therefore at “1” level COSA SUCCEDE AL PIN SE NON PREMIAMO ENTRAMBI I PULSANTI NEI DUE CIRCUITI? 4

INPUT DIGITALI; RESISTORI PULL-UP E PULL-DOWN Assolutamente niente. Il D2 rimane disconnesso in entrambi I casi. Si dice che sta fluttuando Quale vince: livello “1” o livello “0”? Non c’è una risposta definita Qualche volta rimane “1” in alto e altre volte lo “0” 5

INPUT DIGITALI; RESISTORI PULL-UP E PULL-DOWN Per come il sistema elettrico è fatto, la cosa migliore da fare è aggiungere un resistore al circuito Connected to the positive +5 V it’s called a resistor or “PULL-UP” Connected to GND or 0 V, it’s called “PULL-DOWN” 6

pinMode (n, INPUT_PULLUP) INPUT DIGITALI; RESISTORI PULL-UP E PULL-DOWN Come ci aiuta Arduino? Ci fornisce il resistore pull-up e questo ci salva dal doverne installare uno esterno nei circuiti Il resistore è stato integrato nel controller di Arduino Puoi configurare questa opzione usando questa funzione: pinMode (n, INPUT_PULLUP) n rappresenta il pin input che vuoi connettere al corrispondente resistore pull-up 7

INTERRUZIONI Un’interruzione non significa necessariamente che il controller si fermi completamente; interrompe il comando che stava eseguendo e ne esegue un altro Come provochiamo un’interruzione? Il modo più comune è, per le periferiche esterne, mandare segnali attraverso pin controller certi Arduino UNO ha due diverse modalità per interruzioni o pin: D2/INT0 and D3/INT1 8

INTERRUZIONI Che cosa succee quando il controller riceve un’interruzione? Il controller sta eseguendo il suo consueto programma principale A un certo punto una periferica richiede e causa un’interruzione Il controller sospende il programma principale e va ad eseguire un programma per affrontare l’evento, anche detto ISR (Interrupt Service Routine) Una volta che l’esecuzione della gestione dell’interruzione è completata, il controller ritorna al programma principale L’esecuzione viene ripresa da dove è stata lasciata 9

attachInterrupt(pin, ISR, modo); INTERRUZIONI Per gestire ed usare le interrruzioni di Arduino UNO, ci sono 4 funzioni a disposizione Funzione attachInterrupt() Configura come un’interruzione dovrebbe funzionare. Sintassi: attachInterrupt(pin, ISR, modo); pin: Nel caso di Arduino UNO potrebbe essere INT0 (D2) or INT1 (D3) ISR: questo è il nome della routine o funzione che deve essere eseguita ogni volta che c’è una interruzione. mode: Questo è quando un’interruzione dovrebbe essere innescata: LOW: quando il pin trasmette a livello “0”. CHANGE: quando è rilevato un cambiamento di status nel pin. RISING: when il pin rileva un aumento del margine (“0”->“1”). FALLING: quando il pin rileva una diminuzione del margine (“1”-> “0”). 10

detachInterrupt(pin); INTERRUPTS Funzione detachInterrupt() Chiude un’interruzione. Sintassi: detachInterrupt(pin); pin: Nel caso di Arduino UNO potrebbe essere INT0 (D2) or INT1 (D3) Funzione interrupts() Questo avvia una interruzione. Deve essere immaginata come una specie di autorizzazione generale per l’interruzione che prima è stata configurata attraverso attachInterrupt(). Sintassi: interrupts(); 11

INTERRUPTS Funzione noInterrupts() Questo chiude tutte le interruzioni. È da immaginare come una proibizione generale che impedisce a tutte le interruzioni di funzionare. Sintassi: noInterrupts(); 12

INTERRUZIONI Limiti Vantaggi Le funzioni delay() e millis() non funzionano se sono già in una routine di interruzioni Si possono trasferire parametri a una routine di interruzioni e l’ISR non restituirà nulla Durante l’esecuzione di una funzione di routine di interruzioni, il controller sospende l’esecuzione del programma principale. Il programma principale può essere eseguito in qualsiasi momento ma quando il segnale lo raggiunge, allora, e solo allora, il controller “risponde” all’interruzione e esegue il commando corrispondente. Questo significa che non c’è pausa perchè il controller sta sempre facendo qualcosa di utile – come se stesse eseguendo due azioni allo stesso tempo. 13

INPUTS/OUTPUTS digitali and interruzioni Unità 2 INPUTS/OUTPUTS digitali and interruzioni Grazie