Prime esperienze con la breadboard

Documenti analoghi
Guida alla Quarta Esercitazione

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Introduzione allo sviluppo di progetti

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Architettura degli ARM CORTEX TM -M0 (1a parte)

Guida alla Settima Esercitazione

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Architettura degli ARM CORTEX TM -M0 (1a parte / ii)

Rivediamo alcuni concetti fondamentali: note sulla periferica GPIO

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

PRIMI PASSI CON ARDUINO

ACCENDERE E SPEGNERE UN DIODO LED

MOTORE PASSO-PASSO CON VELOCITÀ REGOLABILE

TUTORIAL GPL_BENZINA CON PIC16F1826 (UTILIZZO DELL ADC)

Esercitazione su. LCD alfanumerico con controller/driver HD44780

H426V1 Manuale utente

K-19. Funzioni della vasca idromassaggio

SCHEDA SPERIMENTALE ARDUINO UNO

Note su. Interruzioni. e Multi Rate Timer

I SENSORI DI PROSSIMITA

Microcontrollori. Elettronica dei Sistemi Programmabili A.A

Corso Professionale di Arduino Avanzato

TCP - TIMER CICLICO PROGRAMMABILE

Nella parte sx dello schema abbiamo gli input del microcontrollore il quale ha la funzione di elaborare dei dati che acquisisce in tempo reale.

FONDAMENTI DI ARDUINO

Calcolatori Elettronici T Ingegneria Informatica A2 - Gestione di una matrice di LED (8x8)

TT 73 TEMPORIZZATORE ELETTRONICO DIGITALE A MICROPROCESSORE

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Per controllare un motore DC (funzionante in corrente continua) con Arduino, devi utilizzare il circuito integrato Ponte H (nel mio caso un L293NE

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++

Programmazione Orientata agli Oggetti in Linguaggio Java

Esercitazione su. LCD alfanumerico con controller/driver HD44780

Arduino. Laboratorio Arduino Base. HackLab Terni. Laboratorio aperto a tutti di elettronica, scienza e arte. hacklabterni.

Controllo di una soglia analogica

DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE

POLITECNICO DI BARI! DIPARTIMENTO DI INGEGNERIA ELETTRICA E DELL INFORMAZIONE!

IL NUOVO ORIZZONTE: ARDUINO 1

CONTASECONDI CON DISPLAY A 7 SEGMENTI ARDUINO LIKE

ARDUINO. workshop base

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

Programmazione Orientata agli Oggetti in Linguaggio Java

FC-51: IR Infrared Obstacle Detection Sensor Module 2-30cm

AUTOMAZIONE CANCELLO SCORREVOLE A MICROCONTROLLORE con ARDUINO

NMRONDOAS1-NMATX3-NMATX2S

Circuiti antirimbalzo

Programmazione Orientata agli Oggetti in Linguaggio Java

Far lampeggiare un led o forse un semaforo?

Progetto di un circuito LAMPEGGIATORE A LED"

Uso del emulatore di floppy EMUFDD VER. 29 / 30

Arduino/Raspberry Board and GSM Library

ELETTRONICA CON ARDUINO

Quaderni di Elettronica corso per creativi ed inventori

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

DISPLAY A CRISTALLI LIQUIDI J-LCD

Programmazione Procedurale in Linguaggio C++

Applicazioni dei microcontrollori PIC

Programmazione Orientata agli Oggetti in Linguaggio Java

Vogliamo far lampeggiare i led collegati come in figura ai bit della porta D del PIC 18F8722 presente sulla demo board in dotazione al laboratorio.

Guida alla Prima Esercitazione

MANUALE ISTRUZIONI M077. è un prodotto di Lorenz spa

Il problema dello zaino

01/02/16 TAFFURELLI DANIELE REV: 03/02/16 CARATTERIZZAZIONE FUNZIONAMENTO DISPLAY CPU ACQUARIO AL MOMENTO DELL'ALIMENTAZIONE

MULTIFLEXI INVERTED DC

Routine di delay con Multi Rate Timer in modalità one-shot

Rivediamo alcuni concetti fondamentali: note sulle interruzioni e sul Multi Rate Timer

ATTENZIONE: Non smaltire il prodotto nei normali rifiuti domestici. Consegnalo al centro di raccolta per le apparecchiature elettroniche.

GARA NAZIONALE DI ELETTRONICA

Caratteristiche ATMEGA328

ELECTRONICS LAB [WITH ARDUINO]

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

Calcolatori Elettronici T Ingegneria Informatica A1 Introduzione Arduino

Ing. Emiliano Capuzzo Remote Contro NEC 11/11/2003. Remote Control NEC

A B C D E F. F: LED per LAN porta 4 G: Presa per alimentazione principale H: LAN porta 4 I: LAN porta 3 J: LAN porta 2

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java

IIS Via Silvestri ITIS Volta Programma svolto di Tecnologie Informatiche A.S. 2016/17 Classe 1 B

Calcolatori Elettronici T Ingegneria Informatica A3 - Gestione delle interruzioni

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Stefano Panichi e Giulio Fieramosca

Scheda Controllo Sboard-II mod. SC-022 con Doppio Rele. Manuale Utente

PROFIL 100E/INT ISTRUZIONI OPERATIVE E DI INSTALLAZIONE IP 64 DM. Accessori per il MONTAGGIO

Lanciare MPLAB IDE (Start->Programmi->Mirochip->MPLAB IDE v7.22->mplab IDE):

Elettronica I - Prima Esercitazione - RISPOSTA IN FREQUENZA DI CIRCUITI CON AMPLIFICATORI OPERAZIONALI OpAmp

Sommario CONDIZIONATORE COMANDO REMOTO A FILO MANUALE D USO. Modello KJR-12B

TC 49 CONTAIMPULSI ELETTRONICO DIGITALE A MICROPROCESSORE

Alimentatore KEYSIGHT E36312A. Silvia Roncelli Lab. Didattico di Elettronica 1

L aggiornamento del firmware aggiornerà il firmware di WAC700 e WACS700 alla Versione

Modulo relè Timer Manuale d'uso

Programmazione Orientata agli Oggetti in Linguaggio Java

Social Networking: technologies and applications INTRODUZIONE AL CORSO

SPA-ITALIA.COM ISTRUZIONI PER LA PROGRAMMAZIONE

2000 s.r.l. REFRIGERAZIONE - INDUSTRIALE - COSTRUZIONE - APPARECCHIATURE -

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Tecnologie di Sviluppo per il Web

Halo Aroma Diffuser. Model: WS115 USER MANUAL

ELECTRONICS LAB [WITH ARDUINO]

Alimentatori. Schema a blocchi di un alimentatore non stabilizzato

Istruzioni per l'uso Ophoria OR8601

Transcript:

Progettazione nell'ambiente LPCXpresso Introduzione alla progettazione di sistemi embedded a microcontrollore Prime esperienze con la breadboard All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). S. Salvatori - Microelettronica aprile 2016 (1 di 44)

Sommario Breadboard: Connessioni interne Esempio Alimentazione Primo esercizio: LED Secondo esercizio: key-led I/O digitale Problema rimbalzo Esercizi 2/44

Breadboard 3/44

Breadboard Connessioni interne 4/44

Breadboard Connessioni interne collegamenti tra componenti linee di alimentazione 5/44

Breadboard CF esempio R1 10k R2 2-10k 6 OA 3 + 6/44

Breadboard CF esempio R1 10k R2 2-10k 6 OA 3 + 7/44

Breadboard CF esempio R1 10k R2 2-10k 6 OA 3 + 8/44

Breadboard CF esempio R1 10k R2 2-10k 6 OA 3 + 9/44

Breadboard Alimentazione singola 10/44

Strumenti utili 11/44

Prima prova: livello 0! 12/44

LED 3V3 R V LED 1.7 V I LED 2mA [3.3 1.7] R =800Ω 2 Scelgo 750 Ω Va bene un resistore tra 500 e 1500 Ω 13/44

LED 27 1 54 28 14/44

LED 3V3 GND 15/44

LED 3V3 R GND 3V3 16/44

LED 3V3 R GND 3V3 17/44

LED GND 3V3 3V3 R 18/44

Preparazione resistori 1 2 3 4 19/44

LED GND 3V3 3V3 R 20/44

Progetto blinker 21/44

Blinker 3V3 GND Usiamo P0.4 22/44

Blinker GND P0.4 P0.4 3V3 R 23/44

Blinker 24/44

Blinker 1. Duplicare il progetto Lab2c_delay e denominare la copia come: Lab4a_blinker ; 2. Inserire nella funzione main le istruzioni necessarie per far lampeggiare il LED esterno con una frequenza abbastanza bassa in modo da poterla osservare; int main (void) { /* SystemClockUpdate()... */ SystemClockUpdate(); /* initialize GPIO */ /* P0.4 DEFINED AS OUTPUT */ /* TURN OFF LED */ /* Loop forever */ while (1) { /* TURN ON LED */ delayms(500); /* TURN OFF LED */ delayms(500); } } 25/44

Seconda prova: livello 1 26/44

Key-led 3V3 S R S: norm. aperto Come facciamo a farlo lavorare in logica negata : se premo spengo? 27/44

Key-led S 3V3 R Devo modificare il cablaggio (inoltre si ha assorbimento di corrente anche se LED off) La soluzione hard-wired non si presta ad agevoli operazioni di aggiornamento 28/44

Progetto key-led 29/44

Key-led P0.4 R GND Resistore di pull-up. Va bene tra 10 kω e 100 kω P2.0 1k P2.0 P0.4 3V3 3V3 10k S Resistore di protezione. Va bene tra 100 Ω e 1 kω 30/44

Key-led 1. Duplicare il progetto precedente e denominare la copia come: Lab4b_keyled ; 2. Inserire nella funzione main le istruzioni necessarie per accendere o spegnere il LED in base allo stato del pulsante int main (void) { /* SystemClockUpdate()... */ SystemClockUpdate(); /* initialize GPIO */ /* P0.4 DEFINED AS OUTPUT */ /* TURN OFF LED */ /* Loop forever */ while (1) { if(lpc_gpio2->fiopin & (1 << 0)) /* TURN OFF LED */ else /* TURN ON LED */ } } 31/44

Progetto toggle 32/44

Toggle 1. Duplicare il progetto precedente e denominare la copia come: Lab4c_toggle ; 2. Inserire nella funzione main le istruzioni necessarie per cambiare lo stato del LED ogni volta che viene premuto il pulsante P0.4 R Non modificare il montaggio rispetto al progetto precedente P2.0 3V3 1k 10k S 33/44

Toggle Diagramma di flusso toggle 0 T key pressed F toggle=1 F toggle ~toggle T Accendi LED Spegni LED Ma si possono adottare altre soluzioni 34/44

Toggle 1. Duplicare il progetto precedente e denominare la copia come: Lab4c_toggle ; 2. Inserire nella funzione main le istruzioni necessarie per cambiare lo stato del LED ogni volta che viene premuto il pulsante P0.4 R Che problema si osserva? 3V3 P2.0 1k 10k S 35/44

Toggle Problema rimbalzo toggle 0 T key pressed F toggle=1 F toggle ~toggle T Spegni LED Accendi LED Pausa 36/44

Progetto set-reset 37/44

Set-reset Duplicare il progetto precedente e denominare la copia come: Lab4d_set_reset ; P0.4 R 3V3 P2.0 1k 10k S 38/44

Set-reset Soluzione più robusta per limitare I problemi di rimbalzo: if (( ( (LPC_GPIO2->FIOPIN) & (1 << 0) ) == 0 ) && (set == 0) ) { // se viene PREMUTO il pulsante status =!status; // cambia il valore di status NOTA: if (status) LPC_GPIO0->FIOSET = 1 << 4; else LPC_GPIO0->FIOCLR = 1 << 4; set = 1; // segnalamento set delayms(25); // breve pausa } Le variabili set e status vanno inizializzate a '0' prima di entrare nel ciclo infinito in cui è riportato questo codice if (( ( (LPC_GPIO2->FIOPIN) & (1 << 0) )!= 0 ) && (set == 1) ) { // se viene RILASCIATO il pulsante set = 0; //segnalamento reset delayms(25); // breve pausa } 39/44

Esercizi 40/44

Esercizi 1. Progetto set-reset Disegnare il diagramma di flusso dell'algoritmo il cui codice è quello riportato nella precedente slide. 41/44

Esercizi 2. Cronometro Si deve progettare un dimostrativo di cronometro che soddisfi le seguenti specifiche: Impostare TIMER 1 con risoluzione di 1 ms; avviare TIMER 1 quando viene premuto un pulsante una prima volta; arrestare TIMER 1 quando viene premuto lo stesso pulsante una seconda volta; salvare il valore di conteggio del timer in una variabile e resettare lo stesso in modo che il sistema riparta dal punto 2 e possa eseguire un nuovo conteggio premendo nuovamente il pulsante. 42/44

Esercizi 3. Provariflessi Si deve progettare un dimostrativo di provariflessi che soddisfi le seguenti specifiche: Impostare TIMER 1 con risoluzione di 1 ms; EVENTO 1: se viene premuto un pulsante bisogna accendere un LED e avviare TIMER 1; EVENTO 2: TIMER 1 deve essere arrestato quando viene premuto un altro pulsante; salvare il valore di conteggio del timer in una variabile e resettare il timer stesso in modo che il sistema possa ripartire, con la funzionalità descritta, dall'evento 1. NOTA: Nella fase di debug bisogna inserire un breakpoint in posizione opportuna in modo da poter osservare il valore della variabile in cui viene caricato il tempo trascorso tra gli eventi 1 e 2. L'arresto, tuttavia, dovrà avvenire solo se interviene l'evento 2. 43/44

Grazie per l'attenzione domande? stefano.salvatori@uniroma3.it All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). 44/44