Problema ingressi Arduino

Ciao ragazzi, possiedo un Arduino 2009 da un paio di anni, ma da uno a questa parte è rimasto spento, quando sono andato a riprovarlo ho notato dei problemi con gli ingressi, ovvero anche con un semplice esempio di un pulsante che accende un led, l'arduino non sembra reattivo, mi spiego meglio, chiudo il contatto e il led si accende sempre, ma quando apro il contatto a volte il led si spegne dopo un secondo a volte subito come dovrebbe, a volte si affievolisce la luce ma rimane acceso qualche secondo, dite che è un ploblema dell'ATMEGA? grazie

P.S. qui un semplice [u]video[/u] del problema, si nota una certa latenza nello spegnimento

In base a come hai fatto lo sketch si dovrebbe accendere anche se poggi il dito. :grin: Forse hai lasciato il pin flottante. (senza pull-up/pull-down)

Anche secondo me l'errore é che non hai messo uan resistenza pullup / pulldown o o non attivato la resistenza pullup interna. Ciao Uwe

grazie per le risposte, questo è il codice

#define led 13                
#define pulsante 1             
int  val = 0;                 
  
void setup() {  
  pinMode(led, OUTPUT);    
  pinMode(pulsante, INPUT);
}   
void loop() {  
  val = digitalRead(pulsante);  
  
  if (val == HIGH) {  
    digitalWrite(led, HIGH); 
  }  
  else {  
    digitalWrite(led, LOW); 
  }  
}

con il digitalWrite non dovrebbero attivarsi la resistenza interna?

ps: collegando il GND all'ingresso si spegne subito, dite che è un problema di floating?

E’ un problema di pull-up/pull-down.
O colleghi il pulsante al pin impostato come ingresso con la pull-up interna e dall’altra a GND.
Pin Arduino (con pull-up)<—> Pulsante <—> GND
e metti nel setup

pinMode(pulsante, INPUT_PULLUP);

e come condizione

if (val == LOW)

oppure prendi una resistenza da 10K, colleghi il pulsante da una parte a 5V e dall’altra parte a GND con la resistenza e al pin di Arduino
5V <—> Pulsante <-±> Pin Arduino
—> 10K <—> GND
lasciando il tuo sketch attuale.

Ciasco: con il digitalWrite non dovrebbero attivarsi la resistenza interna?

ps: collegando il GND all'ingresso si spegne subito, dite che è un problema di floating?

Ma dove hai messo nello sketch il digitalWrite?

ps: sí

Ciao Uwe

Ciasco: con il digitalWrite non dovrebbero attivarsi la resistenza interna?

Dipende. Attivi la pull-up interna solo se "scrivi" su segnale High su un pin impostato come Input (per farlo in un unico passaggio, devi usare il metodo segnalato da PaoloP). Ma come ha fatto notare Uwe tu non hai messo nessuna digitalWrite sul pin di input, per cui quel pin è e resta flottante.

grazie a tutti ragazzi e scusate l'ignoranza, avevo fatto un animazione per un presepe qualche anno fa ma non avendo utilizzato input mi era sfuggita questa cosa, grazie ancora :)