Allora, oggi alle prime volte alle prese con Arduino Uno ed un pulsante credo di aver combinato qualche danno.
Provando l'esempio che sta in "digital --> button", ovvero accendere un led alla pressione di un pulsante collegato, nella creazione del circuito ho omesso la resistenza tra il pin +5v e il pin digitale 7.
Risultato: il led rimaneva sempre attivo (indipendentemente alla pressione del pulsante) e il computer mi avvisava di aver tolto l'alimentazione alle usb poiché esse richiedono troppa energia.
Ora mi chiedo, avendo nettamente superato i 40 mA consentiti dalla scheda, posso averla danneggiata?
Prima di tutto, essendo il tuo primo post, ti consiglio di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il REGOLAMENTO ...
... poi ... l'unico che può verificarlo sei TU ... collega una resistenza da 220Ω con in serie un LED al pin 7 e prova ad accenderlo e spegnerlo da programma ... così vedi subito se hai bruciato la porta.
Ovviamente questo NON significa che, anche se funziona, tu non possa aver danneggiato altro che ... scoprirai quando qualche cosa non ti funzionerà ...
Grazie mille per la risposta veloce, proverò come mi hai suggerito nel frattempo, dato che per ora non ho a disposizione nessun led con cui verificare, potrei usare il multimetro?
In tutti gli pin digitali dal 2 al 13 riesce ad andare sia low che high:)
Può essersi danneggiato qualcos'altro oltre ai pin? Io riesco a comunicare via seriale/caricare gli sketch senza problemi..
Apparte quello che è successo oggi, da quando ho comprato Arduino premendo il pulsantino di reset sulla scheda, il led collegato al pin 13 invece che lampeggiare rimane acceso, mentre nella documentazione trovo scritto che dovrebbe lampeggiare. Come mai? Non che mi preoccupi per questo, è solo una curiosità che non centra niente con questo topic in riguardo alla funzione del tato reset
Carissimo, solo come consiglio....., se avessi seguito quello di Guglielmo, cioè di leggere il regolamento, con una rapida ricerca avresti trovato risposta a quello che credi sia un problema. Non sempre la strada più breve è anche la più veloce
Provando l'esempio che sta in "digital --> button", ovvero accendere un led alla pressione di un pulsante collegato, nella creazione del circuito ho omesso la resistenza tra il pin +5v e il pin digitale 7.
Se il pin digitale 7 è stato correttamente impostato come input anche un 5v diretto senza resistenza non avrebbe creato un cc, se era un output invece si .... sicuro di aver seguito alla lettera l'esempio?
marco_user21:
Allora, oggi alle prime volte alle prese con Arduino Uno ed un pulsante credo di aver combinato qualche danno.
Provando l'esempio che sta in "digital --> button", ovvero accendere un led alla pressione di un pulsante collegato, nella creazione del circuito ho omesso la resistenza tra il pin +5v e il pin digitale 7.
Risultato: il led rimaneva sempre attivo (indipendentemente alla pressione del pulsante) e il computer mi avvisava di aver tolto l'alimentazione alle usb poiché esse richiedono troppa energia.
Ora mi chiedo, avendo nettamente superato i 40 mA consentiti dalla scheda, posso averla danneggiata?
Non capisco una cosa:
Omesso la resistenza vuol dire che hai messo il pin 7 a +5V? A quel punto quando premi il pulsante metti in corto l'alimentazione e percui i 5V della USB. Il PC segnala una corrente troppo alta ma la corrnte non interressa il controler su Arduino. Non dovresti aver dannegiato niente.
Intanto vi ringrazio per l'aiuto che mi state dando:)
Ho provato migliaia di ricerche ma non ho trovato niente non sapendo di preciso cosa cercare.
Lo sketch che ho usato è questo:
int valore = 0;
void setup() {
pinMode(7, INPUT);
pinMode(13, OUTPUT);
}
void loop() {
valore = digitalRead(7); //leggo il valore del pin 7
if (valore == HIGH){
digitalWrite(13, HIGH); //se è alto accendo il led su 13
}
else{
digitalWrite(13, LOW); //altrimenti chiudo
}
}
Quindi non ho fatto danni?
Volevo provare a collegare in questa maniera il pulsante (allegato), sfruttando la resistenza di pull-up di Arduino, è fattibile?
Metto il codice:
int pushButton = 7;
int led = 13;
void setup() {
pinMode(pushButton, INPUT);
digitalWrite(pushButton, HIGH); // pin 7 HIGH per abilitare la resistenza di pull-up
pinMode(led, OUTPUT);
}
void loop() {
int buttonState = digitalRead(pushButton);
digitalWrite(led, LOW);
if (buttonState == LOW) {
digitalWrite(led, HIGH);
}
else {
digitalWrite(led, LOW);
}
}
... ah, altra cosa, visto che è in un thread recente, ti do il link di un altra cosa che ti devi andare a leggere ... QUI e, troverai delle altre informazioni di cui devi tenere conto !
Grazie per il consiglio, veramente molto utile:)
Comunque consultando velocemente i references di pinMode() mi è sfuggita la parte che parla INPUT_PULLUP, così ho deciso di guardare altrove come abilitare la resistenza di pull-up.
Collegando il pin +5v direttamente ad un pin analogico (per esempio sbagliando il punto dove inserirlo nella breadboard), la scheda si danneggia o non dovrebbero esserci problemi? Non ho trovato niente a riguardo purtroppo e prima di "sperimentare" per pratica vorrei essere sicuro di non "bruciarla" subito:D
come vedi quando la resistenza diventa 0 ruotando il potenziometro, nell'ingresso entrano tutti i 5v (tensione massima tollerabile)
Comunque tutte queste info le trovi come ti hanno detto nel reference, anche google ti può essere di grande aiuto
Fai attenzione al setup() è li che decidi con le impostazioni il destino di un pin
Grazie mille, volevo solo essere sicuro di aver afferrato il concetto, dato il mio livello di inglese non proprio altissimo..
Un ultima domanda, poi la smetto
Come mai leggendo il valore dei pin digitali, senza nessun dispositivo collegato esso non è uguale o quantomeno vicino allo zero? Nei cinque pin trovo tutti valori da 250 a circa 300 su 1023 :o
è normale questa cosa?
cioè senza nessun sensore collegato, il valore dei pin analogici non dovrebbe essere zero?
O ho sbagliato ad impostare lo sketch per leggere i valori?