Problema led sul Pin 0

leo72:

alfredone78:
NON blinka (rimane acceso con una luce debole) SOLO quando lo collego al pin 0.

Questo fa pensare al 16U2 che tiene un segnale alto sulla linea che va a D0, e con la R da 1K tale segnale funga da pull-up per il led. Hai un multimetro per verificare se, a vuoto, su D0 leggi qualcosa?

Adesso sono al lavoro e non posso controllare... ma se cosi' fosse (se leggessi qualcosa sul pin D0 col multimetro), sarebbe un problema della mia scheda Arduino? Insomma, sarebbe guasta oppure e' normale che sia cosi'? Se fai la stessa prova sulla tua scheda, hai il mio stesso risultato?

una prova semplice da fare:
manda il blink su un pin diverso (p.es. il 13)
DOPO l'upload collega una R ed un LED sul pin D0 verso massa
In tal modo hai certezza che tu non stai mandando nulla, il led NON dovrebbe accendersi, se si accende c'è qualcosa che non va

altra prova:
manda il blink sul pin D0
collega una R ed un LED sul pin D0 verso +5V, lo vedrai spento
Il blink dovrebbe funzionare comunque.

domanda:
è possibile che alla prima prova sul pin D0 tu abbia dimenticato di mettere la R di limitazione? In tal caso il pin potrebbe essere danneggiato.

Si accende debolmente in tutti i casi perché D0 è Rx di Arduino, quindi un input, ed è collegato con una R da 1k con il Tx del 8u2 che sta a 1 logico, condizione di idle della seriale, pertanto il led risulta polarizzato e può drenare circa 3 mA che gli consentono di accendersi più o meno debolmente.

è possibile che alla prima prova sul pin D0 tu abbia dimenticato di mettere la R di limitazione? In tal caso il pin potrebbe essere danneggiato.

Impossibile perché in questo caso non potrebbe più caricare sketch.

Adesso non posso fare prove, però è possibile che l'IDE 1.0.1 preveda come default la seriale attiva anche se non specificatamente inizializzata, in questo caso D0 è un input (D1 è Tx quindi un out), e non permetta l'override del pin se prima non viene esplicitamente disabilitata la seriale, è solo una mia ipotesi ed è da verificare, però tra le varie possibilità è quella più semplice e probabile, "Occam docet".

leo72:

alfredone78:
NON blinka (rimane acceso con una luce debole) SOLO quando lo collego al pin 0.

Questo fa pensare al 16U2 che tiene un segnale alto sulla linea che va a D0, e con la R da 1K tale segnale funga da pull-up per il led. Hai un multimetro per verificare se, a vuoto, su D0 leggi qualcosa?

ma dovrebbe blinkare tra luce forte e luce debole (non si spegne perché riceve corrente dal 16U2) e non rimanere sempre acceso debolmente.
@ astrobeed
Se non usi (inizalizzi) la seriale il pin 0 e 1 sono pin normali e percui se lo metti come uscita dovrebbe funzionare? Potresti avere problemi di upload a causa dei componenti collegati.

Il UNO R3 monta un 16U2 non un 8U2 come gli UNO prima. Per questa discussione non fa differenza.

Ciao Uwe

uwefed:
@ astrobeed
Se non usi (inizalizzi) la seriale il pin 0 e 1 sono pin normali e percui se lo metti come uscita dovrebbe funzionare? Potresti avere problemi di upload a causa dei componenti collegati.

Infatti ho detto che la mia è solo una ipotesi, però è quella più semplice che spiega il problema, più tardi faccio un paio di verifiche e vediamo subito se è così oppure il problema è di altra natura.

uwefed:
ma dovrebbe blinkare tra luce forte e luce debole (non si spegne perché riceve corrente dal 16U2) e non rimanere sempre acceso debolmente.

Io ho capito che lo accende ma non si spenge del tutto:

alfredone78:
Risultato: il pin si accende e spegne (blinka) dalla posizione 13 alla posizione 1, ma NON blinka (rimane acceso con una luce debole) SOLO quando lo collego al pin 0.

Io leggo che il led lampeggia tra acceso bene e acceso flebile.

leo72:
Io leggo che il led lampeggia tra acceso bene e acceso flebile.

Io leggo che non lampeggia del tutto, ovvero rimane sempre acceso debolmente.

Il led sul pin D0 rimane sempre acceso (molto debole), non si spegne.

Potreste fare questa semplice prova quando avete tempo? Cosi' capisco se e' la mia scheda ad essere danneggiata oppure e' normale che funzioni cosi'... Grazie a tutti!

Ecco lo sketch da caricare (collegando il led e la resistenza appunto al pin D0):

int led = 0;

void setup() {                
  pinMode(led, OUTPUT);     
}


void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

Per la cronaca: non ho MAI collegato un led senza resistenza a nessun pin...ho messo SEMPRE la resistenza di protezione.

Mi togli una curiosità?
Puoi provare con la vecchia IDE 0022?

leo72:
Mi togli una curiosità?
Puoi provare con la vecchia IDE 0022?

In questo momento sono al lavoro e non posso...comunque, da dove si scarica?

Edit: ho trovato il link, grazie comunque. Pero' una prova potresti farla tu? Insomma, se lanci il mio sketch sul pin 1, il led ti blinka o no?

alfredone78:

leo72:
Mi togli una curiosità?
Puoi provare con la vecchia IDE 0022?

In questo momento sono al lavoro e non posso...comunque, da dove si scarica?

Edit: ho trovato il link, grazie comunque. Pero' una prova potresti farla tu? Insomma, se lanci il mio sketch sul pin 1, il led ti blinka o no?

Sono al lavoro anch'io :stuck_out_tongue:

alfredone78:
Pero' una prova potresti farla tu? Insomma, se lanci il mio sketch sul pin 1, il led ti blinka o no?

La prova l'ho fatta io, il led sul pin 0 lampeggia, il che vuol dire che la mia ipotesi era completamente campata per aria :grin:
Ora accertato che non ci sono "oscuri" misteri software nel'IDE 1.0.1 tocca capire perché a te rimane sempre leggermente acceso, e questo è normale quando D0 è settato come input (condizione normale quando usato come seriale) per via della stato logico 1 proveniente dal 16u2.

astrobeed:

alfredone78:
Pero' una prova potresti farla tu? Insomma, se lanci il mio sketch sul pin 1, il led ti blinka o no?

La prova l'ho fatta io, il led sul pin 0 lampeggia, il che vuol dire che la mia ipotesi era completamente campata per aria :grin:
Ora accertato che non ci sono "oscuri" misteri software nel'IDE 1.0.1 tocca capire perché a te rimane sempre leggermente acceso, e questo è normale quando D0 è settato come input (condizione normale quando usato come seriale) per via della stato logico 1 proveniente dal 16u2.

Scusa la domanda banale (sono un novellino...): come faccio a sapere se lo uso "come seriale"? E, in tal caso, come si disabilita?

lo abiliti come seriale se fai una Serial.begin(), quindi in teoria non lo stai usando come Serial, salvo che l'IDE arduino in fase di compilazione non aggiunga da solo qualche inizializzazione (ne aggiuge un bel pò :))

@astro: su che board hai fatto il test?
@afredone: su che board hai fatto il test?

lesto:
lo abiliti come seriale se fai una Serial.begin(), quindi in teoria non lo stai usando come Serial, salvo che l'IDE arduino in fase di compilazione non aggiunga da solo qualche inizializzazione (ne aggiuge un bel pò :))

@astro: su che board hai fatto il test?
@afredone: su che board hai fatto il test?

Se non lo sto usando come Serial, allora cio' vuol dire che la mia schedina e' danneggiata? =(

Come gia' detto, ho fatto il test su un Arduino UNO R3.

lesto:
@astro: su che board hai fatto il test?

Non ha importanza la scheda, basta che sopra ci sia un 328, il comportamento del pin D0 non dipende dal modello di Arduino.
L'ipotesi della seriale inizializzata di default dall'IDE l'avevo già fatta io, però al test pratico risulta non essere così.

non so, esistono varie versioni di chip UBB/Seriale utilizzate e anche varie versioni di firmware per gli XXXU2...
il che è una causa molto probabile del comportamento

@alfredone: la scheda è un tank, dubito fortemente che tu l'abbia danneggita. prova veloce: togli il led e prova a caricare del codice, se funziona allora tuto a posto :wink:

Ragazzi, scusate se sono insistente ma la domanda e' unica:

"Che prove posso fare per capire se la porta D0 della mia scheda Arduino Uno R3 sia danneggiata o meno?" Prove pratiche...?

leggi il mio messaggio precedente...

@alfredone: la scheda è un tank, dubito fortemente che tu l'abbia danneggita. prova veloce: togli il led e prova a caricare del codice, se funziona allora tuto a posto smiley-wink

lesto:
leggi il mio messaggio precedente...

@alfredone: la scheda è un tank, dubito fortemente che tu l'abbia danneggita. prova veloce: togli il led e prova a caricare del codice, se funziona allora tuto a posto smiley-wink

Prova gia' effettuata ieri sera. Tolgo il led, carico il codice, ricollego il Led e non funziona... :frowning: