Go Down

Topic: Errore di array (??) (Read 993 times) previous topic - next topic

docdoc

poi docdoc dice che serve anche una resistenza, ma non entro più nel merito di quello che dice lui
Un attimo, a me va bene il confronto quindi se dico cazzate e me lo si fa notare gentilmente e con informazioni concrete sono ben disposto ad ammetterlo (e l'ho fatto, quando è capitato, anche qui nel forum, credo che gli altri possano confermarlo), siamo tutti qui per imparare comunque qualcosa di nuovo.

Quindi vorrei spiegare meglio la cosa, soprattutto per chiarire all'OP (almeno spero) cosa intendessi, e per chiarire questa cosa con te perché non so se ci eravamo in realtà capiti.

Intanto premettiamo entrambi che l'OP non ha mai detto chiaramente se preferisca una strada o l'altra tra pullup e pulldown, e visto che sono alternative e di fatto equivalenti, sarebbe bastato dire una cosa del tipo "mah, per ora ho già messo il positivo al comune del commutatore quindi preferisco il pulldown" (o viceversa) per cui siamo sempre rimasti in "sospeso" tra una soluzione e l'altra, che influisce quantomeno sul codice (test su HIGH o LOW?) ma che fa "impicciare" anche noi nei discorsi.

Il mio schema (quello che avevo proposto QUI e che il nostro amico riteneva "complicato") era relativo al problema della mancanza di pulldown (o pullup), al quale ho aggiunto il discorso dei LED, per cui alla prima soluzione (resistenza pulldown verso GND) ho aggiunto solamente il LED e relativa resistenza.

Alla lamentela che si complicherebbe il cablaggio (visto che avrebbe dovuto mettere altre resistenze per i LED) ho risposto che basta mettere il LED in parallelo senza resistenza a patto di metterla (una!) sul comune del commutatore, lasciando le altre (quelle attuali) a fare il pulldown (quindi andavano spostate verso GND e non tra pin e commutatore).
Per capirci, questi sono i collegamenti che aveva lui (per singolo pin ovvero posizione del selettore):



Questa la soluzione "semplificata" che avevo solo descritto in questo modo:

Quote
Dato che hai un solo LED acceso per volta, puoi evitare del tutto le singole resistenze dei LED mettendo la resistenza limitatrice (da 220 ohm) tra il +5V ed il comune del commutatore e lasciare solo la pulldown da 10k, ed ovviamente il LED, sempre entrambi tra pin e GND.
Non avevo messo lo schema, che ho fatto "al volo" e che posto adesso per chiarire meglio (perché temo che l'OP si sia "spaventato" dalla descrizione):



Quindi confrontando questo schema col primo, è facile notare ora che la "complicazione" era molto relativa, in quanto consisteva solamente nel girare le attuali resistenze per metterle dal pin verso GND e mandare il pin direttamente al commutatore. A questo aggiungere la resistenza limitatrice da 200 al comune del commutatore (come scrissi, "Questo ti abbasserà un poco la tensione ricevuta dal pin ma non ti dovrebbe influire sulla lettura digitale semplificandoti però il cablaggio.").

Per me quello schema dovrebbe funzionare, e questa è la spiegazione per l'OP.

Passiamo al tuo discorso delle resistenze. Prendendo il mio ultimo schema qui sopra, quale resistenza secondo te è inutile e perché? Se intendevi dire di lasciare solo il LED tra pin e GND, senza la resistenza di pulldown da 10k, il pin non risulterebbe, appunto, in pulldown in quanto il diodo sarebbe in interdizione (escluse eventuali fluttuazioni casuali del pin).
Ripeto, non è polemica, voglio veramente capire se ho capito ciò che dicevi tu e/o se tu hai capito ciò che dicevo io.
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

Standardoil

Di grazia...

Come sarebbe configurato quel pin, e che test ci faresti?
Prima legge di Nelson (che sono io): Non scambiare il fine con il mezzo: ricorda "cosa" devi fare, non "come" devi farlo

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

enrico24

Ieri abbiamo utilizzato il "congegno" senza alcun problema, tutto ha funzionato alla perfezione.

In pratica ho utilizzato una configurazione più semplice invertendo i poli ed utilizzando le singole resistenze da ca. 500 ohm. Il test viene fatto su LOW.

Il circuito funziona. Ora ho più tempo e sarebbe mia intenzione rifare, nei prossimi mesi e nonostante il parere contrario di molti, i collegamenti come da voi suggerito cercando una soluzione più "professionale".

Vorrei avere anche un vs consiglio/parere sull'effettiva necessità di rifare completamente i vari collegamenti o se ritenete che quanto da me fatto possa (nonostante tutti gli errori, ecc, ecc.) continuare funzionare e se quanto avvenuto ieri è da considerarsi un comportamento eccezionale.

Saluti

Enrico


docdoc

Di grazia...
Come sarebbe configurato quel pin, e che test ci faresti?
Mi pareva ovvio: configurato INPUT, ed il test per vedere se il pin è quello selezionato fa confronto con HIGH.
Quindi?
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

Standardoil

E dato il colore del led, che tensione avresti al pin?
Prima legge di Nelson (che sono io): Non scambiare il fine con il mezzo: ricorda "cosa" devi fare, non "come" devi farlo

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

docdoc

In pratica ho utilizzato una configurazione più semplice invertendo i poli ed utilizzando le singole resistenze da ca. 500 ohm. Il test viene fatto su LOW.
Beh vista la precedente esperienza facci uno schemino simile al mio (quindi le connessioni di UN solo pin). Invertire i poli non cambia nulla se non per avere il pin con pullup (credo il tuo) o pulldown (il mio schema) e quindi il confronto del digitalRead(), ma mi preoccupa la resistenza da soli 500 Ohm (per fare pullup o pulldown si usano almeno 10k, per ridurre la corrente).

Quote
Vorrei avere anche un vs consiglio/parere sull'effettiva necessità di rifare completamente i vari collegamenti o se ritenete che quanto da me fatto possa (nonostante tutti gli errori, ecc, ecc.) continuare funzionare e se quanto avvenuto ieri è da considerarsi un comportamento eccezionale.
Potrebbe non essere eccezionale, ma è difficile da dire se non posti il TUO schema attuale. E poi TUTTI i 10 pin dovrebbero avere lo stesso schema, quindi anche 10 LED (per dire, hai ancora il pin 9 "invertito"?).

Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

docdoc

E dato il colore del led, che tensione avresti al pin?
Non facciamo gli indovinelli, dì quello che vuoi dire spiegandolo per bene.
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

Standardoil

No, dillo tu, che hai dimensionato il circuito,
su quali valori lo hai dimensionato
Non ti farò il calcolo di verifica, saprai pure che conti hai fatto...
Prima legge di Nelson (che sono io): Non scambiare il fine con il mezzo: ricorda "cosa" devi fare, non "come" devi farlo

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

Standardoil

Giusto perché sia ben chiaro, e nessuno dopo faccia il giochino del 'ah ma io mi riferivo a...'
Stiamo parlando di questo schema:




Prima legge di Nelson (che sono io): Non scambiare il fine con il mezzo: ricorda "cosa" devi fare, non "come" devi farlo

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

enrico24

x docdoc --> Allego lo schema attuale, non ho precisato che il LED in posizione 0 è rosso, quelli dal 1 al 6 sono verdi e il 7, 8 e 9 sono blu. In posizione 10 NON vi sono LED.

Spiacente non riesco ad inserire uno schema simile al tuo per cui allego il file.

Saluti

Enrico

Silente

Dovresti avere compreso che, per un opportuno funzionamento dell'apparecchio TUTTE le 10 sue uscite devono essere configurate nello STESSO IDENTICO MODO! Lo sono?
Le rusposte possibili sono:
"Si"
"No, e rimedio subito"
'No, perché (inserire motivazione valida)"
Dove va un numero va una variabile o una funzione. E dove va una boolean va un insieme di test.

Se vuoi ottenere devi saper spiegare

In pochi capiscono l'importanza di formattare, sii tra di essi

enrico24

Ovviamente la risposta è NO …. ma consideriamo il tutto come 10 (o 11) semplici circuiti (+ ,, (LED) .. resistore .. interruttore ..GND) hanno il + ed il GND in comune (come tutti dli altri circuiti non facenti capo al selettore); devo verificare se il circuito è chiuso o no, una volta verificato in che punto questo è chiuso/aperto porto un filo al PIN.

Quindi l'affermazione che tutte le uscite devono essere collegate nello stesso modo (probabilmente concettualmente corretta) è, nella pratica, opinabile.

D'altra parte il tutto ha funzionato e vorrei molto capire il perché.

Saluti

Enrico

Standardoil

#42
Jul 15, 2019, 08:28 pm Last Edit: Jul 15, 2019, 08:40 pm by Standardoil
Beh, oggi avevo 3 minuti e mi sono fatto un programmino di prova....
Code: [Select]

// di Nelson "StandardOil"
// Idea da sviluppare: prova led ad alta impedenza


void setup(void)
{
    pinMode(12, INPUT);
    pinMode(13, OUTPUT);
}

void loop(void)
{
    digitalWrite(13, digitalRead(12));
}

che segnala sul pin 13 eventuali disturbi sul 12
attacco un filo libero e "sorpresa sorpresa" il led sul 13 sembra impazzito (leggere la sottile ironia, grazie)
tolgo il filo e ci metto solo l'anodo di un LED e "sorpresa sorpresa" peggio che peggio (ironia piu' sottile, grazie)
metto il catodo del led a massa e "sorpresa sorpresa" (ma non per me) il pin 13 si spegne e se ne sta buono buono come un agnellino....

perchè?

perche il LED non è "interdetto" come crede qualcuno, ma si trov(erebbe) a lavorare "prima" del ginocchio della curva, se la tensione ai suoi capi salisse ad almeno 1,8V condurrebbe in pieno, ma già per segnali deboli deboli conduce un "pochino pochino", drenando a massa i disturbi
certo è che fare la prova Hardware come ho fatto io sarebbe sparare sulla crocerossa, se non fosse che io lo dicevo "anche" prima di fare la prova
altri lo negavano "senza" le prove.........
eqqquuuuandooooo ci vuole ci vuole............


Edit,
Che questa cosa rimanga a testimonianza che 'il generale' non parla mai a vanvera...
Prima legge di Nelson (che sono io): Non scambiare il fine con il mezzo: ricorda "cosa" devi fare, non "come" devi farlo

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

enrico24

Probabilmente il commento di Standardoil non è diretto a me, in quanto non ne ho capito alcunché.

Mi piacerebbe comunque poterlo capire (non si è mai finito d'imparare, e quando non so io chiedo), è possibile avere una spiegazione per il mio livello di conoscenza (ancora molto basso, purtroppo)?

Grazie + saluti

Standardoil

nelle pause tra una puntata di trasloco e la successiva non sempre avanzo abbastanza tempo per dedicarmi ai miei giochini preferiti, comunque oggi ho avanzato pochi minuti e ho provato un "noto" circuito.
non che ne avessi bisogno, intendiamoci, ma mi è piaciuto "sparare sulla crocerossa" una seconda volta
naturalmente NON va, l'ingresso non sente, è ovvio che sia così, qualunque cosa altre persone dicano
ne con, ne senza la resistenza di pull-down da 10 k il circuito va, giusta regola ne con ne senza la resistenza di pull-down sente disturbi, ma la cosa non è ne una novità ne molto consolatoria...

voce di uno che grida nel deserto


la cosa che mi ha deluso, molto deluso è che io già qui:
https://forum.arduino.cc/index.php?topic=622984.msg4227618#msg4227618
avevo spiegato perchè non poteva andare, ma vedo che, appunto, gridavo nel deserto
Prima legge di Nelson (che sono io): Non scambiare il fine con il mezzo: ricorda "cosa" devi fare, non "come" devi farlo

Non bado a studenti, che copino altrove

Tu hai problema-Io ti domando-Tu non mi rispondi: vuol dire che non ti serve più

Go Up