Salve a tutti. Ho appena iniziato a fare pratica con Arduino (usando una scheda 2009 con ATmega 328), coi tutorial online e il libro di Massimo Banzi.
Sono un programmatore, quindi non ho particolari problemi con la parte software di Arduino, e non ho troppi problemi neanche coi circuiti logici, ma conosco decisamente poco l'elettronica analogica (ma mi piacerebbe capire anche un po' più di quello che serve per usare a un livello base Arduino).
Immagino che siano domande piuttosto banali, ma un chiarimento (e/o un rimando a risorse sull'argomento adatte a un programmatore, più che a un esperto di elettronica...) mi aiuterebbe molto.
Ho un dubbio relativo anche alla parte puramente software (più che altro, vorrei avere una conferma):
cambia qualcosa se, invece di lasciare che venga chiamata automaticamente in continuazione la funzione di loop, non esco mai dalla funzione e implemento io un loop all'interno di questa?
In questo modo, tra l'altro, posso usare variabili locali invece di variabili globali per mantenere dati tra una iterazione e l'altra
Un dubbio ce l'ho poi sull'interfacciamento tra computer (uso un Mac) e la scheda:
cosa cambia, tra tty.usbserial, e cu.usbserial? Per caricare i programmi dal computer alla scheda, la guida sul sito dice di usare tty, mentre il libro di Banzi dice di usare cu: a me, almeno per inviare i programmi alla scheda, funzionano entrambi
Per quanto riguarda, infine, i dubbi legati alla componente fisica, ai concetti di elettronica:
i pin 3, 5, 6, 9, 10, 11, in sono digitali. Quando commutati in output analogico, non lo sono realmente, ma rimangono pin digitali che mandano un segnale in PWM (pulse width modulation), giusto?
per i pin digitali, posso scegliere se devono essere input o output: in teoria posso commutarli anche durante il main loop, o solo nella fase di setup?
se invece di collegare ad esempio un led a un pin digitale, ad esempio 12 o 13, dopo averlo commutato in output e aver mandato il segnale HIGH, collego un tester e misuro il voltaggio, posso leggere 5V; se tento di misurare l'amperaggio, senza collegare una resistenza in serie, rischio di danneggiare Arduino, perché si supera il valore di corrente massimo supportato, per cui le uscite vengono disattivate per sicurezza, giusto?
Per la prima domanda si, puoi creare un loop dentro il loop ma non ne vedo l'utilità; che vantaggio usare una variabile locale da riciclare dentro un sottoloop anzichè usare una globale da utilizzare nel loop principale?
Per la seconda non ti so dire: non uso mac
Per la terza: si adesso non ricordo il numero dei PWM ma... non diventano mai analogici: simulano l'analogico con il PWM ma l'uscita è sempre e solo ALTO-BASSO
Per la quarta: puoi commutarli a input o otuput quando vuoi
Per l'ultima: si puoi collegare un tester e no, non danneggi arduino. Nel dubbio metti una resistenza in serie ma non penso tu possa avere problemi.
Per la prima domanda si, puoi creare un loop dentro il loop ma non ne vedo l'utilità; che vantaggio usare una variabile locale da riciclare dentro un sottoloop anzichè usare una globale da utilizzare nel loop principale?
Più che altro, chiedevo per pura curiosità. Ho citato inoltre l'uso delle globali e delle locali semplicemente perché, da vecchio programmatore C, sono abituato ad usare il meno possibile le globali. Mi rendo conto comunque che, in questo particolare ambito, fa molto comodo organizzare gli sketch in un certo modo.
Per la terza: si adesso non ricordo il numero dei PWM ma... non diventano mai analogici: simulano l'analogico con il PWM ma l'uscita è sempre e solo ALTO-BASSO
A proposito di questo, ho sempre letto ovunque che i led non vanno mai usati direttamente, ma sempre in serie a una resistenza, per limitare la corrente che li alimenta, e lo comprendo anche con le mie limitatissime conoscenze di elettronica.
A differenza però degli ultimi esempi presentati, nel libro di Banzi, nei primi esercizi c'è un led collegato a un pin di output digitale, direttamente.
Quando invece è modulato in PWM per regolarne l'intensitità, è collegato in serie a una resistenza. Come mai questa differenza, visto che i voltaggi sono uguali?
Immagino dipenda dal fatto che nel secondo caso il led si può danneggiare per via della frequenza o magari di picchi irregolari, o qualcosa del genere...
Per la quarta: puoi commutarli a input o otuput quando vuoi
Quindi potrei senza particolari problemi collegare una scheda Arduino a qualcos'altro, anche un'altra Arduino, e farli comunicare bidirezionalmente attraverso i pin digitali, commutandoli tra input e output di volta in volta. Bene.
A proposito di questo, ho sempre letto ovunque che i led non vanno mai usati direttamente, ma sempre in serie a una resistenza, per limitare la corrente che li alimenta, e lo comprendo anche con le mie limitatissime conoscenze di elettronica.
A differenza però degli ultimi esempi presentati, nel libro di Banzi, nei primi esercizi c'è un led collegato a un pin di output digitale, direttamente.
Quando invece è modulato in PWM per regolarne l'intensitità, è collegato in serie a una resistenza. Come mai questa differenza, visto che i voltaggi sono uguali?
Immagino dipenda dal fatto che nel secondo caso il led si può danneggiare per via della frequenza o magari di picchi irregolari, o qualcosa del genere...
No la risposta è che nel primo caso avrai visto il LED collegato al PIN13 digitale.
Questo ha già una piccola resistenza integrata all'interno e da qui spiegato l'arcano
In tutti gli altri PIN devi mettere la resistenza esternamente.
Quindi potrei senza particolari problemi collegare una scheda Arduino a qualcos'altro, anche un'altra Arduino, e farli comunicare bidirezionalmente attraverso i pin digitali, commutandoli tra input e output di volta in volta.
Si puoi anche se, in questi casi meglio usare la comunicazione seriale o infrarosso o zigbee o ISP o....
Insomma, per modi utili per far comunicare due arduino ve ne sono molti.
Tramite due pin digitali, scondo me, non è proprio il massimo ma si può fare anche quello.
A presto.
No la risposta è che nel primo caso avrai visto il LED collegato al PIN13 digitale.
Questo ha già una piccola resistenza integrata all'interno e da qui spiegato l'arcano
In tutti gli altri PIN devi mettere la resistenza esternamente.
Si, era il pin 13. A dire il vero, però, ho anche provato a collegare un led direttamente al pin 12 e al pin 11, senza bruciarli, ma da quanto ho capito questi non sono dotati di resistenze.
A proposito di pin 13: inviando un segnale di output a questo pin, si accende il led L presente sulla scheda. È possibile disattivare questo led, o magari associarlo a un pin diverso?
Si puoi anche se, in questi casi meglio usare la comunicazione seriale o infrarosso o zigbee o ISP o....
Insomma, per modi utili per far comunicare due arduino ve ne sono molti.
Tramite due pin digitali, scondo me, non è proprio il massimo ma si può fare anche quello.
Si, infatti, immagino. Però, come dicevo, mi interessa conoscere tutte le possibilità. Ovviamente non ho intenzione di limitarmi a chiedere tutto senza provare direttamente (anzi...). Alcune cose però avevo bisogno di chiederle... anche per evitare di fare danni...
Il led sul pin 13 e' li per funzionalita' di test per lo piu', non puoi disattivarlo o riassegnarlo in quanto e' sulla pista del pin ma se proprio ti sta antipatico, puoi toglierlo con un colpo di saldatore
Il led sul pin 13 e' li per funzionalita' di test per lo piu', non puoi disattivarlo o riassegnarlo in quanto e' sulla pista del pin ma se proprio ti sta antipatico, puoi toglierlo con un colpo di saldatore