]> git.piffa.net Git - sketchbook_andrea/commitdiff
PWM
authorAndrea Manni <andrea@piffa.net>
Thu, 12 Mar 2015 00:09:57 +0000 (01:09 +0100)
committerAndrea Manni <andrea@piffa.net>
Thu, 12 Mar 2015 00:09:57 +0000 (01:09 +0100)
advanced_projects/led_PWM_logical_analyzer_demo/led_PWM_logical_analyzer_demo.ino
basic/blinks/blink_1_variabili/blink_1_variabili.ino
basic/blinks/blink_2_funzioni/blink_2_funzioni.ino
basic/buttons/button_2_serial_debug/button_2_serial_debug.ino
basic/buttons/button_state_4_state/button_state_4_state.ino
basic/led_PWM_simple/led_PWM_simple.ino [deleted file]
basic/pwm_1_while_byte/pwm_1_while_byte.ino [new file with mode: 0644]
basic/pwm_2_for_loop/pwm_2_for_loop.ino [new file with mode: 0644]
basic/simplest_pwm_byte/simplest_pwm_byte.ino [deleted file]

index e8c4cc8c2926f783194a81dea79ca07430bddf95..723a7bf5e98defe7d826b396be0d64d2633f9b75 100644 (file)
@@ -4,17 +4,18 @@
  Connect pin ~11 to a logic analyzer and a multimeter
  and witness the power of the built-in PWM generator.
  
+ Usage: change pausa from 3000 (demostration) to 20 for sampling.
  BTW: Logic comes from: http://downloads.saleae.com/betas/1.1.34/Logic+1.1.34+(64-bit).zip
  */
 
-int led = 11;
-int pausa = 3000; // or 20 when sampling
+int led = 9;
+int pausa = 3000; // 3000 for demo or 20 when sampling
 
 
 void setup()
 {
   pinMode(led, OUTPUT);
-  delay(4000);
+  delay(3000);
 }
 
 void loop()
@@ -36,7 +37,7 @@ void loop()
     analogWrite(led, c) ;
     delay(2 );
   }
-  exit(0);
+  //exit(0);
 
 }
 
index d828bc924450a452ea004772e145b8d9388c01f1..7a5a46a2f9dc9c8328c49753bdffd3c9295cc443 100644 (file)
@@ -1,3 +1,5 @@
+// ////////////
+// Commento iniziale
 /*
   Blink v1
 
   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;
 int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
 int lunga = 1000;
 
-// the setup routine runs once when you press reset:
+// /////////////////
+// Setup: eseguita una volta sola
 void setup() {                
   // initialize the digital pin as an output.
   pinMode(led, OUTPUT);     
 }
 
+// ///////////////
+// loop
 // the loop routine runs over and over again forever:
 void loop() {
   digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
index 210de4df774abe477cfa4da510c5c3dc21033cca..e1a6066275f1111c4be2e9b8f85ef95c1e7ad0b3 100644 (file)
@@ -1,3 +1,6 @@
+
+// ////////////
+// Commento iniziale
 /*
   Blink v2
  
@@ -6,6 +9,8 @@
  
  This example code is in the public domain.
  */
+// //////////////
+// Dichiarazione variabili
 
 // Pin 13 has an LED connected on most Arduino boards.
 // give it a name:
@@ -13,19 +18,22 @@ int led = 13;
 int breve = 200;  // Variabile richiambile nel corso dell'esecuzione
 int lunga = 1000;
 
-// the setup routine runs once when you press reset:
+// /////////////////
+// Setup
 void setup() {                
   // initialize the digital pin as an output.
   pinMode(led, OUTPUT);     
 }
 
-// the loop routine runs over and over again forever:
+// ///////////////
+// loop
 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() {
@@ -49,4 +57,3 @@ void lento() {
 }
 
 
-
index f0b41d543cb88b111a22b827b1132811c2017189..e4866bf4a8c5c375622b87db67a3e85afbfab309 100644 (file)
@@ -9,14 +9,11 @@
  - http://lab.piffa.net/schemi/button_1_schem.png
  */
 
-// Pin 13 has an LED connected on most Arduino boards.
-// give it a name:
-int led = 13;
+int led = 12;
 int input = 2;
 
 // the setup routine runs once when you press reset:
 void setup() {                
-  // initialize the digital pin as an output.
   pinMode(led, OUTPUT);       // Il PIN e' attivato come output
   pinMode(input, INPUT);        // Il PIN e' attivato come output
 
index 87ceffa95d49affcf5e83c1ae993ec2564248b94..ef6ae05d4bcda1e7b39351186b982cc9ae434042 100644 (file)
@@ -4,28 +4,29 @@
  Legge lo stato di un input
  
  */
-int led = 13;
+int led = 13;              // Definizione delle variabili
 int buttonPin = 2;              
-int statoAttuale;                        // variable for reading the pin status
-int ultimoStato;                // variable to hold the last button state
+                           // Dichiarazione di variabili
+int statoAttuale;          // Variabile per leggere lo stato del bottone
+int ultimoStato;           // Variabile per registrare l'ultimo stato del bottone
 int ledStatus;             // varabile per mantenere lo stato del led
 
 void setup() {
-  pinMode(buttonPin, INPUT);    // Set the switch pin as input
+  pinMode(buttonPin, INPUT);    
   pinMode(led, OUTPUT);    
-  Serial.begin(9600);           // Set up serial communication at 9600bps
-  ultimoStato = digitalRead(buttonPin);   // read the initial state
-  ledStatus = 0;
+  Serial.begin(9600);           // Attiva la comunicazione seriale a 9600bps
+  ultimoStato = digitalRead(buttonPin);   // Prima lettura del bottone
+  ledStatus = 0;                          // Il LED viene inpostato come spento                        
 }
 
 void loop(){
   statoAttuale = digitalRead(buttonPin);      // read input value and store it in var
-  delay(20);                      // riduce l'effetto bounce
-  if (statoAttuale != ultimoStato) {          // the button state has changed!
-    if (statoAttuale == HIGH) {                // check if the button is pressed
+  delay(20);                                  // riduce l'effetto bounce
+  if (statoAttuale != ultimoStato) {          // lo stato del bottone e' cambiato
+    if (statoAttuale == HIGH) {               // il bottone e' stato provato
       Serial.println("Button premuto");
      
-      ledStatus = !ledStatus ;    // Inverte lo stato del LED 
+      ledStatus = !ledStatus ;          // Inverte lo stato del LED 
       // ledStatus = 1 - ledStatus ;    // Forma analoga
       
       Serial.print("Stato del LED: ");  // DEBUG
@@ -33,7 +34,7 @@ void loop(){
     } 
   }
 
-  ultimoStato = statoAttuale;                 // save the new state in our variable
+  ultimoStato = statoAttuale;        // save the new state in our variable
   digitalWrite(led, ledStatus);      // setta il led allo stato richiesto
 
 }
diff --git a/basic/led_PWM_simple/led_PWM_simple.ino b/basic/led_PWM_simple/led_PWM_simple.ino
deleted file mode 100644 (file)
index 254ad86..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-    LED for PWM
- LEd PWM routine with a for loop, ascending and descending.
- */
-
-int led = 11;
-int c = 0;
-
-
-void setup()
-{
-  pinMode(led, OUTPUT);
-
-}
-
-void loop()
-{
-  for ( c = 0; c < 255 ; c++) {
-    analogWrite(led, c) ;
-    delay(5 );
-  }
-  // Now reverse
-    for ( c = 255; c > 0 ; c--) {
-    analogWrite(led, c) ;
-    delay(5 );
-  }
-}
-
-
-
diff --git a/basic/pwm_1_while_byte/pwm_1_while_byte.ino b/basic/pwm_1_while_byte/pwm_1_while_byte.ino
new file mode 100644 (file)
index 0000000..de1a994
--- /dev/null
@@ -0,0 +1,27 @@
+/*pwm_
+   Fade
+   PWM per un LED: aumentare progressivamente la luminosita'.
+ */
+
+byte led  = 9   ;     // Il pin ~9 e' abilitato al PWM
+byte brightness = 0;  // Valore iniziale per il PWM del LED
+
+// the setup routine runs once when you press reset:
+void setup()  { 
+  pinMode(led, OUTPUT); // Il PIN nove va dichiarato come un OUTPUT
+} 
+
+void loop()  { 
+  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).         
+  delay(10);       
+}
+
+/* Domande:
+
+1. Come fare a invertire la dissolvenza diminuendo la luminosita'?
+2. Provare a far salire e poi scendere la luminosita'
+
+
diff --git a/basic/pwm_2_for_loop/pwm_2_for_loop.ino b/basic/pwm_2_for_loop/pwm_2_for_loop.ino
new file mode 100644 (file)
index 0000000..12e6e78
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+    LED for PWM
+ PWM per un LED: aumentare progressivamente la luminosita'.
+ Utilizzo di un ciclo iterativo: for loop
+ */
+
+int led = 9; // Pin per il PWM
+
+void setup()
+{
+  pinMode(led, OUTPUT);
+
+}
+
+void loop()
+{
+  for ( i = 0; i < 255 ; i++) { // Operatore ternario, 3 argomenti:
+  /* 1. definizione iteratore
+     2. limite iteratore
+     3. incremento operatore
+     */
+    analogWrite(led, i) ;
+    delay(5 );
+  }
+  // Ora l'inverso
+  for ( c = 255; c > 0 ; c--) {
+    analogWrite(led, c) ;
+    delay(5 );
+  }
+}
+
+
+
+
diff --git a/basic/simplest_pwm_byte/simplest_pwm_byte.ino b/basic/simplest_pwm_byte/simplest_pwm_byte.ino
deleted file mode 100644 (file)
index fc7658d..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- Fade
- This example shows how to fade an LED on pin 9
- using the analogWrite() function.
- This example code is in the public domain.
- */
-
-byte led  = 9   ;        // the pin that the LED is attached to
-
-byte brightness = 0;    // how bright the LED is
-
-// the setup routine runs once when you press reset:
-void setup()  { 
-  // declare pin 9 to be an output:
-  pinMode(led, OUTPUT);
-} 
-
-// the loop routine runs over and over again forever:
-void loop()  { 
-  // set the brightness of pin 9:
-  analogWrite(led, brightness++);    
-  delay(10);       
-}
-
-