Ciao a tutti, sto avendo problemi con l'esempio InputPullupSerial sulla Leonardo.
Ho modificato lo script tenendo conto di alcuni consigli relati alla scheda:
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
e poi un delay(1); dopo la scrittura del valore sulla seriale.
Lo script risulta questo:
void setup(){
//start serial connection
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
//configure pin2 as an input and enable the internal pull-up resistor
pinMode(2 , INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop(){
//read the pushbutton value into a variable
int sensorVal = digitalRead(2);
//print out the value of the pushbutton
Serial.println(sensorVal);
delay(1);
// Keep in mind the pullup means the pushbutton's
// logic is inverted. It goes HIGH when it's open,
// and LOW when it's pressed. Turn on pin 13 when the
// button's pressed, and off when it's not:
if (sensorVal == HIGH) {
digitalWrite(13, LOW);
}
else {
digitalWrite(13, HIGH);
}
}
Ora, che se non si blocca tutto come prima all'apertura della seriale, non viene comunque letto il cambiamento di stato del pulsante.
Leggevo che potrebbe trattarsi del fatto che il cambio di stato digitale sul processore dela leonardo avviene a un voltaggio inferiore rispetto che su quello della Uno, e servirebbe quindi un'ulteriore resistenza esterna.
Voi sapete qualcosa di più in merito?
Grazie