]> git.piffa.net Git - sketchbook_andrea/commitdiff
Blink senza variabili, inizio corso
authoreaman <andrea@piffa.net>
Fri, 23 Sep 2016 14:22:18 +0000 (16:22 +0200)
committereaman <andrea@piffa.net>
Fri, 23 Sep 2016 14:22:18 +0000 (16:22 +0200)
basic/pwm/pwm_0_stati/pwm_0_stati.ino
multitasking/millis/loop_array_millis/loop_array_millis.ino
multitasking/millis/pwm_millis/pwm_millis.ino [new file with mode: 0644]
oggi/blink_0/blink_0.ino [new file with mode: 0644]
oggi/blink_1_variabili/blink_1_variabili.ino [new file with mode: 0644]
oggi/blink_2_1_sos/blink_2_1_sos.ino [new file with mode: 0644]
oggi/blink_2_2_funzioni_argomenti/blink_2_2_funzioni_argomenti.ino [new file with mode: 0644]
oggi/blink_2_funzioni/blink_2_funzioni.ino [new file with mode: 0644]

index 567d431d9d80d58b75b113c7d403a6af3e0e9da4..3863c4a8a3ad19ec4c3351c2962396b7a8e2033d 100644 (file)
@@ -15,22 +15,23 @@ void setup()  {
 } 
 
 void loop()  { 
-  // Ledd al 100% : 255
+  // OUTPUT al 100% : 255
   analogWrite(led, brightness) ; 
   delay(pausa);
 
-  // Ledd al 75% : 191
+  // OUTPUT al 75% : 191
   analogWrite(led, brightness * 0.75) ; 
   delay(pausa);
   
-  // Ledd al 50% : 127
+  // OUTPUT al 50% : 127
   analogWrite(led, brightness * 0.5) ; 
   delay(pausa);
   
-  // Ledd al 25%: 63
+  // OUTPUT al 25%: 63
   analogWrite(led, brightness * 0.25 ) ; 
   delay(pausa);
 
-  // Ledd al 0%
+  // OUTPUT al 0%
   analogWrite(led, brightness * 0) ;
+  delay(pausa);
 }
index c3b5d8c673e63fc408fe68fe9951329107243369..f366f65cd610a66c8afc905801cca9be40ad9172 100644 (file)
@@ -14,12 +14,12 @@ L'array puo' contenere un numero arbitrario di led
  */
 
 byte ledPins[] = {  // Domanda: cosa succede se uso int?
-  9, 10, 11, 12
+  2, 3, 4, 5, 6, 7, 8, 9
 }
 ; //Array
 
 long previousMillis ;
-long interval = 1000;
+long interval = 200;
 byte i = 0;
 
 
diff --git a/multitasking/millis/pwm_millis/pwm_millis.ino b/multitasking/millis/pwm_millis/pwm_millis.ino
new file mode 100644 (file)
index 0000000..4a1d117
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+   Fade
+
+   PWM per un LED: aumentare progressivamente la luminosita'.
+   Utilizza la funzione millis() invece che un delay()
+   in modo da non blocare il processore.
+   
+ */
+
+
+// the setup routine runs once when you press reset:
+void setup()  {
+  pinMode(9, OUTPUT); // Il PIN nove va dichiarato come un OUTPUT
+}
+
+void loop()  {
+
+pwmUp(9, 3000);
+
+}
+
+// Funzioni:
+
+void pwmUp(byte led, int speed) {
+  // Aumenta progressivamente la luminosita' usanndo millis()
+  // quindi senza bloccare il processore
+
+  static byte brightness = 0;  // Valore iniziale per il PWM del LED
+  static long previousMillis = 0;
+  
+  analogWrite(led, brightness);  // La funziona analogWrite utilizza il PWM
+  // a 8 bit integrato nel MCU: simula un serie di valori intermedi
+  // nell'intervallo discreto con minimo 0 (spento) e  massimo 255 (acceso).
+
+  if ((millis() - previousMillis) > speed / 256) {
+    brightness = brightness + 1; // Incrementiamo la luminosita'
+    previousMillis = millis();
+  };
+}
+
diff --git a/oggi/blink_0/blink_0.ino b/oggi/blink_0/blink_0.ino
new file mode 100644 (file)
index 0000000..9cd59f5
--- /dev/null
@@ -0,0 +1,31 @@
+// 1. ////////////
+// Commento iniziale multi linea
+/*
+  Blink 
+
+  Accensione e spegnimanto di un LED utilizzando variabili
+  per impostare la velocita' del lampeggio.
+  
+ */
+// 2. //////////////
+// Dichiarazione variabili
+// 
+              // Il LED onboard corrisponde al PIN 13
+              // Ha una resistenza premontata
+
+// 3. /////////////////
+// Setup: eseguita una volta sola all'accensione della scheda
+void setup() {                
+  pinMode(13, OUTPUT); // Abilita il PIN del LED come OUTPUT in modo che
+                        // possa essere acceso    
+}
+
+// 4. ///////////////
+// loop: Le istruzioni vengono eseguite all'infinito
+void loop() {
+  digitalWrite(13, HIGH);  // Mette il PIN del LED in stato acceso
+  delay(500);              // Aspetta un secondo (mille millisecondi)
+  digitalWrite(13, LOW);   // Mette il PIN del LED in stato spento
+  delay(500);               // Aspetta mezzo secondo
+}
diff --git a/oggi/blink_1_variabili/blink_1_variabili.ino b/oggi/blink_1_variabili/blink_1_variabili.ino
new file mode 100644 (file)
index 0000000..ec6c3c0
--- /dev/null
@@ -0,0 +1,39 @@
+// ////////////
+// Commento iniziale
+/*
+  Blink v1
+
+  Accensione e spegnimanto di un LED utilizzando variabili
+  per impostare la velocita' del lampeggio.
+  
+ */
+// //////////////
+// Dichiarazione variabili
+
+// Pin 13 has an LED connected on most Arduino boards.
+// give it a name:
+int led = 13;
+int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
+int lunga = 1000;
+
+// /////////////////
+// Setup: eseguita una volta sola all'accensione della scheda
+void setup() {                
+  // initialize the digital pin as an output.
+  pinMode(led, OUTPUT);     
+}
+
+// ///////////////
+// loop: Le istruzioni vengono eseguite all'infinito
+void loop() {
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(breve);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(breve);               // wait for a second
+
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(lunga);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(lunga); 
+}
diff --git a/oggi/blink_2_1_sos/blink_2_1_sos.ino b/oggi/blink_2_1_sos/blink_2_1_sos.ino
new file mode 100644 (file)
index 0000000..aa53006
--- /dev/null
@@ -0,0 +1,159 @@
+
+// ////////////
+// Commento iniziale
+/*
+  Blink v2
+
+ Accensione e spegnimanto di un LED utilizzando funzioni
+ per comandare il lampeggio.
+
+ This example code is in the public domain.
+ */
+// //////////////
+// Dichiarazione variabili
+
+int led = 13; // LED onboard sulla scheda
+
+
+// /////////////////
+// Setup: eseguita una volta sola all'accensione della scheda
+void setup() {
+  // initialize the digital pin as an output.
+  pinMode(led, OUTPUT);
+}
+
+// ///////////////
+// loop: Le istruzioni vengono eseguite all'infinito
+void loop() {
+  // S
+  rapido(); // accende e spegne rapidamente il LED
+  rapido();
+  rapido();
+
+  // O
+  lento();  // accende e spegne lentamente il LED
+  lento();
+  lento();
+
+  // S
+  rapido(); // accende e spegne rapidamente il LED
+  rapido();
+  rapido();
+
+
+  //Funzione apposita:
+  esse();
+  ooo();
+  esse();
+}
+
+
+  // ///////////////
+  // Funzioni create dall'utente:
+
+void rapido() {
+  // Accende e spegne rapidamente il LED
+  int breve = 200;
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato acceso
+  delay(breve);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(breve);               // Pausa
+}
+
+void lento() {
+  // Accende e spegne lentamente il LED
+  int lunga = 1000;
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato spento)
+  delay(lunga);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(lunga);               // Pausa
+}
+
+void esse() {
+  // Emette una lettera S in Morse
+
+  int breve = 200;
+  
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato acceso
+  delay(breve);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(breve);               // Pausa
+
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato acceso
+  delay(breve);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(breve);               // Pausa
+
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato acceso
+  delay(breve);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(breve);               // Pausa
+}
+
+void ooo() {
+  // Emette una lettera o in Morse
+
+  int lunga = 1000;
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato spento)
+  delay(lunga);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(lunga);               // Pausa
+
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato spento)
+  delay(lunga);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(lunga);               // Pausa
+
+  digitalWrite(led, HIGH);    // Mette il PIN del LED in stato spento)
+  delay(lunga);               // Pausa
+  digitalWrite(led, LOW);     // Mette il PIN del LED in stato spento
+  delay(lunga);               // Pausa
+
+}
+
+void sos() {
+  // Emette un segnale di S.O.S
+
+}
+
+//////////////////
+/* Domande:
+    1. Che differenza c'e' tra le funzioni esse() e sos()?
+
+    2. Esercizio: creare uno sketch per far brillare un led 10 volte lentamente
+       e dieci volte rapidamente.
+ Soluzioni a fondo pagina.
+
+
+ Risposta:
+
+ 1. esse() e' una funzione autonoma, puo' essere copiata/incollata in qualunque
+ sketch e funzionera' autonomamente.
+ sos() invece e' composta da altre funzioni: anche queste dovranno essere disponibili.
+
+ */
diff --git a/oggi/blink_2_2_funzioni_argomenti/blink_2_2_funzioni_argomenti.ino b/oggi/blink_2_2_funzioni_argomenti/blink_2_2_funzioni_argomenti.ino
new file mode 100644 (file)
index 0000000..aa9074e
--- /dev/null
@@ -0,0 +1,54 @@
+
+/*
+  Blink v2
+ Accensione e spegnimanto di un LED utilizzando funzioni
+ per comandare il lampeggio.
+ This example code is in the public domain.
+ */
+
+// Dichiarazione variabili
+
+// Pin 13 has an LED connected on most Arduino boards.
+// give it a name:
+int led = 13;
+// Le variabili lunga e breve non sono piu' necessarie
+
+// /////////////////
+// Setup
+void setup() {                
+  // initialize the digital pin as an output.
+  pinMode(led, OUTPUT);     
+}
+
+// loop
+void loop() {
+  brilla(300);
+  brilla(300);
+  brilla(600);
+}
+
+// Funzioni create dall'utente:
+
+void brilla(int velocita) {
+  // Accende e spegne il LED accetando un argomento 
+  // per impostare la velocita'.
+
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
+  delay(velocita);               // wait for a second
+  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
+  delay(velocita);               // wait for a second
+}
+
+
+
+/* Domande:
+ *  1. Come si potrebbe fare per poter utilizzare la funzione brilla
+ *   con PIN diversi rispetto a LED?
+ *  
+ *  2. velocita' ora e' una variabile o una costante ?
+ *  
+ *  Esercizi sucessivi sulle funzioni: blink_5 e 6
+ */
diff --git a/oggi/blink_2_funzioni/blink_2_funzioni.ino b/oggi/blink_2_funzioni/blink_2_funzioni.ino
new file mode 100644 (file)
index 0000000..92db22b
--- /dev/null
@@ -0,0 +1,65 @@
+
+// ////////////
+// Commento iniziale
+/*
+  Blink v2
+ Accensione e spegnimanto di un LED utilizzando funzioni
+ per comandare il lampeggio.
+ This example code is in the public domain.
+ */
+// //////////////
+// Dichiarazione variabili
+
+int led = 13; // LED onboard sulla scheda
+int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
+int lunga = 1000;
+
+// /////////////////
+// Setup: eseguita una volta sola all'accensione della scheda
+void setup() {                
+  // initialize the digital pin as an output.
+  pinMode(led, OUTPUT);     
+}
+
+// ///////////////
+// loop: Le istruzioni vengono eseguite all'infinito
+void loop() {
+  rapido(); // accende e spegne rapidamente il LED
+  rapido(); // accende e spegne rapidamente il LED
+  lento();  // accende e spegne lentamente il LED
+}
+
+// ///////////////
+// Funzioni create dall'utente:
+
+void rapido() {
+  // Accende e spegne rapidamente il LED
+
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // turn the LED on (HIGH is the voltage level)
+  delay(breve);               // wait for a second
+  digitalWrite(led, LOW);     // turn the LED off by making the voltage LOW
+  delay(breve);               // wait for a second
+}
+
+void lento() {  
+  // Accende e spegne lentamente il LED
+
+  // sequenze di istruzione: accendere e spegnere il LED
+  digitalWrite(led, HIGH);    // turn the LED on (HIGH is the voltage level)
+  delay(lunga);               // wait for a second
+  digitalWrite(led, LOW);     // turn the LED off by making the voltage LOW
+  delay(lunga); 
+}
+
+/* Domande:
+    1. I valori delle variabili led, breve, lunga cambiano durante
+    l'esecuzione del programma? Sono variabili?
+    
+    2. Le dichiarazioni delle variabili breve e lunga possono essere
+    accorpate nelle rispettive funzioni?
+
+    3. Esercizio: creare una funzione per effettuare un S.O.S. : ...---...
+ */