workshop su arduino
DESCRIPTION
Dispense del workshop su Arduino.TRANSCRIPT
Workshop su Arduinohttp://www.zeppelinmaker.it
Prototipi elettronici
Breadboard
Saldare
Prototipi più stabili
Prototipi più stabiliWiring
Una scheda
Una community
Tool di sviluppo
Sketch
Struttura dello Sketch
setup
loop
+ -
LED
Lab 1 - Hello World
+ -
LED
al pin 13 al pin GND
Sketch
Verify
Upload
PIN e alimentazioni
PIN e alimentazioni
PIN e alimentazioni
PIN e alimentazioni
PIN e alimentazioni
Menate da Ingegnere
Devo dire sempre quando finisce una riga
;
Ci vuole ordineSi fa ordine con
{}
Maiuscole e Minuscolo sono importanti!
A != a
I commenti lunghi, su più righe sono racchiusi da
/* e*/
Note e commenti sono precedute da
//
// è una nota
setup(){
}
sketch
Devo dire come si devono comportare i rubinetti e i pozzetti
void setup() { pinMode(13, OUTPUT);
}
void setup() { pinMode(13, );
}
INPUTOUTPUT
void setup() { pinMode(13, OUTPUT);
}
loop(){
}
sketch
void loop() { digitalWrite(13, HIGH); delay(5000);digitalWrite(13, LOW); delay(5000);
}
void loop() { digitalWrite(13, HIGH); delay(5000);digitalWrite(13, LOW); delay(5000);
}
1 / 0
ON / OFF
5v / 0v
HIGH / LOW
void loop() { digitalWrite(13, HIGH); delay(5000);digitalWrite(13, LOW); delay(5000);
}
digitalWrite(13, HIGH);
digitalWrite(13, LOW);
void loop() { digitalWrite(13, HIGH); delay(5000);digitalWrite(13, LOW); delay(5000);
}
5000 ms = 5s
Modifichiamo i tempi...
Esercizio
Lab 2 - Timer
Sketch
Restart?
PIN e alimentazioni
Restart? RESET!
Lab – PWM
PWM – Pulse Width Modulation
AnalogWrite()
Non produce valori continui, ma solo PWM
void setup() { pinMode(11, OUTPUT);}
void loop() {analogWrite(9, 10);
}
analogWrite(9, numero);
digitalWrite(9, HIGH/LOW);
0 : 255
Cos'è?
int i = 0;
Una “Variabile”
Cassetto che contiene delle cose
Le cose:
calzinimagliette
posateint
Nomi di cassetti:
Cassetto dei calziniCassetto delle posate
volumei
Nomi di cassetti:
int volume;calzini “cassetto dei calzini”;
int è un tipo di cassetto adatto per contenere
numeri
int volume = 100;
Dove posso mettere i cassetti?
Setup(){int a = 0;
}
int b = 10;
Setup(){ a = 100;
}
int a = 0;
Lab – Push Button
Breadboard
Buttons
Collegamento
Collegamento
Sketch
int val = 0;
void setup() { pinMode(13, OUTPUT);
pinMode(7, INPUT); }
val = digitalRead(7);
HIGHLOW
val
void loop() { val = digitalRead(7);
if (val == HIGH) { digitalWrite(13, HIGH); delay(5000); } else { digitalWrite(13, LOW); }}
Lab – Termistore
PIN e alimentazioni
Collegamento
Collegamento
Termistore – Circuito
Sketch
void setup() {Serial.begin(9600);
}
void loop() {Serial.println(analogRead(A0));
}
analogRead(A0);
0 – 1023
A0 A1 A2 A3 A4 A5
5v / 1024 = 0.0049v
1 step = 4.9mV
Lab - termostato caldaia
Termostato – Circuito
Sketchvoid setup() {
pinMode(13, OUTPUT);}
void loop() {If ( analogRead(A0) > 500 ) {
digitalWrite(13, HIGH);} else {
digitalWrite(13, LOW);}
}
Lab – Guardiamo dentro
void setup() {
Serial.begin(9600); Serial.println("Hello Computer"); }
digitalReadanalogReaddigitalWriteanalogWrite
Extra
Lab – Sweep
Sketch
int i = 0;
void setup() { pinMode(9, OUTPUT);}
void loop() { for (i = 0; i < 255; i++) { analogWrite(9, i); delay(10); } for (i = 255; i > 0; i--) { analogWrite(9, i); delay(10); }}
void loop() { for (i = 0; i < 255; i++) { analogWrite(9, i); delay(10); } for (i = 255; i > 0; i--) { analogWrite(9, i); delay(10); }}
trimmer
Sketch
void loop() {
durata = analogRead(A0); ...}
Letture
http://blog.minibloq.org/
Materiali
Led – alta intensità o brillanteButton/switchTrimmer 22k o 4M7Res x2 100k o 10k
Breadboard
PcArduinoCavoSoftware (arduino + jdk + ftdi)