Resistenza di pull-up per i pulsanti

Ciao a tutti! Mi trovo alle prese con il mio primo progetto con Arduino. Con il solo scopo di esercitarmi un po', ho realizzato un semplicissimo timer binario con 7 LED. Ora vorrei aggiungere un pulsante di start/stop e uno di reset. Dagli innumerevoli tutorial online credo di aver capito che è necessaria ai pulsanti una resistenza di pull-up per evitare fluttuazioni di corrente. Prima di tutto vorrei capire in che modo l'assenza della resistenza in questione può danneggiare o pregiudicare il funzionamento di Arduino, dopodiché vorrei chiedervi in base a che cosa la resistenza deve essere proprio da 2.2 KOhm, ed, eventualmente, entro che raggio potrei sostituirla con resistenze simili (vorrei sbrigarmela con quello che ho in casa, possibilmente senza andare a comprare nulla). Scusate se mi sono dilungato e se la mia domanda sembrerà banale: sono alle prime armi con Arduino e con l'elettronica in generale. Grazie in anticipo!

Quando premi il pulsante con un capo a +5 in serie un resistenza collegata a massa fai circolare corrente tra + e - in base alla resistenza che metti, più bassa la metti + la corrente è alta e inutile, la resistenza serve a forzare lo stato dell'ingresso a + o a - a seconda della tua necessità ed eliminare correnti parassite create nell'instante in cui si avvicinano i contatti del pulsante. Una 2.2 bilancia il passaggio di corrente alla pressione e la forzatura dello stato. Nessuno ti vieta di usare una 2k o una 1.5k aumenti solo per un istante la corrente, in ogni caso comanda sempre il pulsante che ha resistenza 0

Ciao

Un entarta digitale senza circuito collegato non ha un livello definito. Puó essere sia HIGH che LOW a secondo dei disturbi che sono in giro e che lei capta.

Se collegni un tasto a un entrata e l' altro polo a massa (per esempio) finche non premi il tasto non sai cosa legge l'arduino. quando premi il pulsante quello si chiude e collega l' entrata a massa e leggi LOW. Per dare un valore definito quando il tasto non é premuto aggiungi una resistenza collegata tra entrata e +5V che porta i 5V all'entrata e cosí leggi HIGH. Quanto deve essere grande questa resistenza? Non é critico; ci sono 2 limiti: non deve essere troppo grande per portare l' entrata a HIGH. e non deve essere troppo piccola perché quando premi il pulsante circola una corrnete attraverso la resistenza tramite il pulsante a massa. Valori tra 1kOhm e 1MOhm vanno bene.

Il ATmega ha queste resistenza verso +5V giá integrate; si chiamano resistenze pullup. La accendi scrivendo H al pin definito come entrata e la spegni scrivendo L. Il valore di queste resistenze interne é tra 20 e 50 kOhm.

pinMode(inPin, INPUT); 
digitalWrite(ledPin, HIGH); // accendi la resistenza Pullup di questo pin

digitalWrite(ledPin, LOW);  // spegni la resistenza Pullup di questo pin

Puoi anche collegare tutto in modo invertito: il pulsante ai +5V e la resistenza a massa. Funziona ugualmente solo a pulsante permuto hai un HIGH e a pulsante non premuto LOW. La resistenza in questo caso la chiami pulldown.

Ciao Uwe