Arduino - il mio primo sketch

  • 536 views
Uploaded on

Una presentazione orientata a quanti hanno bisogno di avere una panoramica iniziale della piattaforma arduino con un approccio alla "prima faccio, poi torno su quello che ho fatto e capisco meglio" ;)

Una presentazione orientata a quanti hanno bisogno di avere una panoramica iniziale della piattaforma arduino con un approccio alla "prima faccio, poi torno su quello che ho fatto e capisco meglio" ;)

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
536
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
25
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Il mio primo sketch
  • 2. Il mio primo sketch Eugenio Pombi Jacopo Diamantifreelance web developer studente, astrofisico @euxpom @jacdiam
  • 3. Cosè arduino? "framework open source per la prototipazione rapida e lapprendimento veloce" Wikipedia
  • 4. Panoramica
  • 5. Installazione IDE sviluppo http://arduino.cc
  • 6. scaricate gli sketchhttp://nerd2business.net/arduino.zip
  • 7. La breadboard
  • 8. Primo circuito: il diodo LEDOccorrente:4 Cavetti1 diodo LED1 resistenza da 220 Ohm (rosso-rosso-marrone)
  • 9. Primo circuito: il diodo LED -Il piedino più lungo del LED è il polo positivo; -La resistenza è chiamata resistenza di pull-up. -La resistenza di pull-up serve a limitare la corrente che scorre nel LED. Si può calcolare con la legge di Ohm... -Per adesso montiamo il circuito, e poi facciamo un pò di teoria!
  • 10. Come scelgo la resistenza?ROSSO: 1.8 Volt GIALLO: 1.9 Vol ARANCIO: 2.0 VoltVERDE: 2.0 Volt BLU: 3.5 Volt AZZURRO: 3.0Volt(grazie a elettronicaincorso.it/ per i valori)Un LED può sopportare al massimo una corrente che va dai 10 ai 30 mA circa.Per non fornire troppa corrente al LED, e quindi per non bruciarlo, scegliamouna resistenza opportuna usando la Legge di Ohm. R (Ohm) = V (Volt) / I (Ampère)Esempio con un LED rosso:1- Per trovare V, sottraggo alla tensione di alimentazione (5v) quella difunzionamento del LED V = 5v - 1,8v = 3,2v2- Divido il valore trovato per la corrente che può sopportare il LED (persicurezza 15 mA, ovvero 0,015A) R = 3,2v / 0,015A = 213 Ohm
  • 11. Il codice
  • 12. I commenti//commento su una sola riga/* commento che occupa più righe */
  • 13. Blocchi di codicevoid setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT);}void passamiIlSale() { allungaBraccio("destro"); afferra("sale"); passa("sale", "eugenio");}
  • 14. blocchi minimisetup () { [...]}loop () { [...]}
  • 15. variabiliint led = 13;tipo nomeVariabile = valore;
  • 16. pinModepinMode(led, OUTPUT);nomeFunzione(argomento1, argomento2...);pinMode(qualePin, Modalità);
  • 17. digitalWritedigitalWrite(led, HIGH);digitalWrite(qualePin, Modalità);
  • 18. delaydelay(1000);delay(milliseconds);
  • 19. loopvoid loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000);}
  • 20. Esercizio 1Fate in modo che il led rimanga acceso per unsecondo e mezzo e poi si spenga per mezzosecondo
  • 21. Esercizio 2Fate in modo che il led sia attaccato al pin 12 diarduino anziché il 13
  • 22. Secondo circuito: due diodi LEDOccorrente:6 Cavetti;2 diodi LED;2 resistenze da 220 Ohm (rosso-rosso-marrone)
  • 23. Secondo circuito: 2 diodi LED -Il piedino più lungo del LED è il polo positivo; -La resistenza è chiamata resistenza di pull- up.
  • 24. DoubleLed.ino prima parteint led1 = 13;int led2 = 5;void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT);}[...]
  • 25. DoubleLed.ino seconda parte[...]void loop() { digitalWrite(led1, HIGH); delay(1000); digitalWrite(led1, LOW); digitalWrite(led2, HIGH); delay(1000); digitalWrite(led2, LOW);}
  • 26. Terzo circuito: diodo LED e pulsanteOccorrente:7 Cavetti;1 diodo LED;1 pulsante;1 resistenza da 220 Ohm (rosso-rosso-marrone);1 resistenza da 10 KOhm (marrone-nero-arancio).
  • 27. Terzo circuito: diodo LED e pulsante -Il piedino più lungo del LED è il polo positivo; -Quando il pulsante non è premuto, il pin digitale sarà collegato a terra tramite la resistenza di pull-down, quindi rivelerà un segnale di tipo LOW (0v). -Se premo il pulsante, il pin verrà collegato direttamente alla tensione di alimentazione e rivelerà un segnale di tipo HIGH (5v). -In base al tipo di segnale rivelato, Arduino può essere programmato per fare delle azioni, come ad esempio accendere il nostro LED.
  • 28. LedButton.ino prima parteint led = 13;int button = 2;int val;void setup() { pinMode(led, OUTPUT); pinMode(button, INPUT);}[...]
  • 29. LedButton.ino seconda parte[...]void loop() { val = digitalRead(button); if (val == HIGH) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); }}
  • 30. Quarto circuito: diodo LED efotoresistenza.Occorrente:7 Cavetti;1 diodo LED;1 fotoresistenza;1 resistenza da 220 Ohm (rosso-rosso-marrone);1 resistenza da 10 KOhm (marrone-nero-arancio).
  • 31. Quarto circuito: diodo LED efotoresistenza. -Ai capi della fotoresistenza troveremo una tensione variabile, che ci può dire quanta luce cè nella stanza. -Come si fa a misurare una tensione che non dà un segnale di tipo HIGH (5v) o LOW (0v)......ma 2,3v o 3,56v oppure 4,12v? UTILIZZIAMO I PIN ANALOGICI! I pin analogici restituiscono un valore che va da 0 a 1023. tensione = valore x 0,005v
  • 32. LedPhoto1.ino prima parteint luce = 0;int val;void setup() { Serial.begin(9600);}[...]
  • 33. LedPhoto1.ino seconda parteint luce = 0;int val;void setup() { Serial.begin(9600);}void loop() { val = analogRead(luce); Serial.println(val); delay(500);} Tools -> Serial Monitor
  • 34. LedPhoto2.ino prima parteint luce = 0;int val;int led = 13;void setup() { Serial.begin(9600); pinMode(led, OUTPUT);}
  • 35. LedPhoto2.ino seconda partevoid loop() { val = analogRead(luce); //da 0 a 1023 Serial.println(val); if(val < 200){ digitalWrite(led, HIGH); Serial.println("poca luce: accendo il led!"); } else { digitalWrite(led, LOW); Serial.println("molta luce: spengo il led!"); } Serial.println(""); delay(500);}
  • 36. Quinto circuito: sensore ditemperatura LM35.Occorrente:5 Cavetti;1 LM35
  • 37. Quinto circuito: sensore ditemperatura LM35. Il nostro primo vero sensore! -LM35 è un sensore di temperatura LINEARE. -LM35 ci dà in output una tensione proporzionale alla temperatura secondo questa formuletta: temperatura = tensione x 100 -Questo vuol dire che per usare la formuletta dobbiamo prima convertire il valore analogico in una tensione usando la relazione di prima: tensione = valore x 0,005v
  • 38. LM35.ino prima parteint temp;int val;int sensor = 0;void setup() { Serial.begin(9600);}[...]
  • 39. LM35.ino seconda partevoid loop() { //Leggo il sensore e applico la formuletta val = analogRead(sensor); temp = (5./1024.) * val * 100.; Serial.print("Temperatura: "); Serial.print(temp); Serial.println(" gradi."); Serial.println(""); delay(500);}
  • 40. Aiuto!Arduino User Group RomasuGoogle Groups