From c3d28d0cbbe5e18d64e82b99f9cff169d1a6e018 Mon Sep 17 00:00:00 2001 From: Andrea Manni Date: Thu, 10 Dec 2015 16:46:03 +0100 Subject: [PATCH] Sensors analog --- .../photo_4_calibrated/photo_4_calibrated.ino | 2 +- basic/buttons/button_1/button_1.ino | 2 +- .../buttons/button_state_3/button_state_3.ino | 2 +- .../button_state_4_state.ino | 2 +- .../button_state_4_state_and_condition.ino | 33 +++++++++++++++++-- 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/basic/analog_input/photo_4_calibrated/photo_4_calibrated.ino b/basic/analog_input/photo_4_calibrated/photo_4_calibrated.ino index 2708689..3701f07 100644 --- a/basic/analog_input/photo_4_calibrated/photo_4_calibrated.ino +++ b/basic/analog_input/photo_4_calibrated/photo_4_calibrated.ino @@ -7,7 +7,7 @@ quantita' di luce. Per ottenere valori significativi utilizzare unaresistenza - da ~5k ohms in serie con il sensore. + da ~5k - 10k ohms in serie con il sensore. Questo sketch modifica l'intervallo di intermittenza di un led in base alla luminosita' rilevata. diff --git a/basic/buttons/button_1/button_1.ino b/basic/buttons/button_1/button_1.ino index 5df80f0..f6328d5 100644 --- a/basic/buttons/button_1/button_1.ino +++ b/basic/buttons/button_1/button_1.ino @@ -41,5 +41,5 @@ void loop() { quando il bottone e' premuto. 3. Si potrebbe usare un ciclo iterativo while invece che un ciclo condizonale if? Che differenza c'e' tra il ciclo while e for? - 4. Domanda: cosa succede se il jumper input non e' collegato ne al +5 ne al gound? + 4. Domanda: cosa succede se il jumper input non e' collegato ne al +5 ne al ground? */ diff --git a/basic/buttons/button_state_3/button_state_3.ino b/basic/buttons/button_state_3/button_state_3.ino index 5ff5c06..2f43ec5 100644 --- a/basic/buttons/button_state_3/button_state_3.ino +++ b/basic/buttons/button_state_3/button_state_3.ino @@ -38,7 +38,7 @@ void loop(){ /* Domande: 1. Cosa succde se non uso un delay(20) alla lettura del bottone? - 2. Implementare un LED che passa dallo stato acceso a spento quando viene premuto il bottone. + 2. Implementare un LED che cambia stato quando viene premuto il bottone. 3. Quanti stati ha il LED? 4. Sarebbe possibile passare rapidamente da uno stato all'altro? diff --git a/basic/buttons/button_state_4_state/button_state_4_state.ino b/basic/buttons/button_state_4_state/button_state_4_state.ino index 26d1625..4e06d42 100644 --- a/basic/buttons/button_state_4_state/button_state_4_state.ino +++ b/basic/buttons/button_state_4_state/button_state_4_state.ino @@ -44,5 +44,5 @@ void loop(){ 1. I due cicli if verificano che due condizioni siano concomitanti: e' possibile integrarli semplificando il codice? - */ + */ diff --git a/basic/buttons/button_state_4_state_and_condition/button_state_4_state_and_condition.ino b/basic/buttons/button_state_4_state_and_condition/button_state_4_state_and_condition.ino index 3cbc869..d9bdbba 100644 --- a/basic/buttons/button_state_4_state_and_condition/button_state_4_state_and_condition.ino +++ b/basic/buttons/button_state_4_state_and_condition/button_state_4_state_and_condition.ino @@ -11,7 +11,7 @@ int ultimoStato; // Variabile per registrare l'ultimo stato del botton int ledStatus; // varabile per mantenere lo stato del led void setup() { - pinMode(buttonPin, INPUT); // Set the switch pin as input + pinMode(buttonPin, INPUT); // Set the switch pin as input pinMode(led, OUTPUT); Serial.begin(9600); // Attiva la comunicazione seriale a 9600bps ultimoStato = digitalRead(buttonPin); // Prima lettura del bottone @@ -20,7 +20,7 @@ void setup() { void loop(){ statoAttuale = digitalRead(buttonPin); // Legge lo stato del bottone e lo resistra in val - delay(20); // riduce l'effetto bounce + delay(20); // riduce l'effetto bounce if (statoAttuale != ultimoStato && statoAttuale == HIGH) { // due condizione contemporanee // lo stato del bottone e' camabiato AND lo stato attuale e' HIGH Serial.println("Button premuto"); @@ -39,3 +39,32 @@ void loop(){ +/* Domande: + + 1. La variabile ledstatus serve per tenere traccia dello stato del LED: + si potrebbe fare a meno di questa? + Cosa fa Arduino quando deve accendere o spegnere un LED? + Come funziona DigiralRead() ? + + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + Soluzione: + + 1. Per accendere o spegnere un LED Arduino imposta il valore del registro corrispondente + al PIN: se questo e' 0 il circuito e' aperto mentre se e' 1 il circuito e' chiuso. + Allo stesso modo con DigitalRead() e' possibile leggere lo stato di quel regustro + e conoscere se il LED e' acceso o spento. + */ -- 2.39.2