Errore di array (??)

enrico24:
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).

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"?).

Standardoil:
E dato il colore del led, che tensione avresti al pin?

Non facciamo gli indovinelli, dì quello che vuoi dire spiegandolo per bene.

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...

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

docdoc:

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

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)"

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

Beh, oggi avevo 3 minuti e mi sono fatto un programmino di prova....

// 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...

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

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

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

che poi sarebbero ingressi, ma soprassediamo

comunque, sbaglio oppure il sistema ha cominciato ad andare quando hai buttato alle ortiche pratica ed opinione ed hai collegato il pulsante come teoria comanda? ovvero come gli altri?
alla luce di questo fatto sei ancora dell'idea che certe cose siano opinabili?
e, sopratutto, sei dell'idea che la TUA opinione, sia "meglio funzionante" della MIA teoria?
ricordo male o la tua "opinione" ti ha portato a dover chiedere spiegazioni solo un paio di post fa?

prima legge di Nelson, che sono io: fai ordine e metti fuori la spazzatura.
Tradotto in Italiano: lascia le "opinioni" e prendi "lezioni" di teoria, che ne hai molto bisogno

Mi sono stampato tutte le varie risposte cercando di capire chi si rivolge a chi, e mi sembra ci sia una gran confusione.

x Standardoil

comunque, sbaglio oppure il sistema ha cominciato ad andare quando hai buttato alle ortiche pratica ed opinione ed hai collegato il pulsante come teoria comanda? ovvero come gli altri?

Non avendo le basi di elettronica non posso dire di avere opinioni, osservo cosa succede e cerco di comportarmi di conseguenza.

Il controllo sullo stato spento/acceso è fatto prima del resistore nel caso delle posizioni 1 e 10 e dopo nelle altre.

Ho comunque rifatto uno schemino applicando (spero) i tuoi consigli (v. post del 15.06).

Può andar bene?

enrico24:
Ho comunque rifatto uno schemino applicando (spero) i tuoi consigli (v. post del 15.06).
Può andar bene?

Questo periodo non ho molto tempo libero purtroppo e non ho letto tutti i messaggi precedenti (spero di recuperare nel weekend), però ho dato un'occhiata al volo al tuo schemino, e mi pare che il pin di posizione 10 (ossia D40 del Mega) continui a non essere collegato come gli altri 9, ossia il pin va direttamente al contatto 10 del commutatore ed alla resistenza di pulldown.

Quindi confermi che è voluta questa cosa, ossia per quella posizione NON devi avere alcun led corrispondente (ossia quando il commutatore è nella posizione 10 non si accende nessun led, anche se il pin va HIGH)?

Si, corretto.

Sto eventualmente pensando di far lampeggiare alcuni altri LED via SW, per avvisare che si tratta di una posizione che porta ad eventi eccezionali.

enrico24:
Sto eventualmente pensando di far lampeggiare alcuni altri LED via SW, per avvisare che si tratta di una posizione che porta ad eventi eccezionali.

Giusto per completare e correggere la cosa, visto anche che pare che tinypic sia down quindi tutte le mie immagini non si vedono più, riporto qui lo schema del singolo pin che avevo proposto all'inizio (non lo avevo salvato quindi l'ho rifatto ed inviato su imgur stavolta) per avere un input digitale con un LED di monitoraggio in parallelo:

La resistenza sul LED che ti avevo indicato all'inizio è in realtà necessaria, per cui il suggerimento che ti avevo dato per cercare di semplificarti il cablaggio portandola a monte del pulsante (ossia nel tuo caso al comune del commutatore) non era corretta, e probabilmente è su questo che Standardoil aveva ragione (ma io non ero riuscito a capire cosa intendesse ed a quale schema si riferisse).

Se vuoi provare, il programmino di test è:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println("Inizio");
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println(digitalRead(2));
  delay(200);
}

L'ho anche provato, e così funziona correttamente ossia il digitalRead(2) legge 0 quando non si preme nulla, e 1 quando il pulsante è premuto, ed il LED si accende quando si preme il pulsante.

Per cui anche il tuo ultimo schemino purtroppo non mi pare che sia corretto (ignoro il pin 10 visto che hai detto che ti va bene senza LED) perché manca la resistenza sul LED ed i 100 ohm sul comune non servono a niente.

Fammi sapere quindi come pensi di risolvere se vuoi mantenere i LED di monitoraggio (ovviamente visto che hai una Mega puoi anche pensare di gestirli con propri singoli pin, che puoi anche far lampeggiare volendo).

Vabbe', va
Ritiro
La ragione è che non avevo letto tutto il post di docdoc
E mi era sfuggito la sua spiegazione
Adesso vado a prendere la cenere per il capo...

Non ti preoccupare, niente cenere, anche io ho voluto fare ammenda nei tuoi confronti, perché a volte in digitale scritto ci si comprende male e sia io sia tu siamo "partiti per la tangente" troppo facilmente, dando per scontato di aver capito ciò che l'altro diceva, in un dannoso incrocio di ragionamenti.

Una birra pagata se dovessimo incontrarci una volta di persona, ok? :wink:

contaci
io poi adesso abito vicino alla "Angelo Poretti"....

GRAZIE a tutti, sto adottando la soluzione proposta, moltiplicando per 11 lo schemino di docdoc. In pratica devo rifare tutto per cui spero fi finire entro l'autunno.

Al momento sto cercando di fare un allarme intrusi con ESP32 per un amico per cui ho dovuto accantonare parzialmente l'ottimizzazione del progetto.

Ancora tante grazie a tutti per la disponibilità.

Enrico