Ho bruciato arduino?

Ragazzi non riesco a capire se ho bruciato arduino oppure sono io che non so più collegare i pulsanti,
ho collegato il mio pulsante per vedere se in uscita mi mandava una risposta giusta, ma aprendo il monitor seriale mi da sempre 1 anche premendo il pulsante (a volte, a caso esce anche qualche 0), se invece collego il pin2 dalla parte della resistenza (a destra) che dovrebbe leggere lo stato del pulsante in uscita mi da 0 e premendo il pulsante resta sempre 0; il pulsante non è rotto! ho fatto le dovute prove.
Se provo sul pin4 legge il pulsante quando viene premuto ma lo stato 1 rimane anche dopo il rilascio del pulsante, per circa qualche secondo, a volte di più a volte di meno… e diciamo che su tutti gli altri pin tranne il 5 ci sono sempre comportamenti anomali simili a quelli descritti prima.
Cosa pensate voi? Ho bruciato tutto? Da buttare? posso rimediare in qualche modo?

ALLEGO FOTO

Ciao,
essendo il tuo primo post, ti chiederei di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

… relativamente al tuo problema, collega il bottone come da allegato e verifica definendo in ingresso il pin 9 cosa leggi quando il bottone è premuto o meno.

Se funziona correttamente, sposta semplicemente il filo dal pin 9 agli altri pin e verifica (… ovviamente se cambi pin devi modificare anche il codice).

Guglielmo

... per una prova rapida, puoi usare il seguente codice:

const byte BUTTON_PIN = 9; //pin to which the button is connected to
const byte LED_PIN = 13;   //integrated LED

byte ledStatus = 0;        //keep the LED status

void setup() {
 pinMode(BUTTON_PIN, INPUT);        //input pin
 pinMode(LED_PIN, OUTPUT);          //output pin to drive the LED
 digitalWrite(LED_PIN, ledStatus);  //light off the LED
}

void loop() {
 //check if the button has been pressed
 if (digitalRead(BUTTON_PIN) == LOW) {  //button pressed
   ledStatus = 1;   //led ON
 }
 else {  //button NOT pressed
   ledStatus = 0;   //led OFF
 }
 digitalWrite(LED_PIN, ledStatus);
}

Guglielmo

In anzi tutto grazie per la risposta, ho provato a collegare come da immagine e ad usare il codice da lei postato, non funziona, legge costantemente lo stato 0 anche premendo il pulsante

Prima di tutto, visto che non lo hai ancora fatto, ti rinnovo l'invito a presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) ed a leggere con attenzione il REGOLAMENTO ...

... poi, se hai fatto esattamente i collegamenti come da disegno che ti ho inviato e continua a non funzionarti ... allora spiegaci cosa hai fatto prima per danneggiare i pin perché, evidentemente, se non ti funziona, li hai danneggiati.

Ma, ripeto, verifica ESATTAMENTE che ogni singolo filo finisca nel punto giusto e che il bottone faccia veramente contatto (quei bottoni si infilano molto male nelle breadboard e spesso non fanno contatto. Eventualmente, per provare, elimina il bottone ed usa un semplice ponticello) ... ::slight_smile:

Guglielmo

Non funziona purtroppo, in uscita da sempre 0 sia premendo che non, solamente staccando il filo del pin9 si accende il led e toccando il + lo faccio spegnere, quindi il pin funziona, no?
forse ho bruciato la atmega?

Il mio errore è stato qualche tempo fa, ho fatto un corto circuito con il pulsante tra GND e 5V, senza accorgermi del malanno ho premuto il pulsante e vedevo spegnersi arduino e andare in errore il programma

Daddy9:
Non funziona purtroppo, in uscita da sempre 0 sia premendo che non, solamente staccando il filo del pin9 si accende il led e toccando il + lo faccio spegnere, quindi il pin funziona, no?
forse ho bruciato la atmega?

No, se staccando il filo e toccando con il filo del pin 9 o GND o +Vcc si spegne e si accende il LED, allora Arduino funziona ... è che, come ti dicevo, quei bottoni NON fanno bene contatto o lo hai montato nel verso sbagliato ... ::slight_smile:

Guglielmo

Hai proprio ragione, è il pulsante! Non fa bene contatto

Quei pulsanti sono fatti per essere montati e saldati su PCB, su breadboard non fanno bene contatto.

Non sospettavo del pulsante, dato che in alcuni progettini passati li avevo usati per provare i led e non avevo avuto problemi.

... quei pulsantini sono veramente bastardi su breadboard, molto meglio usare pulsanti fatti per lo scopo come QUESTI

Guglielmo

Ottimo a sapersi di questi pulsanti per breadboard! :slight_smile: infatti quelli per PCB li ho usati molto, e ammetto che mi hanno fatto incav >:( spesse volte!!

Ora il mio pulsante fa rimanere sempre acceso il led, come se fosse sempre chiuso quando in realtà non lo è! Che rabbia questi pulsanti, ma il bello che ne ho 10 e tutti e 10 fanno così ... ma che problema può essere?
Comunque il mio Arduino è molto strano.. non so se siano i pulsanti o cosa, ma solo a spostare un po i cavi, collegati ai pin ma scollegati dalla breadboard il led si accende, spegne, rimane acceso, ''trema'', e se uso il pulsante fa come vuole lui.. eppure tensione al pin gli arriva, ho misurato con il tester ma non si accende il led.
vi farei un video..

Ma le resistenza di pull-up/down le metti, sì?

Ragazzi ho provato il pulsante semplicemente al +5v di arduino e ho fatto accendere un led e il pulsante funziona perfettamente, collegandolo ai pin non funziona più niente.
Faccio un esempio, con il comando digitalRead(8); anche collegando il pin 8 direttamente al + mi legge sempre il valore 0 .
Credo che questa sia la prova del 9 che il mio arduino sia andato a farsi benedire, che dite?

 int pul = 0;

void setup() {
 pinMode(8, INPUT);
 pinMode(2,OUTPUT);

}

void loop() {
 Serial.begin(9600);
 pul = digitalRead(8);
 if(pul == HIGH) {
   digitalWrite(2, HIGH);}
 
 else {
   digitalWrite(2, LOW);}
   delay(15);
Serial.println(pul);
}

questo è il banalissimo programmino, dove attaccando il pin 8 direttamente a +5v dovrebbe leggermi sicuramente 1 no? invece non lo fa

Devi mettere una resistenza pulldown (una resistenza da 10kOhm o simile tra l' entrata e massa).
Ciao Uwe

Daddy9:
questo è il banalissimo programmino, dove attaccando il pin 8 direttamente a +5v dovrebbe leggermi sicuramente 1 no? invece non lo fa

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.
Infatti nel tuo codice appare una faccina !!

I collegamenti sono come gli stessi sulla foto, soltanto che al posto del piezo c'è un led collegato con una resistnza da 220 ohm a massa e in serie un pin digitale (2), quindi il pulsante è uguale alla foto