Arduino UNO accendere sezione di led programmata e led a risposta del suono

Buona domenica a tutti!
Mi chiamo Luca, ho 33 anni, italiano, ma vivo in Spagna.
Sono fresco del mondo Arduino (3 mesi) e sto studiando il piú possibile per poter arrivare ad essere indipendente. Ho trovato utilissimi molti tutorial in rete, libri e consigli, ed ho giá sviluppato i piú semplici circuiti di accensione led tramite bottoni.. sto continuando a studiare, ma come sapete ci va del tempo per imparare e non si fa tutto in 1 giorno.
Chiedo a voi perché sto programmando il mio Arduino UNO per una maschera di carnevale (un Robot) ed ho giá sviluppato il programma per accendere delle luci sui laterali (20 led in totale) con una sequenza programmata utilizzando 4 output digitali (12,11,10,9, ognuno abbinato ad un colore). Adesso vorrei aggiungere una fila di led che rispondano al suono tramite un microfono in modo da far acendere (magari piú o meno in base all'intensitá del suono, ma é un dettaglio trascurabile) il led quando parlo. La mia perplessitá é sul fatto di dover o meno usare 2 differenti schede o posso fare tutto con un programma? Avrei, se possibile, bisogno di un'aiutino sulla programmazione in questione, visto che ad ora non sono arrivato a studiare questo procedimento. Ci terrei a precisare che non é un tentativo di lasciare gli studi chiedendo a voi di programmare, ma di poter terminare questa maschera prima che arrivi a studiare questi capitoli. Visto che con 2 figli e 2 lavori, di tempo a disposizione non ne ho moltissimo e quindi il mio ritmo di studio, attualmente, é un pó lento..
Non so se ho posto bene la domanda, che ho approfittato per mischiarla alla mia presentazione... Chiedo venia per la lunghezza e prometto che se in futuro avró bisogno di altre delucidazioni, saró molto piú breve e riassuntivo
Saluti a tutti

Prima di tutto ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post ...

... poi, essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Il tuo post è già stato spostato nell'opportuna sezione del forum "Italiano”dove puoi proseguire la discussione.
P.P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

:frowning: sapevo sarebbe successo. Chiedo scusa

Secondo me per la tua applicazione puoi fare tutto con una sola scheda, tanto non ti interessa un suono pulito e puro ma solo rilevare eventuali livelli, volumi, frequenze.... con indicazioni di massima.
Anche se campionati a frequenze non elevate per una riproduzione decente, per pilotare i led andrà più che bene.

Riguardo il tuo studio, non è detto che si debba per forza procedere in ordine, potresti anche fare un salto agli esperimenti con i microfoni e poi tornare indietro per recuperare eventuali lacune.

Provando l'acquisizione audio ti dovresti poter rendere conto dei dati che potresti ottenere e di conseguenza ragionare sul come usarli per pilotare i vari effetti sui led.

Fatto questo passo, poi, qui dovresti poter trovare tutto l'aiuto necessario.

E' meglio che fai questi esperimenti per renderti conto di cosa puoi fare, altrimenti si va troppo alla cieca anche a dare suggerimenti, almeno secondo me.
bye

Grazie mille del consiglio! In effetti ci avevo fatto un pensierino, ma credevo fosse sbagliato saltare i capitoli per non trovarmi davanti a procedimenti non assimilati anteriormente e magari non capire bene quello che stavo facendo. In effetti peró, visto che l'ABC basico mi sembra di averlo capito, potrei per questo scopo, fare un salto in avanti e tentare di capire da me. Grazie per avermi avvantaggiato sul fatto che posso fare tutto con una scheda e soprattutto sapere che sia fattibile. Mi preoccupava un pó il discorso dello spazio a disposizione per nascondere la/le scheda/e. Inizio a sbatterci la testa quindi, cercando i capitoli inerenti ai microfoni e se dovessi riscontrare dei problemi, torneró qui a chiedere aiuto.
Grazie mille e saluti dalla Spagna

Grazie mille del consiglio! In effetti ci avevo fatto un pensierino, ma credevo fosse sbagliato saltare i capitoli per non trovarmi davanti a procedimenti non assimilati anteriormente e magari non capire bene quello che stavo facendo. In effetti peró, visto che l'ABC basico mi sembra di averlo capito, potrei per questo scopo, fare un salto in avanti e tentare di capire da me.

Se al momento non hai fatto esperienze con led e analogWrite il massimo che puoi fare è accendere e spegnere il led in base all'intensità del segnale rilevato dal microfono, segnale che all'interno di arduino leggerai con analogRead() la quale restituisce una variabile il cui valore massimo è di 1023 (10-bit), minimo zero.

L'idea che mi viene in mente subito e di vedere questi altri led variare intensità luminosa in base al valore ricavato da analogRead(), in breve un effetto simil luci psichedeliche anni 80.

Ciao.

Probabilmente servirà una media delle letture in un certo lasso di tempo in modo da lavorare su un segnale medio, altrimenti rischi che lampeggi e basta alla velocità del campionamento producendo una luminosità pressochè costante.

Se l'applicazione si limita a questo potrebbe anche essere una cosa sequenziale, del tipo, campiono per tot millisecondi, faccio la media e accendo/spengo i led e poi riparto dall'inizio, campiono di nuovo ecc.

Se invece ti serve fare altro si dovrà pensare ad un modo per far fare le varie operazioni in "parallelo", che poi non è un vero parallelo ma è fare un po' questo e un po' quello in alternanza per dare la sensazione che siano in parallelo. Per questo ti consiglio di studiare la funzione millis() da usare come cronometro per poi dirgli di fare A per tot millisecondi poi B per tot millisecondi e poi ancora A ecc.
Basta che ti salvi in una variabile il valore di partenza e poi calcoli la differenza e quando supera l'intervallo che desideri lanci l'operazione e ti salvi i nuovi valori di partenza per il giro successivo.

Confermo, appreso l'ABC, i vari tutorial sui dispositivi non sono in un ordine propedeutico, in genere sono in ordine di complessità crescente, ma restano sempre abbastanza semplici da seguire.
Se non capisci qualcosa sul codice, però, vai ad approfondire subito, così migliori l'ABC e procedi meglio.
E' sempre bene capire quello che si sta facendo, perchè si evitano tanti problemi che in genere fanno perdere molto più tempo.

Ti conviene amplificare e raddrizzare il segnale del microfono prima di mandarlo a un ingresso analogico. Cerca in rete e copia la parte del circuito prima degli integrati che pilotano i LED, ad esempio:

escludendo IC1, IC2 e i LED. Facendolo semplicemente mono, puoi escludere anche la parte di IC3B. Certo, potresti anche realizzare il circuito così com'è (o metà)! :slight_smile: