Inizio, con questo primo articolo, a scrivere sulla programmazione di Arduino, molto semplici e che possano aiutare chi ha grande conoscenza e dimestichezza con l’elettronica ma sente la necessità di approfondire la conoscenza della programmazione.
Come sappiamo Arduino è un prodotto incredibile, versatile e multiuso sopratutto perchè programmabile semplicemente.
Nello scorso articolo abbiamo preso confidenza con la barra degli strumenti dell’IDE di sviluppo:
Apriamo quindi il nostro IDE, io lo utilizzo su un MacBook:
in automatico, l’ide, ci suggerisce il nome del nostro primo programma, i programmi che scriveremo si chiamano sketch per cui li chiamerò indifferentemente programmi o sketch nei prossimi articoli; il nome che ci propone è semplice: sketch_jul04a ( programma, _, mese corrente jul, giorno corrente 04, lettera del programma a in quanto è il primo della giornata, i prossimi saranno b, c, d, … z ).
Per il resto il nostro foglio è vuoto, ma non farti prendere dal blocco del programmatore difronte a un listato tutto da iniziare, vediamo un po’ di sintassi utile:
Comando | Significato |
// | Commento monoriga es.: // Il mio primo programma per Arduino |
/* | Apertura commento multiriga;
es.: /* * Questo è il mio primo * programma per Arduino */ |
*/ | Chiusura commento Multiriga; es.: vedi sopra |
void | dichiarazione di funzione senza ritorno, ossia la funzione esegue delle operazioni ma non restituisce alcun valore dopo l’elaborazione |
setup() | funzione base (obligatoria) di ogni programma Arduino |
loop() | funzione base (obligatoria) di ogni programma Arduino |
int | dichiarazione di variabile di tipo integer (intero); utilizzato anche per dichiarare le funzioni che restituiscono valori interi |
pinMode(pin,mode) | funzione di configrazione di un piedino Arduino, in modo che sia utilizzabile come INPUT o come OUTPUT |
digitalWrite(pin,level) | invia un comando di output sul piedino selezionato (pin) di tipo digitale, pe cui 0 o 1; in sostituzione dello 0 e dell’1 si possono utilizzare le costanti LOW (0) e HIGH (1) |
delay(second) | funzione utile per introdurre un dalay (attesa) tra una istruzione e la successiva, il paramero second è esperesso in millesimi di secondo. |
Ora che conosci i primi comandi possiamo passare a realizzare il primo programma, molto semplice, l’obiettivo è far lampegguare il led presente su Arduino con un intervallo di un secondo, questo ti permetterà di prendere confidenza con l’ide, provare subito un programma di esempio e collaudare la scheda Arduino che hai appena acquistato.
Passiamo al programma:
/* Lampeggio Accende e spegne il led collegato al piedino 13 di Arduino con un intervallo di un secondo, ripetutamente. Questo programma è di dominio pubblico. */ int ledPin = 13; // LED connesso al pin 13 void setup() { pinMode(ledPin, OUTPUT); // imposta il pin come output } void loop() { digitalWrite(ledPin, HIGH); // accende il led delay(1000); // attende un seconso (1000 millisecondi) digitalWrite(ledPin, LOW); // spegne il led delay(1000); // attende un secondo prima di ripartire }
Descrizione del listato:
linee 1-8: contengono un commento iniziale, multiriga, che spiega ciò che il programma farà, è utile anche a chi lo ha scritto per ricordarsi cosa intendesse fare senza dover leggere tutto il codice. L’ultima linea (07) contiene una frase in stile open-source che lascia chiunque libero di poter utilizzare il codice, modificarlo o diffonderlo. Ritengo che dato lo spirito di Arduino sia corretto riportarla sempre.
linea 10: definisco una nuova variabile di tipo intero (integer) ledPin il cui valore sarà il pin che desidero utilizzare per far lampeggare il led, siccome Arduino ha già collegato al pin 13 un led con la dovuta resistenza di protezione ho utilizzato quello come pin per il mio programma; una breve parentesi sulle variabili, a volte indispensabili, altre volte meno, in ogni caso alleggeriscono le modifiche dei programmi: se ad esempio in un secondo momento volessi collegare un led e relativa resistenza ad un altro pin di Arduino, ad esempio il pin 12, non dovrei far altro che variare il valore assegnato a ledPin da 13 a 12.
linee 12-15: definisce la funzione setup(), la prima delle funzioni obligatorie per arduino, quando Arduino inizia ad eseguire il programma caricato, cerca setup; in questa funzione puoi inserire le definizioni necessarie al programma, ad esempio definire che il pin 13 sarà utilizzato come pin di tipo OUTPUT, alla linea 14 con il comando pinMode indico ad Arduino di utilizzare ledPin ( in questo caso 13 ) come pin di OUTPUT. Nota che tutte le definizioni interne alla funzione setup() sono racchiuse tra parentesi graffe ( {} linea 13 e 15) questa sintassi è identica per tutte le funzioni che vedremo, da cui possiamo dire che una nuova funzione sarà definita con la sintassi:
definizione_di_funzione nome_funzione( eventuali parametri ) { … istruzoni e definizioni … }
void setup() { pinMode( ledPin,OUTPUT ); }
linea 17: definisco la seconda funzione obligatoria per Arduino loop, anche questa funzione non prevede la restituzione di alcun valore, per cui può essere dichiarata di tipo void e non attende parametri in input. Arduino eseguirà di continuo per tutta la durata del programma questa funzione.
linea 19: utilizzo il comando: digitalWrite impostandogli il pin 13 a livello logico alto. il comando digitalWrite accetta due parametri: il pin e il valore da inviare, in particolare siccome è un comando di tipo digitale potrai utilizzare come valore per il secondo parametro solo 0 o 1, anche nella notazione LOW o HIGH, se avessi avuto bisogno di inviare valori differenti al mio pin avrei dovuto utilizzare un altro comando come ad esempio: analogWrite.
linea 20: utilizzando il comando delay e passando come parametro 1000 in millisecondi ottengo una pausa di un secondo prima che Arduino esegua il comendo presente alla riga successiva.
linea 21: utilizzando nuovamente il comando digitalWrite imposto a 0 ( o LOW ) il valore del pin 13, ottenendo lo spegnimento del led.
linea 22: attendo un secondo prima di fargli rieseguire tutto il blocco contenuto nella funzione loop.
Non resta che cliccare sul bottone per eseguire un test di sintassi del nostro programma, se il test risulta corretto e non ci sono errori di sintassi leggeremo in basso un messaggio di ok e l’indicazione del peso in byte del nostro programma.
Inviamo il nostro programma ad Arduino, utilizzando il pulsante di upload:
Il risultato sarà quello mostrato nel video:
74 commenti
2 ping
Vai al modulo dei commenti
Ciao,
mi chiamo Cristian, mi è bastato leggere le prime righe della tua guida
su arduino per volerti subito ringraziare!
Abito a Bergamo, lavoro a Milano e sono appassionatissimo di domotica.
Non so come e perché ma mi è frullato per la testa di integrare nel mio
sistema anche arduino.
Attualmente il mio sistema domotico è basato su delle schede I/O che
colloquiano con il server (su cui gira homeseer un programma di gestione
domotica). Queste schede sono collegate tramite ethernet ed utilizzando il
protocollo xAP.
Inizierò a studiarmi le tue lezioni perché come hai scritto riesco a
gestire la parte elettronica ma sono completamente a digiuno di
programmazione.
La mia idea sarebbe quella di realizzare dei moduli con arduino da mettere
in ogni stanza in modo da non dover tirare cavi per ogni segnale I/O come
faccio ora (cavo per l’interruttore, cavo per il carico luce, televisore,
tapparelle ecc.). Sarebbe bello avere arduino ad esempio in camera da letto
che gestisse ingressi ed uscite da collegare semplicemente al server con
cavo di rete…
Beh, ancora complimenti!
Grazie
Cristian
Autore
Grazie Cristian,
è per aiutare tanti appassionati come te che ho iniziato a scrivere questo Blog.
Mauro
Salve !! Innazitutto mi complimento per la fantastica iniziativa, c’è sempre bisogno di volenterosi e benevoli insegnanti !! Sto per acquistare anche io un arduino uno R3 ma come uso fare prima di spendere voglio provare e capire bene. Ciò mi porta ad una situazione imbarazzante….. Ho scaricato l’IDE e leggendo il tuo manuale ho iniziato a digitare le prime lettere di testo int ledPin = 13 ecc. ma non mi è ben chiaro come fare le parentesi graffe !!!! Alchè ho iniziato a dubitare che riuscirò a produrre un programma tutto mio…….. non è che potresti aiutarmi a capire come inserire sti codici ??
Autore
Ciao Federico,
il tuo problema mi sembra di natura informatica.
Non scoraggiasti le parentesi graffe si fanno con una combinazione di tasti differente tra Win/Mac/Linux tu cosa usi?
Se cerchi su google “parentesi graffe su Mac” sostituendo a Mac il termine Windows o linux sono certo gennaio troverai la ohm inazione che ti occorre.
Forza forza forza … Non disperare 🙂
Mauro
In effetti mi è bastato chiedere a mia nipote e dopo aver riso mezz’ora della mia deficienza mi spiegato che per W7 si deve premere contemporaneamente Ctrl+Alt+Shift+ paretesi quadra !! Fatto questo ho proseguito con gli esercizi !! Ti ringrazio ancora per quello che fai, continua così !! A presto(spero con un mio progetto), Federico.
Autore
Ciao Federico,
prossimamente organizzerò un corso Base a Milano, se sei interessato continua a seguirmi.
Mauro
Se sono libero partecipo di sicuro !!! Il fatto è che tra meno di due mesi diventerò papà quindi fai presto !!! 😉
Autore
Corro 🙂 congratulazioni !!!
Ottimo tutorial, ora passo alle puntate successive!
Autore
Grazie Ivan, buono studio.
ciao sono davide,
eeeeeeeh…vorrei farti eeeeh i compimenti per questa eeeh guida sei davvero eeeh volglio dire…eeeeh (?) il mio mito eeeeh ciao. davide!
Autore
eeeeh grazie !!!
Ciao Mauro,
Innanzitutto complimento per l’egregio lavoro fatto con il corso per Arduino senza il quale io potrei solo conoscere le potenzialità, senza sperare di applicarle intendendomi di elettronica ma quasi niente di programmazione (unica esperienza con il basic del commodore 🙂 ). Tuttavia ho un dubbio: le schede aggiuntive di arduino sono sempre compatibili con le versioni successive ? Cioè ad una scheda Arduino Due, ad esempio, posso applicare schede e sensori compatibili con Arduino Uno, Duemilanove o Diecimila ?
Grazie per la delucidazione.
Mauro
Autore
Ciao Mauro,
grazie per i complimenti.
Ti invito a leggere bene le caratteristiche delle board arduino che utilizzi prima di impiegarle in un progetto, dipende da ciascuna scheda e sopratutto dalla shield, in generale non sono sempre compatibili.
Ad esempio l’Arduino due ha tutti i pin funzionanti a 3,3v per cui le shield che funzionano a 5v rischiano di bruciarti l’arduino due.
Mauro
Grazie, grazie, grazie…
Ho una grande voglia di imparare ad utilizzare arduino ed il tuo blog è il posto giusto.
Complimenti. 🙂
Autore
Grazie Francesco.
Congratulandomi per il tuo impegno per la formazione nel modo dell’elettronica vorrei portare la mia testimonianza la quale comprende la programmazione in assembler nei primi anni 90 della serie ST6 (quello con la finestrella per cancellare la Eprom con gli ultravioletti) per poi passare ai Microchip(quello che uso di più il 18f4550) programmato specialmente con compilatori della Mikroelettronica. Ora però dopo una certa riluttanza sto dando uno sguardo ad arduino (mi intriga che l’idea sia venuta ad un italiano e non a un americano o cinese).
Tutto questo non per raccontare la mia vita di appassionato di elettronica ma per chiederti se secondo te in questo passaggio sto andando a guadagnarci o mi troverò difronte ad un impoverimento delle risorse a disposizione (penso per esempio a tutte le librerie che ho a disposizione su Mikroe).
Autore
Ciao Riccardo,
complimenti a te per il passato da elettronico specialista 🙂
Io ho ritrovato la mia passione per l’elettronica con Arduino ed ho scoperto il mondo, anche se prima di arduino conoscevo pochissimo di elettronica da autodidatta.
Posso senza dubbio dirti che troverai una community grandissima e con grande disponibilità alla condivisione di librerie e tutorial per questa piattaforma di prototipazione.
Dal background culturale che hai dubito troverai difficoltà a contribuire qualora le risorse a tua disposizione fossero inferiori alle attese.
Mauro
Salve ho dato una lettura veloce ai suoi tuorial e non posso fare altro che complimentarmi per la chiarezza e la semplicità con cui sono sviluppati.
Mi sto avvicinando a questo fantastico mondo, ho programmato in passato per via dell’università in visual basic, quindi ho qualche nozione in merito, ma sono completamente digiuno in termini di elettrotecnica ed elettronica.
Saprebbe consigliarmi delle giude o dei tutorial con cui iniziare? Vorrei seguire degli steps sensati, ed apprendere nozioni passo per passo, seguendo un percorso che sia un crescendo perchè sono dell’idea che troppe info tutte insieme creano solo confusione.
Sentitamente la ringrazio, e rinnovo i miei complimenti.
Luigi
Autore
Ciao Luigi, hai già seguito il mio corso online GRATUITO su elettronica ed arduino?
Salve, sono un neofita,completamente digiuno di elettronica, ma mi piace l’idea di poter fare qualcosa con Arduino, per cui dopo aver scoperto il tuo sito, ho iniziato a muovere i primi passi.
Ho terminato il primo programma, per il blink del led, dopo qualche correzione ho terminato il programma, ma non riesco a sbloccare il seguente messaggio di errore “avrdude: stk500_getsync() not in sync: resp=oxoo.
mi sai dire che cosa significa?
Grazie in anticipo ed ancora complimenti per sito, è utilissimo.
Autore
Ciao Filippo,
bene, sono contento che ti sia stato utile il mio corso arduino.
Il messaggio si riferisce ad un errore di comunicazione con la scheda arduino, di solito si risolve scollegando e ricollegando arduino al pc.
Ho anche scritto un articolo dedicato ai più comuni errori che si presentano quando inizi con arduino.
Buonasera
Premetto di essere un po’ a digiuno per i micro controller
Ai miei tempi non esistevano ancora , infatti oggi lavoro ancora tantissimo con circuiti logici
La mia domanda che piattaforma di Arduino è consigliabile acquistare , diciamo per iniziare
Da principianti solamente per quanto riguarda la parte di programmazione , ma non per l hardware
Cordiali saluti
Livio
Autore
Ciao Livio,
io ti consiglierei un kit da un rivenditore ufficiale per essere sicuro di avere sia arduino uno sia il manuale con i primi passi da seguire.
Ciao io mi chiamo Jack e ho 16 anni,
nel programma hai selezionato come pin di uscita il 13 però si è acceso il led sulla scheda mentre sul pin non hai collegato nulla, volevo sapere perchè si accende quel led, e poi un’altra cosa: che differenza c’è tra scrivere
int ledPin = 13;
e
#define LED 13;
grazie
Autore
Ciao Jack,
sull’arduino è presente un led, denominato “L” connesso al pin 13. E’ il led “L” che hai visto accendersi.
Quando dichiari un pin con il metodo
int ledPin = 13;
fai uso di una variabile che impegna 2 byte di memoria;
Quando usi:
#define ledPin 13;
definisci una costante che non fa uso della memoria.
Se vuoi conoscere meglio i comendi arduino puoi leggere il reference sul sito arduino in cui trovi ad esempio la spiegazione della define:
http://arduino.cc/en/Reference/define
Ciao ho partecipato al primo corso su Arduino mi è piaciuto tantissimo ma come pensavo la programmazione è l’ostacolo piu’ duro visto che la mia preparazione scolastica di molto tempo fa è delle medie.
Comunque ho decisi di iscrivermi al corso due del 20/03/2015. ciao Luciano.
PS mi consigli una buona lettura sul tema!
Autore
Ciao Luciano,
mi fa piacere che tu mi abbia scritto, denota che non vuoi mollare alla prima difficoltà e questo va premiato.
Come lettura io ti consiglio di leggere il corso arduino gratuito presente nel blog, troverai molti argomenti approfonditi in aula e potrai rileggerli tutte lo volte che lo desideri. Ho realizzato il Blog anche con lo scopo di fornire un supporto extra corsi in aula.
In ogni caso se prima del corso del 21/03/2015 se vuoi chiedermi dei chiarimenti sugli articoli del corso base che leggi, usa pure i commenti io provo a risponderti quanto prima.
Mauro
Sto iniziando da poco e ho seguito la tua prima lezione e devo farti veramente i complimenti per come riesci a rendere chiara la Lezione .Grazie
Autore
Grazie Massimo.
complimenti vivissimi
per il lavoro della MADONNA che stai facerndo
il tuo sito e gli argomenti trattati (arduino)
mi sono di grande aiuto …
ho preparazione tecnica elettronica del … 1979 … secolo, anzi millennio scorso …
migrata ad informatica nel 1981 … ( quando avevo ancora i capelli .. )
adesso riesco a congiungere i due “saperi” grazie ai tuoi articoli
GRAZIE
Autore
Grazie Lucio
Ciao sono andrea ho 16 anni e ho appena iniziato ad interessarmi di robotica . Essendo un principiante non ho idea di quale scheda arduino comprare .. mi potrebbe dare un consiglio ?
PS le faccio i complimenti perchè pur essendo alle prime armi con la programmazione le sue parole mi fanno venir voglia di imparare… e si fidi non avviene spesso =)
Autore
Grazie Andrea, mi fido 🙂
io inizierei con una Arduino Uno, la più diffusa e quella per la quale trovi il numero maggiore di schemi,sketch ed esempi
Ciao Mauro,
mi chiamo Arrigo e già qualche volta sono ricorso ai tuoi preziosi consigli, ma prima debbo farti i complimenti per la dedizione CONTINUA (ebbene sì, l’ho gridato!)
Molti tuoi articoli sono stati preziosi sia a me che a chi ha voluto cominciare a pasticciare con me con questa scheda stupenda.
Io avevo fatto qualcosa con i PIC e avevo la comodità di creare un eseguibile che poi caricavo anche su tre di seguito senza dover compilare.
Posso fare lo stesso con arduino, c’è un trucco, qualsiasi cosa che mi permetta di non dover ricompilare?
Per me sarebbe utile specialmente per il piccolo mini che ne uso quattro e tutti con lo stesso programma (gichini da robot) e deve dire che è frustrante ad ogni modifica dover ricompilare quattro volte.
Puoi gentilmente darmi una dritta? o dirmi anche così è e rimane (almeno mi tolgo il pensiero)
Ancora complimenti per i tuoi splendidi tutorial che ci hanno permesso di crescere numerosi.
Ciao
Autore
Ciao Arrigo,
fino a qualche tempo fa era possibile solo sfruttando le caratteristiche del programmatore AVR, dalla vesione 1.6.4 hanno introdotto un sistema da linea di comando per trasferire l’HEX direttamente nell’arduino con l’IDE stesso.
Ti consiglio di leggere il mio articolo dedicato all’arrivo dell’IDE 1.6.4
buon giorno Mauro,ti volevo chiedere mi puoi dare un listato di arduino nel quale “listato accensione di un led”il led si accende a un ora prestabilita e si spegne dopo un ora?oppure mi puoi dare un consiglio dove posso acquistare i listati?ti ringrazio anticipatamente,enzo
Autore
Ciao Enzo,
chi si avvicina al mondo arduino e legge il mio blog lo fa con lo scopo di imparare da solo a scriversi i progetti ed i programmi.
Per questo motivo ho creato anche un corso arduino on-line gratuito che puoi leggere.
Se invece desideri commissionarmi un progetto puoi trovare la procedura nella pagina “sostienimi” del blog.
buon giorno mauro,non immaginavo mai una risposta cosi’ sollecita,ti ringrazio,son i miei primi approcci con arduino,sono certo che ci risentiremo,leggero’ la procedura nella pagina “sostienimi”e ti faro’ sapere,grazie.Enzo.
ciao Mauro,eccomi a spiegarti il mio curriculum sono un ex elettronico,ho lasciato circa 30 anni fa’,ho 2 figli che stanno nel campo dell’assistenza televisia ecc….che come tutti i figli non hanno mai tempo x i genitori,ho 77 anni sono pensionato, ti vorrei chiedere in attesa di conoscere arduino meglio, ti pregherei (per regolarmi economicamente)del costo del progetto xl’accensione di un led a un ora da programmare e rispegnerlo dopo un tempo da programmare,in attesa porgo sentiti saluti Enzo
Autore
Ciao Enzo,
il progetto che hai in mente non è complesso, richiede solo un po’ di tempo da dedicargli.
In questo periodo sono impegnato con la realizzazione di progetti personali e professionali almeno fino a fine ottobre, dopo tale data potrei dedicare qualche giorno al tuo progetto.
Ti chiedo la cortesia di scrivermi sulla casella info ( quella da cui ti arriva questa risposta ) in tale data.
ti ringrazio mi faro’ risentire a fine ottobre,buon lavoro
ciao ho provato a copiare e incollare il primo programma di esempio, riguardo al led del pin 13, però nel test mi da questo errore:
Arduino:1.7.7 (Windows 8.1), Scheda:”Arduino Uno”
sketch_sep26a.ino: In function ‘void setup()’:
sketch_sep26a.ino:21:6: error: redefinition of ‘void setup()’
sketch_sep26a.ino:1:6: error: ‘void setup()’ previously defined here
sketch_sep26a.ino: In function ‘void loop()’:
sketch_sep26a.ino:26:6: error: redefinition of ‘void loop()’
sketch_sep26a.ino:6:6: error: ‘void loop()’ previously defined here
Errore durante la compilazione
Questo report potrebbe essere più ricco
di informazioni con
“Mostra un output dettagliato durante la compilazione”
abilitato in “File > Impostazioni”
Autore
Ciao Mirko,
hai incollato il codice in uno sketch che già possiede la definizione delle funzioni setup() e loop(), per ogni sketch queste funzioni devono essere uniche.
Lo puoi facilmente capire dal messaggio di errore:
sketch_sep26a.ino:21:6: error: redefinition of ‘void setup()’
sketch_sep26a.ino:1:6: error: ‘void setup()’ previously defined here
e dal medesimo per la loop():
sketch_sep26a.ino:26:6: error: redefinition of ‘void loop()’
sketch_sep26a.ino:6:6: error: ‘void loop()’ previously defined here
Buonasera, sono alle prime armi con arduino uno, vorrei creare dei blocchi di programma cioè mi spiego voglio che si accenda un led avendo però due ingressi alti cioè due pulsanti premuti in due porte d’ingresso separate.
Come faccio?
Spero in una risposta Saluti
Autore
Ciao Marco,
nel blog ci sono numerosi articoli in cui la doppia condizione è utilizzata.
Continua a leggere il corso base e imparerai a farlo.
Ciao Marco,
grazie per il tutorial che hai prodotto, molto semplice da capire. Utilizzo un arduino mega 2560 collegato usb ad un mac, il programma viene caricato ma il led non esegue i comandi, non si accende né si spegne, da cosa può dipendere?
Grazie
Autore
Ciao Antonio,
mi chiamo Mauro, ma va bene lo stesso.
Le ultime versioni Arduino Uno, dalla R3 in poi, non hanno bisogno di driver su Mac.
Controlla nelle proprietà del mac se la scheda è stata riconosciuta tra le periferiche USB.
Buongiorno, le righe 01 a 08 e vanno tolte prima di caricare il codice da far eseguire alla scheda ?
Autore
Ciao Leonardo,
assolutamente no, i commenti sono ignorati dal compilatore.
Buongiorno, complimenti, veramente interessante. Ho da sempre avuto una tendenza per la domotica ma, mai messa in pratica. Per essere conciso, come comincio?
Compro da subito un kit? se si quale?
Grazie e ancora complimenti.
Autore
Ciao Tony,
non mi hai scritto che tipo di preparazione tu abbia, ti consiglio di iniziare dal mio corso on-line e successivamente potresti partecipare ad un percorso formativo in aula per approfondire le tue conoscenze su arduino.
Ciao Mauro, scusa la carenza della presentazione; più che una preparazione, sono da sempre stato affascinato dall’elettronica, quindi, se non per un impianto elettrico (anche se fatto bene), sono digiuno. Per il corso online, sicuramente, appena trovo un po di tempo da poterci dedicare, lo farò con estremo piacere (intendo un po di tempo senza avere distrazioni).
Per il corso in aula credo che sia improbabile, vista la mia residenza in Sicilia in prov. di Caltanissetta.
Lo frequenterei molto volentieri, nel caso ti decida a farlo nelle mie zone.
Per quanto riguarda il kit, ti chiedevo informazioni circa il materiale che serve per mettere subito in pratica quello che si spiega, già da subito nelle lezioni. Credo che leggere e subito provare, sia il migliore metodo per assimilare meglio la teoria. Ti sarei grato se mi indicassi un kit o, una lista di quello che occorre per le prime lezioni.
Grazie e, con piacere, rinnovo i complimenti
Toni Ficarra
Autore
Ciao Toni,
puoi provare con il kit base arduino.cc ufficiale.
Lo puoi acquistare sul sito ufficiale arduino.cc
Ciao Mauro, sono ai primi passi nell’elettronica ma leggendo questo blog mi ha affascinato e mi ha fatto pensare a tanti piccoli progetti da mettere in atto.
il primo progetto nasce da una mia grande passione, la pesca, vorrei realizzare un contapesci a batteria.
l’oggetto dovrebbe avere una fotocellula che al passaggio di un pesce/oggetto incrementa di 1 il display, mi sembra che arduino sia proprio adatto a questo progetto, mi sapresti dire quali componenti servirebbero per poter costruire questo fish counter?
grazie
Autore
Ciao Marco,
mi fa piacere leggere che ti sia appassionato leggendo il blog.
Di sensori ne esistono moltissimi e tanti li ho descritti proprio in questo blog.
Non essendo un esperto di pesca e non conoscendo il tuo progetto posso suggerirti di cercare nel blog il sensore più adatto, leggere e comprendere come controllarlo ed utilizzarlo per il tuo progetto.
Salve, innanzitutto ci tengo a dirti che ritengo doveroso farti i complimenti per la bellissima ed utilissima tua iniziativa.
Non so se riuscirò a spiegare bene quello che voglio ottenere, in pratica vorrei sapere come si può fare per controllare a video i valori assunti dalle variabili del programma che sta girando su arduino, in modo da controllare quello che succede.
Resto in attesa della tua risposta e ti ringrazio anticipatamente.
Autore
Ciao Carlo,
procedendo nella lettura del mio corso on-line gratuito arduino e genuino troverai la descrizione del monitor seriale e la descrizione di come usarla per leggere i valori che ti interessano dello sketch.
ciao Mauro
complimenti per il tuo sito
grazie ai tuoi insegnamenti ho compreso molto su arduino e dopo solo una qundicina di giorni partendo da un piccolo progetto di base lo stò ingrandendo per il mio scopo personale
una serra automatizzata
tante cose ho imparato la più importante è >che non troverai mai un progetto ottimizzato personale, se non sei tu che lo crei
Autore
Grande Ezio !!!
Spirito giusto e concordo con la tua massima “non troverai mai un progetto ottimizzato personale, se non sei tu che lo crei”
Salve Mauro, come d’accordo scrivo in pbl così da dare anche agli altri la possibilità di conoscere. Da tempo appassionato di simulazione volo, ho iniziato ad armeggiare con arduino nell’intento realizzare delle periferiche.
Premetto che di elettronica ne mastico poco ma non mi scoraggio. Primo lavoro fatto: controllo volume liquidi. ora vorrei realizzare alcune parti del cockpit del cessna 172 e con esso poter interagire con il programma di simulazione. Io ho X-Plane vers 10 e di recente la Vers. 11 regolarmente acquistati. Seguendo le indicazioni trovate, ho provato ad installare i plugins di ArdSimX sia in X-Plane e sia in arduino ma quando cerco di accedere alla periferica, X-Plane 10 o 11 mi dicono che deve essere installata la libreria. Ho provato e riprovato ma il risultato è sempre lo stesso… nulla. Dove sbaglio? Grazie infinite
Autore
Ciao Bruno,
non conosco l’X-Plane, è basata su arduino?
Che errore ricevi dall’IDE arduino?
Ciao, complimenti davvero per il tuo blog: finalmente ho capito com’è fatto Arduino e, pur se in minima parte, cosa può fare. Grazie! Io non so nulla di elettronica. Le mie domande ti potranno sembrare stupide, ma ti prego di portare pazienza. Attualmente i miei studenti elaborano (con excel) dati meteo scaricati in formato csv dal sito Arpa. Vorrei utilizzare Arduino per rilevare IN PROPRIO temperatura e umidità in ESTERNO (campo aperto, per capirci). 1° problema: ho capito che si può fare, ma non so esattamente quali sensori mi servono. 2° problema: come gestisco l’aggiornamento dei dati? provo a spiegarmi meglio: se la rilevazione dei dati avviene senza soluzione di continuità, come funziona dal punto di vista temporale la registrazione degli stessi dati in formato csv? 3° problema: posso inviare file csv da Arduino al server della scuola via wifi? Perdona la stupidità, ma ho bisogno di capire. Grazie anticipatamente!!!
Autore
Ciao Calla,
nessuna domanda è stupida a mio avviso, magari complessa per il livello di conoscenze posseduto, ma studiando tutto può essere colmato.
Cerco di rispondere:
1° i sensori sono milioni nel mondo dipende da ciò che desideri monitorare e con quali tolleranze oltre, ovviamente, a quanto vuoi spendere. In un FabLab di milano che frequento c’è un fisico che sperimenta sensori meteo specifici, ad esempio, e costosi o autocostruiti. Nel blog trovi tanti sensori che puoi usare e tanti esempi su come usarli: ad esempio i DHT11..22..ecc..
2° non so se ho capito: vuoi segnare data ed ora per ogni rilevazione? userai un RTC, prova a leggere i miei articoli sulle centraline meteo;
3° questa è una cosa più complessa che necessita di conoscenze non solo di arduino, ma anche di networking, server, database e interfacce. Si può fare in moltissimi modi ma devi definire bene quello che devi/puoi/vuoi fare e poi cerchi nel blog tutti gli articoli che ti possono aiutare.
ciao mauro
ho l’esigenza di utilizzare delle librerie e vorrei avere delle indicazioni su come poterle inserire negli sketch.
sarebbe gradita una modalità per non tralasciare nulla di quanto necessario per la installazione.
ho ad esempio, un sensore ds18b20 per consentire la misura delle temperature su liquidi ma mi resta difficile caricare la libreria necessaria al suo funzionamento.
mi sono permesso di disturbarti sull’argomento in quanto ritengo che sia un problema abbastanza generale.
ringrazio anticipatamente per l’attenzione.
aldo
Autore
Ciao Aldo,
trovi molti miei articoli in cui spiego come caricare ed utilizzare le librerie nell’IDE.
Esistono almeno 3 modi di farlo e sono tutti descritti negli articoli che ho scritto.
Ciao Mauro
dopo aver acquistato arduino uno ho installato l’IDE e seguendo le istruzioni sono riuscito a caricare “blink” .
Quando collego arduino alla usb il led interno L si accende e si spegne con il ritardo impostato, perciò fin quì tutto bene. Mi accingo a caricare un nuovo sketch preso dagli esempi e viene compilato poi inizia un lungo periodo di caricamento di parecchi secondi che termina con un messaggio in rosso che in inglese dice:
avrdude:stk500_getsync () attempt 10 of 10 : not in sync.
Ho letto qualche tutorial ma il mio inglese non è il massimo, ho reinstallato l’IDE ma non cambia nulla.
Cosa sta succedendo?
Grazie per la tua disponibilità.
Paolo
Autore
Ciao Paolo,
che modello di Arduino hai acquistato ? E’ un prodotto originale ?
Ciao Mauro
Non è un prodotto originale Arduino unio R3 REV3 compatibile
Autore
Ciao Paolo,
potrebbe dipendere da come è stata realizzata l’interfaccia usb-seriale.
Prova a verificare che tipo di interfaccia è stata utilizzata ed eventualmente chiedi al produttore delle specifiche sui driver da utilizzare
ciao! ma non esiste un programma per programmare in modo grafico arduino??
Autore
Ciao Francesco,
si ne esistono diversi, il più usato è scratch, ma non è l’unico.
Ciao Mauro, grazie per la guida. Forse sono stupido io, ma non trovo nessun riferimento al tipo di linguaggio di programmazione che spieghi. Che linguaggio è?
Grazie
Autore
Ciao Fabiano,
Arduino usa un linguaggio “C like” ossia simile al C ma con comandi specifici per questo microcontrollore.
[…] linea 14: dichiaro la funzione loop(), che questa una vecchia conoscenza, vedi tutorial precedenti […]
[…] 10: definisce le operazioni di impostazione della scheda arduino (in un precedente articolo ho definito meglio a cosa serve la funzione setup() ), NOTA: in questo esempio non abbiamo definito […]