Ho realizzato questo listato al fine di far lampeggiare due led (ma ottenere di fatto impulsi) con un Encoder in pratica se giro a destra lampeggia il Led di destra se giro a sinistra quello di sinistra. Il fine ultimo di questo programma in realtà è quello di sostituire/integrare due pulsanti Up Down (sintonia) presenti in un altro programma (Radio FM con TEA Philips) apparentemente tutto OK Il Listato va bene con l'interfaccia 023 (Errori 0)
#include <Bounce.h>
#define pin1 2
#define pin2 3
#define LED 11
#define LED1 12
int counter = 0;
Bounce bouncer1 = Bounce( pin1,15 );
void setup() {
pinMode(pin1,INPUT);
pinMode(pin2,INPUT);
pinMode(LED,OUTPUT);
pinMode(LED1,OUTPUT);
Serial.begin(9600);
}
void loop() {
bouncer1.update ( );
if ( bouncer1.risingEdge()) {
if (digitalRead(pin2)){
digitalWrite(LED, HIGH );
counter++;
Serial.println(counter);
}else{
counter--;
digitalWrite(LED1, HIGH );
Serial.println(counter);
}
} else {
delay(8);
digitalWrite(LED, LOW );
digitalWrite(LED1, LOW );
}}
Ma guai a caricarla nell'interfaccia 152 perché ricevo una sfilza di errori (ovviamente ho inserito la libreria Bounce preventivamente).
ERRORI SEGNALATI:
Arduino:1.5.6-r2 (Windows 7), Scheda:"Arduino Uno"
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp:4:22: error: WProgram.h: No such file or directory
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp: In constructor 'Bounce::Bounce(uint8_t, long unsigned int)':
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp:11: error: 'millis' was not declared in this scope
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp:12: error: 'digitalRead' was not declared in this scope
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp: In member function 'void Bounce::write(int)':
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp:20: error: 'digitalWrite' was not declared in this scope
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp: In member function 'int Bounce::update()':
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp:46: error: 'millis' was not declared in this scope
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp: In member function 'long unsigned int Bounce::duration()':
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp:58: error: 'millis' was not declared in this scope
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp: In member function 'int Bounce::debounce()':
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp:71: error: 'digitalRead' was not declared in this scope
C:\Program Files\Arduino\libraries\Bounce\Bounce.cpp:73: error: 'millis' was not declared in this scope
Voi a questo punto mi potreste dire ma perché non carichi il programma del ricevitore FM nella 023 e fai tutto da li ?
Impossibile se carico il programma radio FM (che gira benissimo nella 152) ricevo una sfilza di errori nella 023 lo scambio attualmente è impossibile ! due programmi perfettamente funzionanti nelle loro interfacce ma incompatibili in interfacce diverse. Per me è importante far funzionare il programma "bounce" nella 152 considerato che il programma è più breve, preciso infine che il Bounce mi interessa relativamente anche senza rimbalzo va bene lo stesso l'Encoder infatti invia una serie di impulsi per cui uno in + uno in - poco importa gradirei sapere come modificare il programma bounce per renderlo compatibile con la 152 o semplificarlo anche senza bounce. Ho modificato questo listato che prevede Bounce solo perché è stato l'unico che si avvicinava alle mie esigenze, non essendo in grado di scriverlo da 0 senza Bounce. Grazie !