Workshop su Arduino

Post on 12-Jan-2015

320 views 1 download

description

Dispense del workshop su Arduino.

Transcript of Workshop su Arduino

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)

http://www.zeppelinmaker.it

paolo.aliverti@gmail.com