ESERCIZI CON PULSANTI

Documenti analoghi
FONDAMENTI DI ARDUINO

Facciamo lampeggiare un led

La Keyes 4 relay non è proprio una shield nel senso classico definito nel mondo arduino in quanto una shield dovrebbe essere concepita per essere

SVOLGIMENTO SECONDA PROVA 2017 SISTEMI AUTOMATICI: PARTE 1

CONTASECONDI CON DISPLAY A 7 SEGMENTI ARDUINO LIKE

Far lampeggiare un led o forse un semaforo?

SCHEDA SPERIMENTALE ARDUINO UNO

ACCENDERE E SPEGNERE UN DIODO LED

KeyPad LCD Shield ( blue )

MOTORE PASSO-PASSO CON VELOCITÀ REGOLABILE

INTERAZIONE ELETTRONICA

Display numerico con i LED

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

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

Tipologie dei dati nell SDK di Arduino come in un vero LP ad alto livello :

In questo tutorial decodificheremo i segnali provenienti da un telecomando qualsiasi e utilizzeremo gli stessi segnali per comandare Arduino a

E labirinto cronaca di un fallimento

PRIMI PASSI CON ARDUINO

Relazione finale del progetto Arduino - NIMT

Corso di programmazione Arduino DI MALVEZZI DAVIDE

ELECTRONICS LAB [WITH ARDUINO]

Arduino: Programmazione

GESTIONE DELLE INTERRUZIONI (INTERRUPT)

Corso Professionale di Arduino Avanzato

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

D.A.M. Bros Robotics -

12 - timer da cucina display a 4 cifre

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

CTU Presenta. Contest Automation con Arduino. IK0XBX - Francesco

Arduino Ciclo while, do while, for

Programma di simulazione per Arduino

Dimensioni foratura pannello

ARDUINO. Colleghiamolo al PC/MAC - FUNZIONA?

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

Cablaggio ponte H con integrato L293B

L'alfabeto di Arduino

Metronomo. Realizzato da Andrea Corda

Lezione 6 su Arduino: I sensori di presenza PIR

Macchina con Arduino Uno comandata tramite dispositivo Android e sensore ultrasuoni per fermarsi istantaneamente di fronte ad un ostacolo

Arduino. Led, pulsanti, PWM, tastierino, display sette segmenti, display LCD

Corso Base Arduino ed Elettronica

I SENSORI DI PROSSIMITA

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

MANUALE D'USO SINTETICO

D sistema d allarme con sensori magnetici

Relazione attività di laboratorio - Arduino

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Lezione 3 PWM e motori. Stefano Panichi e Giulio Fieramosca

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

Relazione progetto Arduino

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

SOLUZIONE Soluzione: Schema a blocchi

Questo sistema si è poi diffuso in tutto il mondo, soprattutto in ambito didattico e hobbistico. Arduino mette a disposizione:

Corso Base Arduino ed Elettronica

Controllo di una soglia analogica

ELETTRONICA CON ARDUINO

ATS-I. Manuale Istruzioni REV1. Tecnoelettra srl Dal Via Vioni Dimo, S.Rocco di Guastalla (RE)

Introduzione alla Robo0ca

Radio Stereo FM. Descrizione Pannello di controllo. A.E.S. Elettronica di Urbani Settimio & C. Snc. 6 tasti: Radio ON/OFF : accende e spegne la Radio

Arduino Uno INTRODUZIONE CONOSCENZE NECESSARIE

TUTORIAL GPL_BENZINA CON PIC16F1826 (UTILIZZO DELL ADC)

RELAZIONE CANESTRO BASKET

Circuiti antirimbalzo

Contatore asincrono esadecimale

TM1638 BOARD con ARDUINO

TERMOMETRO LCD BASATO SUL TRASDUTTORE DI TEMPERATURA ANALOGICO LM 35

Arduino/Raspberry Board and GSM Library

byte Fase1 = 5; byte Fase2 = 6; byte Fase3 = 7; byte Fase4 = 8; int Ritardo = 15 ; puntatore! // sono equivalenti le sintassi:

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

Arduino in connessione Bluetooth

Salvare i dati rilevati dai sensori di Arduino

CORSO ARDUINO. Giulio Fieramosca Stefano Panichi. Corsi GOLEM 2014

14^ parte : Sensore a ultrasuoni HC SR04 e Arduino. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Arduino Tutorial #7 - Nunchuk materiale utilizzato Arduino, cavi elettrici, breadboard, nunchuk, 3 led.

MANUALE DISPLAY. Five srl

Applicazioni dei microcontrollori PIC

SPECIFICHE STAZIONE SALDANTE CON TRASCINAMENTO LEGA MODELLO E 376D

TCP - TIMER CICLICO PROGRAMMABILE

Introduzione ad Arduino

ARDUINO Course.

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

Transcript:

ESERCIZI CON PULSANTI Vengono qui riportati due esercizi con il display a 7 segmenti led. Si voleva eseguire un conteggio da 0 a 9 e ritorno con un incremento di una unità alla volta. L esercizio è stato realizzato sia con dei pulsanti meccanici che con dei pulsanti capacitivi. /* Matteo Zuccalà Incremento e decremento tramite due pulsanti Up e Down di una sequenza di numeri da 0 a 9 su Dispaly 7 Segmenti (catodo comune) con accensione del punto di 1/2 secondo ad ogni pressione del tasto.*/

// Definizione dei pin int led0 = 1; int led1 = 2; int led2 = 3; int led3 = 4; int led4 = 5; int led5 = 6; int led6 = 7; int ledp = 8; // Segmento e // Segmento d // Segmento c // Segmento b // Segmento a // Segmento f // Segmento g // Segmento dp int buttonup = 12; int buttondown = 13; // Definizione delle variabili int led = 0; // Led da accendere void setup () { // Impostazione dei pin come uscite pinmode (led0, OUTPUT); pinmode (led1, OUTPUT); pinmode (led2, OUTPUT); pinmode (led3, OUTPUT); pinmode (led4, OUTPUT); pinmode (led5, OUTPUT); pinmode (led6, OUTPUT); pinmode (ledp, OUTPUT); // Impostazione dei pin come ingressi pinmode (buttonup, INPUT);

pinmode (buttondown, INPUT); digitalwrite (buttonup, HIGH); digitalwrite (buttondown, HIGH); //Imposto resistenza di Pull-Up interna //Imposto resistenza di Pull-Up interna void loop () { if (digitalread (buttonup) == 0){ led++; // Se il pulsante UP è premuto // Incrementa la variabile led if (led>9) { // Se la variabile supera il valore 9 led=9; // Lascia la variabile a 9 delay (500); digitalwrite (ledp, HIGH); delay(500); digitalwrite (ledp, LOW); // Pausa per antirimbalzo // Accendi il punto // per 1/2 secondo // Spegni il punto if (digitalread (buttondown) == 0){ // Se il pulsante DOWN è premuto led--; // Decrementa la variabile led if (led<0) { // Se la variabile è inferiore al valore 0 led=0; // Lascia la variabile a 0 delay (500); digitalwrite (ledp, HIGH); delay(500); digitalwrite (ledp, LOW); // Pausa per antirimbalzo // Accendi il punto // per 1/2 secondo // Spegni il punto if (led==0) { digitalwrite (led6, LOW); // Segmento e // Segmento d // Segmento c // Segmento b // Segmento a // Segmento f // Segmento g

if (led==1) { digitalwrite (led1, LOW); digitalwrite (led4, LOW); digitalwrite (led6, LOW); if (led==2) { digitalwrite (led2, LOW); if (led==3) { if (led==4) { digitalwrite (led1, LOW);

digitalwrite (led4, LOW); if (led==5) { digitalwrite (led3, LOW); if (led==6) { digitalwrite (led3, LOW); if (led==7) digitalwrite (led1, LOW); digitalwrite (led6, LOW); if (led==8) {

if (led==9) { Display 7 segmenti comandato da due pulsanti. Partendo dallo sketch che trovate alla pagina del link, modificatelo con i vostri dati (nome e cognome) aggiungendo i seguenti requisiti: 1. commenti che ne spieghino tutti i passaggi importanti. Per esempio: la riga void LedAcceso(int n) dovrebbe essere seguita da un commento che ne spieghi la funzione (a cosa serve) 2. i pin da usare per pilotare il display non devono essere quelli dello sketch di partenza ma quelli da 1 a 7. Modificate lo sketch in modo che non siano usati i pin da 8 a 13 per il display. Vanno usate le resistenze per proteggere i LED del display. 3. Lo sketch originale serve per eseguire un conteggio automatico da o a 9 con intervallo di 1 secondo. Va modificato in modo che il display mostri, all accensione, il numero 0 e tale cifra aumenti o diminuisca premendo due pulsanti. In pratica vi devono essere due pulsanti (che potremmo chiamare up e down ) che avranno il compito di variare la cifra mostrata dal display. Considerate che:

a. premendo up la cifra si incrementa di un numero fino a 9 ma, arrivato al 9, ogni successiva pressione non deve cambiare più nulla (rimane a 9) b. premendo down la cifra diminuisce di un numero fino a 0 ma, se il display mostra 0, ogni successiva pressione non deve cambiare più nulla (rimane a 0) c. ad ogni pressione di up (o down ) si deve avere un incremento (o decremento) di una unità e non di più di una. Per esempio, deve essere chiaro che premendo il tasto up la cifra deve passare da 6 a 7 e non a 8 o 9) 4. Non vi dovranno essere righe inutili (es. variabili o funzioni non necessarie al funzionamento del circuito), neppure quello per un eventuale debug (test del funzionamento degli script) 5. per la valutazione si considereranno i seguenti parametri: a. il circuito funzionante varrà 60 punti. Per la sufficienza, il requisito del corretto funzionamento (come da indicazioni al punto 3) e la corretta piedinatura (come da indicazioni al punto 2), sono condizione necessaria. b. a patto che il circuito sia funzionante, verranno aggiunti da 0 a 15 punti se saranno aggiunti commenti precisi e chiari nei passaggi fondamentali (vedi esempio al punto 1) e se verranno seguite le indicazioni al punto 4. c. a patto che il circuito sia funzionante, verranno aggiunti altri 10 punti se, ad ogni pressione di uno dei due pulsanti si accenderà, per ½ secondo, il puntino del display. In questo caso siete autorizzati ad usare il pin 8 per comandarlo. d. a patto che il circuito sia funzionante,i rimanenti 15 punti saranno aggiunti se, al posto di usare due pulsanti fisici, userete due pulsanti touch come quello sperimentato nel precedente compito. Riportate qui di seguito il vostro sketch completo di eventuali commenti: in classe mostrerete il circuito funzionante durante la lezione del 7 Gennaio. Non allegate altri file ma usate SOLO questo documento. Buon lavoro e buone feste. VOSTRO SKETCH: /* Matteo Zuccalà Incremento e decremento tramite due sensori capacitivi Up e Down di una sequenza di numeri da 0 a 9 su Dispaly 7 Segmenti (catodo comune) con accensione del punto di 1/2 secondo ad ogni pressione del tasto.*/ #include <CapacitiveSensor.h> // Definizione dei pin int led0 = 1; // Segmento e

int led1 = 2; int led2 = 3; int led3 = 4; int led4 = 5; int led5 = 6; int led6 = 7; int ledp = 8; // Segmento d // Segmento c // Segmento b // Segmento a // Segmento f // Segmento g // Segmento dp // Definizione delle variabili int led = 0; // Led da accendere CapacitiveSensor cs_11_12 = CapacitiveSensor(11,12); CapacitiveSensor cs_11_13 = CapacitiveSensor(11,13); void setup () { // Impostazione dei pin come uscite pinmode (led0, OUTPUT); pinmode (led1, OUTPUT); pinmode (led2, OUTPUT); pinmode (led3, OUTPUT); pinmode (led4, OUTPUT); pinmode (led5, OUTPUT); pinmode (led6, OUTPUT); pinmode (ledp, OUTPUT); // Impostazione dei pin come ingressi cs_11_12.set_cs_autocal_millis(0xffffffff); void loop () {

long total1 = cs_11_12.capacitivesensor(30); long total2 = cs_11_13.capacitivesensor(30); if (total1>100) { led++; // Se il pulsante UP è premuto // Incrementa la variabile led if (led>9) { // Se la variabile supera il valore 9 led=9; // Lascia la variabile a 9 delay (500); digitalwrite (ledp, HIGH); delay(500); digitalwrite (ledp, LOW); // Pausa per antirimbalzo // Accendi il punto // per 1/2 secondo // Spegni il punto if (total2>100) { led--; // Se il pulsante DOWN è premuto // Decrementa la variabile led if (led<0) { // Se la variabile è inferiore al valore 0 led=0; // Lascia la variabile a 0 delay (500); digitalwrite (ledp, HIGH); delay(500); digitalwrite (ledp, LOW); // Pausa per antirimbalzo // Accendi il punto // per 1/2 secondo // Spegni il punto if (led==0) { digitalwrite (led6, LOW); // Segmento e // Segmento d // Segmento c // Segmento b // Segmento a // Segmento f // Segmento g

if (led==1) { digitalwrite (led1, LOW); digitalwrite (led4, LOW); digitalwrite (led6, LOW); if (led==2) { digitalwrite (led2, LOW); if (led==3) { if (led==4) { digitalwrite (led1, LOW); digitalwrite (led4, LOW);

if (led==5) { digitalwrite (led3, LOW); if (led==6) { digitalwrite (led3, LOW); if (led==7) { digitalwrite (led1, LOW); digitalwrite (led6, LOW); if (led==8) {

if (led==9) {