Vai al contenuto

Primo Esperimento con Arduino.


RyujiAndy

Messaggi raccomandati

Per tutti coloro che non hanno mai avuto a che fare con la piattaforma Arduino vi presento il primo esperimento, in rete ne troverete a migliaia, ma cercherò di spiegarvi soprattutto il funzionamento del programma, in modo da potervi avvicinare il più possibie.

 

LED Lampeggiante

Primo_esperimento_LED_v.jpg

Disegno realizzato con Fritzing

 

Come vedete ho collegato all'uscita D13 all'anodo un semplice LED e per sicurezza ho messo una resistenza da 10K tra il catodo e la massa.

Ora avendo preparato il circuito basta passare alla programmazione dell'arduino.

Il linguaggio si basa sul linguaggi "C" ma bisogna tenere conto che ci sono due funzioni indispensabili che devono essere sempre presenti su nostro programma.

La prima è la funzione "setup" dove andiamo a scrivere che tipo di funzione dobbiamo ad inizializzare, la seconda la "loop" dove il nostro programma gira all'infinito, infatti una piccoa differenza sui normali PC il programma si può terminare in Arduino invece questo si ripete fino allo spegnimento.

 

Ora inizializziamo il piedino D13 dicendogli che è una semplice uscita, quindi viene fornita una differenza di potenziale di 5v e una corrente massima di 40mA.

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

Ora vogliamo che ad ogni secondo il nostro LED si accende e spegne quindi basta scrivere nela funzione loop:

void loop() {
 digitalWrite(13, HIGH);
 delay(1000);
 digitalWrite(13, LOW);
 delay(1000);
}

Il comando "digitalWrite" ci permette di far reagire l'uscita 13 infatti i LED si accende quanto c'è il valore "HIGH" o "1" e si spegne quando c'è "LOW" o "0",

la funzione delay è un ciclo vuoto e viene espresso in milliSecondi infatto per arrivare ad un secondo ce ne vogliono 1000.

 

Programma intero:

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

void loop() {
 digitalWrite(13, HIGH);
 delay(1000);
 digitalWrite(13, LOW);
 delay(1000);
}

Come in tutte le programmazioni possiamo utilizzare le variabili e quindi una variante del nostro programma potrebbe diventare:

int LEDpin = 13;
int LEDstato = LOW;
long milliprecedenti = 0;
long intervallo = 1000;

void setup() {
 pinMode(LEDpin, OUTPUT);
}

void loop() {
 unsigned long millicorrenti = milli();
 if (millicorrenti - milliprecedenti > intervalo) {
   milliprecedenti = millicorrenti;
   if (LEDstato == LOW) {
     LEDstato = HIGH;
   } else {
     LEDstato = LOW;
   }
   digitalWrite(LEDpin, LEDstato);
 }
}

Ora il risultato finale fra i due sketch non cambia ma anche se ho allungato e complicato la stesura il mio intento è quello di farvi capire come sul PC la programmazione è reativa al programmatore.

Schema elettrico:

Primo_esperimento_LED_s.jpg

Modificato da RyujiAndy
Link al commento
Condividi su altri siti

  • 2 settimane dopo...

RyujiAndy, ho scaricato Fritzing e provato a fare questo primo circuito. Però non ho capito come/dove scrivere/programmare arduino.

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

 

Devo scaricare un'altro programma? Poi come faccio a vedere se il circuito funziona? Fritzing mi permette anche di simulare il funzionamento? Cioè vedere se il led si accende, spegne, esplode, etc...?

Link al commento
Condividi su altri siti

RyujiAndy, ho scaricato Fritzing e provato a fare questo primo circuito. Però non ho capito come/dove scrivere/programmare arduino.

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

 

Devo scaricare un'altro programma? Poi come faccio a vedere se il circuito funziona? Fritzing mi permette anche di simulare il funzionamento? Cioè vedere se il led si accende, spegne, esplode, etc...?

 

Per simulare intendi che posso emulare il possesso di Arduino e testare quanto scritto come un Debug in VB?

Link al commento
Condividi su altri siti

Io cercavo un programma di elettronica che mi permettesse di simulare il circuito che facevo. Fritzing se non sbaglio permette di simulare il circuito, però io non so come fare. Poi volevo sapere anche come programmare Arduino con Fritzing. Sai come fare Manuel?

 

 

A quanto sto provando si simula la struttura ma non ho capito dove è il sorgente per inserire il codice di programmazione.

Per compilare le funzioni di arduino reale credo che abbia il suo soft IDE e non tramite questo simulatore.

Mi spiace Snuntipook ma non ti son d'aiuto in quanto anche io agli inizi e particolarmente interessato a queste cose pur non sapendo nulla di elettronica :D

Link al commento
Condividi su altri siti

Fritzing è solo un programma per il disegno elettronico e non un simulatore, prova questo http://www.arduino.com.au/Data/SetupF.zip, anche se io non ne ho mai avuta la necessità perchè il bello di arduino è la sperimentazione fisica

 

SI si hai ragione però permette di vedere direttamente quanto puoi fare nella realtà e compie, come già hai detto, la funzione di avvicinare moolto le persone.

Comunque quest'ultimo soft che ci hai dato è più complesso del primo tanto da preferire davvero la sperimentazione "fisica" ;)

 

@ snuntipook si si non riesci a costruire il tuo circuito immaginario ? :D

Modificato da ManuelX
Link al commento
Condividi su altri siti

ragazzi mi potete linkare in pvt un sito dove prendere arduino starter kit ovviamente a minor prezzo possibile? non riesco a trovarlo

 

I prezzi sono all'incirca tutti uguali, è già una piattaforma molto economica, ma si può risparmiare prendendo dei cloni come seeduino, oppure se avete un po' di pazienza stiamo allestendo un portale per la vendita di arduino con tutto il necessario per le prime sperimentazioni, oppure prossimamente intendo pubblicare come costruirsi arduino da soli con un minimo indispensabile di componenti.

Modificato da RyujiAndy
Link al commento
Condividi su altri siti

I prezzi sono all'incirca tutti uguali, è già una piattaforma molto economica, ma si può risparmiare prendendo dei coli come seeduino, oppure se avete un po' di pazienza stiamo allestendo un portale per la vendita di arduino con tutto il necessario per le prime sperimentazioni, oppure prossimamente intendo pubblicare come costruirsi arduino da soli con un minimo indispensabile di componenti.

 

Atten-d ! :D

Link al commento
Condividi su altri siti

@RyujiAndy: conosci un programma che permette anche di simulare il circuito che uno va a creare (non solo con Arduino)? A me quello interessa. Prima di comprare un qualcosa voglio prima saperlo utilizzare. Se riesco a simulare il circuito sul computer, allora compro i componenti e lo faccio, altrimenti niente. Sperpero soldi in un altro modo ;)

 

@Manuel: Ho sbagliato a scrivere :D Il circuito e tutto lo riesco a fare. Volevo solo simularlo per vedere se funzionava effettivamente. Non ci riuscivo perché non si poteva fare... Adesso mi cerco un nuovo programma, perché a me interessa simulare i circuiti che creo direttamente sul computer. Cosi li faccio con tutta sicurezza fisicamente.

Link al commento
Condividi su altri siti

Quindi prima di comprare ad esempio una ps3, prima la simuli sul pc e poi la compri?

Vi sono varii simulatori di circuiti elettronici, ma è risaputo che non è la stessa cosa, a scuola utilizzavamo ORCAD PCB ma è un software a pagamento e anche piuttosto salato, in ditta usiamo Eagle, questultimo ha dei script per la simulazione, ma io non l'ho mai provato, mi limito a disegnare lo schema e se poi funziona in laboratorio su breadboard allora passo alla realizzazione del pcb, sempre con eagle.

Il programma ha una versione libera ed una a pagamento, non c'è molta differenza fra i 2, l'unica differenza importante è che nella versione a pagamento si possono creare più fogli su di un proggetto, questo è utile quando si utilizzano i bus e si ha più di un circuito stampato.

Link al commento
Condividi su altri siti

  • 4 settimane dopo...

Salve ragazzi e da poco che ho incominciato con Arduino. E posso dire che è molto interessante ho provato a fare questo primo esperimento è non ho trovato nessuna dificoltà. io conosco bene i principi di java e molto poco "c". Per questo se non ti dispiace mi puoi spiegare questa stringa? "unsigned long millicorrenti = milli(); Cioè millicorenti e uguale a milli(), ma milli che valore è?

Ciao

Link al commento
Condividi su altri siti

Salve ragazzi e da poco che ho incominciato con Arduino. E posso dire che è molto interessante ho provato a fare questo primo esperimento è non ho trovato nessuna dificoltà. io conosco bene i principi di java e molto poco "c". Per questo se non ti dispiace mi puoi spiegare questa stringa? "unsigned long millicorrenti = milli(); Cioè millicorenti e uguale a milli(), ma milli che valore è?

Ciao

 

milli() è la funzione che conta i millisecondi, è nativa dell'IDE infatti non necessita ri richiamo libreria

Link al commento
Condividi su altri siti

Questo programma funziona anche sul Launchpad MPS430 usando Energia come IDE.

Visto che il Launchpad ha già dei LED montati sulla schedina va sostituito il 13 con il 14 se si vul far lampeggiare il LED verde o con il 2 se si vuol far lampeggiare il LED rosso.

L'Arduino UNO ha già un LED verde montato sulla schedina in corrispondenza del PIN13. Solo che mentre nel LAunchpad si ha la possibilità di disattivare i LED tramite Jumper, sull'Arduino UNO sembra che questa possibilità non ci sia.

Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

Giochi in Uscita



  • Community Hive Community Hive

    Community Hive allows you to follow your favorite communities all in one place.

    Follow on Community Hive
  • Utenti

    Non ci sono membri da mostrare

×
×
  • Crea Nuovo...