Arduino - il mio primo sketch

701
-1

Published 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" ;)

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
701
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Arduino - il mio primo sketch

  1. 1. Il mio primo sketch
  2. 2. Il mio primo sketch Eugenio Pombi Jacopo Diamantifreelance web developer studente, astrofisico @euxpom @jacdiam
  3. 3. Cosè arduino? "framework open source per la prototipazione rapida e lapprendimento veloce" Wikipedia
  4. 4. Panoramica
  5. 5. Installazione IDE sviluppo http://arduino.cc
  6. 6. scaricate gli sketchhttp://nerd2business.net/arduino.zip
  7. 7. La breadboard
  8. 8. Primo circuito: il diodo LEDOccorrente:4 Cavetti1 diodo LED1 resistenza da 220 Ohm (rosso-rosso-marrone)
  9. 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. 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. 11. Il codice
  12. 12. I commenti//commento su una sola riga/* commento che occupa più righe */
  13. 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. 14. blocchi minimisetup () { [...]}loop () { [...]}
  15. 15. variabiliint led = 13;tipo nomeVariabile = valore;
  16. 16. pinModepinMode(led, OUTPUT);nomeFunzione(argomento1, argomento2...);pinMode(qualePin, Modalità);
  17. 17. digitalWritedigitalWrite(led, HIGH);digitalWrite(qualePin, Modalità);
  18. 18. delaydelay(1000);delay(milliseconds);
  19. 19. loopvoid loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000);}
  20. 20. Esercizio 1Fate in modo che il led rimanga acceso per unsecondo e mezzo e poi si spenga per mezzosecondo
  21. 21. Esercizio 2Fate in modo che il led sia attaccato al pin 12 diarduino anziché il 13
  22. 22. Secondo circuito: due diodi LEDOccorrente:6 Cavetti;2 diodi LED;2 resistenze da 220 Ohm (rosso-rosso-marrone)
  23. 23. Secondo circuito: 2 diodi LED -Il piedino più lungo del LED è il polo positivo; -La resistenza è chiamata resistenza di pull- up.
  24. 24. DoubleLed.ino prima parteint led1 = 13;int led2 = 5;void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT);}[...]
  25. 25. DoubleLed.ino seconda parte[...]void loop() { digitalWrite(led1, HIGH); delay(1000); digitalWrite(led1, LOW); digitalWrite(led2, HIGH); delay(1000); digitalWrite(led2, LOW);}
  26. 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. 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. 28. LedButton.ino prima parteint led = 13;int button = 2;int val;void setup() { pinMode(led, OUTPUT); pinMode(button, INPUT);}[...]
  29. 29. LedButton.ino seconda parte[...]void loop() { val = digitalRead(button); if (val == HIGH) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); }}
  30. 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. 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. 32. LedPhoto1.ino prima parteint luce = 0;int val;void setup() { Serial.begin(9600);}[...]
  33. 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. 34. LedPhoto2.ino prima parteint luce = 0;int val;int led = 13;void setup() { Serial.begin(9600); pinMode(led, OUTPUT);}
  35. 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. 36. Quinto circuito: sensore ditemperatura LM35.Occorrente:5 Cavetti;1 LM35
  37. 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. 38. LM35.ino prima parteint temp;int val;int sensor = 0;void setup() { Serial.begin(9600);}[...]
  39. 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. 40. Aiuto!Arduino User Group RomasuGoogle Groups
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×