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()
analogWrite(led, c) ;
delay(2 );
}
- exit(0);
+ //exit(0);
}
+// ////////////
+// 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)
+
+// ////////////
+// Commento iniziale
/*
Blink v2
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 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() {
}
-
- 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
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
}
}
- 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
}
+++ /dev/null
-/*
- 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 );
- }
-}
-
-
-
--- /dev/null
+/*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'
+
+
--- /dev/null
+/*
+ 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 );
+ }
+}
+
+
+
+
+++ /dev/null
-/*
- 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);
-}
-
-