Lezione Terza Primi passi di programmazione

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Selezione A. Ferrari.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
Piattaforma Arduino Arduino uno Arduino Mega.
Capitolo 4 (Deitel) Le strutture di controllo in C
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
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
Arduino: introduzione alla programmazione
arduino: dalla teoria alla pratica
arduino: dalla teoria alla pratica
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Hardware necessario Una board Intel galileo Un alimentatore Dc 7-15 v
Cicli e Array. 2 Costrutto while while(espressione) { … } Il codice dentro le parentesi graffe viene eseguito finché la condizione è vera Potrebbe non.
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.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
ISTITUTO TECNICO – SETTORE TECNOLOGICO
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
7. Strutture di controllo Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Programmazione: Iterazione Esistono tre tipi di iterazione fondamentali e vedremo la corrispondenza dei relativi diagrammi a blocchi e la loro traduzione.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
.  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.
Arduino uno Introduzione.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Progetto Parcheggio intelligente
DAL DIAGRAMMA AL CODICE
Python per Raspberry Introduzione.
PROGRAMMAZIONE SHELL -
Arduino Clap-Light.
Tecnica batch (passa a passo)
7. Strutture di controllo Ing. Simona Colucci
IL CONCETTO DI ALGORITMO
SWITCH – CASE LINGUAGGIO C.
7. Strutture di controllo
CICLO DO – WHILE LINGUAGGIO C.
Lezione 9 – A.A. 2016/2017 Prof. Giovanni Acampora
istalliamo l’ambiente di sviluppo - ide
Global System for Mobile Comunication
mBlock Un modo semplice e innovativo per programmare Arduino
Un editor intelligente!!!
Java World Cicli e Array.
Introduzione a JavaScript
Lego Mindstorms Esempi di programmazione
Corso Java Cicli e Array.
Linguaggio C++ Selezione.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Strutture di Controllo
Programmazione e Laboratorio di Programmazione
Interrupt Arduino.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Programmazione e Laboratorio di Programmazione
Display a 7 segmenti.
Lezione Seconda Primi passi di programmazione
Processi decisionali e funzioni di controllo
Programmazione e Laboratorio di Programmazione
Fondamenti di Informatica
Unità 1 Programmi base.
Array Un array è un contenitore “contiene” al massimo un numero predefinito di oggetti dello stesso tipo. Ogni oggetto dell'array è detto “elemento” Ad.
Motori Passo-Passo (step)
CICLO WHILE LINGUAGGIO C.
Programmazione e Laboratorio di Programmazione
Progettiamo un robot Prof.ri Ponte Vincenzo Ovazza Sergio
Ricerca 01/08/2019 package.
La programmazione strutturata
TCS230 Sensore di colore.
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

Lezione Terza Primi passi di programmazione Arduino Lezione Terza Primi passi di programmazione Prof. Ponte Vincenzo

Controllo di flusso (IF … ELSE) Se l’espressione contenuta all’interno delle  Parentesi tonde è vera,viene eseguito il codice  di programma che segue. Se l’espressione è falsa  vengono eseguite le righe di codice subito dopo  l’istruzione else. Esempio: accendere e spegnere un led con un pulsante

accendere e spegnere un led con un pulsante int LED = 6; // LED connesso al pin digitale 6 int Button =2; // pulsante connesso al pin 2 /*Dichiarazione della variabile che legge lo stato del pulsante*/ int Button_State = 0; int I=0; //variabile che memorizza lo stato del Led 0=Off

accendere e spegnere un led con un pulsante void setup() { // inizializza il pin del LED come uscita digitale: pinMode(LED, OUTPUT); pinMode(Button, INPUT); // ìnizializza i l pin del pulsante come ingresso digitalWrite(LED, HIGH); // accendo il LED per testarlo delay(1000); // per 1 secondo digitalWrite(LED, LOW); // spengo il LED }

accendere e spegnere un led con un pulsante void loop() { // Legge Io stato del pulsante : Button_State = digitalRead(Button); delay(200); // attendo 200 msec per problemi di antirimbalzo. if (Button_State ==HIGH) { if (I==1) { digitalWrite(LED, HIGH); // Accendo il LED I=0; } else { digitalWrite(LED, LOW); // Spengo il LED I=1; } }

switch … case Questo costrutto ha una logica di funzionamento simile a if … else, ma la sintassi è differente: per prima cosa viene dichiarata tra parentesi una variabile, poi all’interno delle parentesi graffe viene creato un blocco case per ogni valore della variabile da considerare: switch (variabile) { case 1: // istruzioni da eseguire quando la variabile assume valore 1 break; case 2: // istruzioni da eseguire quando // la variabile assume valore 2

switch … case default: // istruzioni da eseguire quando la variabile non assume nessuno dei valori previsti } L’istruzione break al termine di ogni alternativa interrompe l’esecuzione delle istruzioni, uscendo dal costrutto switch.

switch … case L’ultimo blocco, identificato dalla parola chiave default, viene eseguito quando nessuna delle condizioni case si verifica. È analogo al blocco else dopo la condizione if. Come else, può essere omesso quando non necessario.

switch … case: esempio Realizzare un programma che conta quante volte il pulsante viene premuto, per un ciclo di 4 pressioni, alla quinta pressione il led lampeggia una volta e poi si riavvia il ciclo. Prima pressione: led lampeggia ogni mezzo secondo Seconda pressione: led lampeggia ogni secondo Terza pressione: led lampeggia ogni secondo e mezzo Quarta pressione: led si spegne

switch … case: esempio int BUTTON = 2; // pin di input a cui è collegato il // pulsante int LED = 13; // LED collegato al pin digitale 13 // Variabili globali (tutti interi) int statoButton = 0; // stato del pulsante (inizialmente // non premuto) int lastStatoButton = 0; // ultimo stato del pulsante (per //ora non premuto) int countButton = 0; // Conteggio del bottone

switch … case: esempio // Avvio dell'applicazione void setup() { pinMode(LED, OUTPUT); // imposta il pin digitale //come output pinMode(BUTTON, INPUT); // imposta il pin digitale //come input }

switch … case: esempio // Avvio del loop void loop() { // Verifico se l'utente ha premuto il bottone statoButton=digitalRead(BUTTON); // Aspetto 200 ms per far alzare il dito all'utente delay(200); if(statoButton==HIGH) { // Cambio l'ultimo stato del bottone if (lastStatoButton==0) lastStatoButton=1; else lastStatoButton=0; // Aumento il count del bottone if (countButton<=3) countButton=countButton+1; else countButton=0; }

switch … case: esempio // In base allo stato del bottone scelgo l'azione del led switch (countButton) { // Led lampeggia ogni mezzo secondo case 1: digitalWrite(LED, HIGH); // accende il LED delay(500); // aspetta ½ secondo digitalWrite(LED, LOW); // spegne il LED break;

switch … case: esempio // Led lampeggia ogni secondo case 2: digitalWrite(LED, HIGH); // accende il LED delay(1000); // aspetta un secondo digitalWrite(LED, LOW); // spegne il LED delay(1000); // aspettaun secondo break;

switch … case: esempio // led lampeggia ogni secondo e mezzo case 3: digitalWrite(LED, HIGH); // accende il LED delay(1500); // aspetta un secondo ½ digitalWrite(LED, LOW); // spegne il LED break;

switch … case: esempio // Led si spegne case 0: digitalWrite(LED, LOW); delay(500); // aspetta 1/2 secondo break; }

for (ciclo) Serve per ripetere un blocco di istruzioni racchiuso tra le parentesi graffe per un numero specificato di volte. Una variabile utilizzata come contatore viene incrementata normalmente di una unità e confrontata per determinare la fine del ciclo. Nell’espressione “for” ci sono tre parti,separate da punto e virgola “;”. for(int i=0; i<7; i++) // ciclo di ripetizione per 8 differenti valori dell’array

for (ciclo): esempio Far lampeggiare 10 volte il LED rosso e 10 volte il LED verde #define rosso 11  //piedino 11 LED rosso #define verde 12 //piedino 12 LED verde int t = 200;   //tempo di accensione  dei LED int x = 0 ;   //conteggio ciclo void setup() {   pinMode (rosso, OUTPUT);   pinMode (verde, OUTPUT); } void loop() {   for (x = 0 ; x < 10; x++) {   digitalWrite (rosso, HIGH); //accende il LED rosso e lammpeggia per 10 volte   delay (t) ;   digitalWrite (rosso, LOW);   delay (t);  }   for (x = 0 ; x < 10; x++){   digitalWrite (verde, HIGH); //accende il LED verde e lampeggia per 10 volte   delay (t);   digitalWrite (verde, LOW);  delay (t);  } }

while (finchè) Il ciclo while richiede nella dichiarazione iniziale solo la condizione da verificare: while (condizione) { // istruzioni da ripetere ciclicamente // se la condizione è verificata } A differenza del ciclo for è necessario modificare manualmente all’interno del ciclo il valore della variabile utilizzata per la condizione iniziale.

while (finché) esempio: giochi di luce con pulsante // Giochi di luci con 1 pulsante int LEDR = 6; // LED Rosso connesso al pin digitale 6 int LEDV=7; // LED Verde connesso al pin digitale 7 int LEDG=8; // LED Giallo connesso al pin digitale 8 int Button =2; // pulsante connesso al pin2 /*Dichiarazione della variabile che legge lo stato del pulsante*/ int Button_State = 0; int I=1; //variabile che memorizza la sequenza del pulsante

while (finché) esempio: giochi di luce con pulsante void setup() { // inizializza i pin dei LED come uscita digitale pinMode(LEDR, OUTPUT); pinMode(LEDV, OUTPUT); pinMode(LEDG, OUTPUT); pinMode(Button, INPUT); // ìnizializza i l pin del pulsante come ingresso digitalWrite(LEDV, HIGH); // accendo il LED Verde per testarlo delay(1000); digitalWrite(LEDV, LOW); // spengo il LED digitalWrite(LEDR, HIGH); // accendo il LED Rosso per testarlo digitalWrite(LEDR, LOW); // spengo il LED digitalWrite(LEDG, HIGH); // accendo il LED Giallo per testarlo }

while (finché) esempio: giochi di luce con pulsante void loop() { // Legge Io stato del pulsante : Button_State = digitalRead(Button);// a differenza dell’If l’antirimbalzo non influisce while (Button_State ==HIGH) { digitalWrite(LEDG, LOW); // spengo il LEDG if (I==1) { digitalWrite(LEDV, HIGH); // Accendo il LED delay(500); digitalWrite(LEDV, LOW); // spengo il LED I=0; }

while (finché) esempio: giochi di luce con pulsante else { digitalWrite(LEDR, HIGH); // Accendo il LED Rosso delay(1000); digitalWrite(LEDR, LOW); // spengo il LED delay(500); digitalWrite(LEDR, HIGH); // Accendo il LED I=1; } Button_State = digitalRead(Button);} //leggo lo stato del pulsante digitalWrite(LEDG, HIGH); // accendo il LED Giallo (nessun gioco) }

do ... while (finchè) L’istruzione “do ... while” è un ciclo (loop) di ripetizione che funziona nello stesso modo come il ciclo “while”, con l'eccezione che la condizione viene verificata alla fine del ciclo, in modo che l’istruzione “do ... while” verrà sempre eseguita almeno una volta.

do ... while (finchè) Struttura: do { ..codice da ripetere fino a quando la condizione di while risulta vera.. } while ( ..condizione.. );

Esercitazioni 1) Provare a realizzare il gioco di luce con il ciclo do…while 2) Realizzare gioco di luci con lo switch…case e con il ciclo for…

Fine terza parte Buon lavoro e buon divertimento Prof. Ponte Vincenzo Prof. Ovazza Sergio