output - Politecnico di Milano

Transcript

output - Politecnico di Milano
output
LED
Digitale
Resistenza associata
220 Ω
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
l led, ovvero Light Emission Diode, sono
dei piccoli componenti che se attraversati
da una debole corrente si illuminano.
I led sono molto economici, quelli standard, di colore rosso, verde e giallo,
costano meno di 20 centesimi. Quelli ad
alta luminosità (HL), costano di più, circa
1 euro.
- Il piedino di lunghezza superiore,
chiamato "Anodo", deve essere collegato
al positivo.
- Il piedino di lunghezza inferiore,
chiamato "Catodo", deve essere inserito
al negativo.
front
end
output
Obiettivo:
Accensione e spegnimento LED
int led = 13;
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
void loop() {
// turn the LED high
digitalWrite(led, HIGH);
// wait for a second
delay(1000);
// turn the LED low
digitalWrite(led,LOW);
// wait for a second
delay(1000);
}
front
end
RESISTENZA
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
E' un componente usato per controllare
il flusso di corrente in un circuito.
L'unità di misura delle resistenze prende
il nome di "ohm".
La misura delle resistenze si effettua in
diversi metodi, mediante uno strumento
chiamato multimetro o tester, selezionando la relativa funzione di ohmmetro;
oppure imparando a decifare le fascie
colorate stampigliate sul loro corpo.
Questi tipi di resistenze, con il valore
espresso in colori, è solitamente
associato alle resistenze al carbone.
back
end
Come leggere le
resistenze
moltiplicatore
valori numerici
nero
marrone
0
1
rosso
arancio
giallo
verde
blu
viola
grigio
2
3
4
5
6
7
8
bianco
9
argento
oro
0,01
0,1
nero
1
marrone
10
rosso
100
arancio
1K
giallo
10K
verde
100K
blu
1M
viola
tolleranza
argento ±10%
oro
±5%
marrone ±1%
±2%
rosso
verde ±0,5%
±0,25%
blu
±0,1%
viola
10M
back
end
input
PULSANTE
Digitale
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
Resistenza associata
10 KΩ
ll pulsante e' un'apparecchiatura elettrica
simile all'interruttore, ma con una molla
che lo riporta alla posizione di partenza
appena viene rilasciato. E’ in grado di
mettere in contatto i due piedini quando
viene premuto.
Esistono due tipi di pulsanti:
Normally open (NO): in italiano "normalmente aperto", appena viene premuto
chiude il circuito;
Normally closed (NC): in italiano "normalmente chiuso", appena viene premuto
apre il circuito.
front
end
input
Obiettivo:
Accensione e spegnimento LED
tramite pulsante
const int buttonPin = 2;
const int ledPin = 13;
// the number of pushbutton
// the number of the LED pin
//variable for reading the pushbutton status
int buttonState = 0;
void setup() {
// initialize the digital pin as an output
pinMode(ledPin, OUTPUT);
// initialize the digital pin as an output
pinMode(buttonPin, INPUT);
}
void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED high
digitalWrite(ledPin, HIGH);
}
else {
// turn LED low:
digitalWrite(ledPin, LOW);
}
}
front
end
INput
TERMISTORE
Analogico
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
Resistenza associata
1Ω
Un termistore e' una resistenza che
varia il suo valore in base alla temperatura. In generale la resistenza cresce al
diminuire della temperatura.
I termistori sono ampiamente utilizzati
come limitatori della corrente di spunto,
sensori di temperatura, protezione di
circuiti, controllo di dispositivi di riscaldamento.
Essendo una resistenza non ha la
polarità e può essere inserita nel circuito
in entrambe le direzioni senza cambiare
il suo comportamento.
front
end
INput
Obiettivo:
Acquisire la temperatura e comunicarla
al serial monitor
// select the input pin for the sensor
const int sensorPin = A0;
// variable to store the value coming from the sensor
int sensorValue = 0;
void setup(){
// initialize serial communication with the computer
at 9600 bits per second:
Serial.begin(9600);
}
void loop(){
//read the input value on analog pin 0
sensorValue = analogRead(sensorPin);
// print out the value you read:
Serial.println(sensorValue);
}
front
end
input
PIEZO
BUZZER
Analogico
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
Resistenza associata
1MΩ
Il piezo Buzzer e' un dispositivo che
sfrutta
l’effetto
piezoelettrico
per
convertire
pressione,
accelerazione,
deformazione o forza in un segnale
elettrico.
Può funzionare anche al contrario e, se
eccitato da un segnale elettrico, può
vibrare generando onde acustiche.
back
end
input
Obiettivo:
Rilevare il valore e trasmetterlo al
serial monitor
// select the input pin for the input
const int SensorPin = A0;
//variable to store the value coming from the sensor
int sensorValue = 0;
void setup()
{
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
void loop()
{
// read the input on analog pin 0
sensorValue = analogRead(SensorPin);
// print out the value you read;
}
if (sensorValue > 0)
Serial.println(sensorValue);
back
end
output
PIEZO
SPEAKER
Digitale
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
Resistenza associata
1MΩ
Il piezo Buzzer e' un dispositivo che
sfrutta
l’effetto
piezoelettrico
per
convertire
pressione,
accelerazione,
deformazione o forza in un segnale
elettrico.
Può funzionare anche al contrario e, se
eccitato da un segnale elettrico, può
vibrare generando onde acustiche.
front
end
output
Obiettivo:
Emettere un suono tramite il piezo
// Piezo speaker connected to digital pin 13
int soundPin = 13;
void setup()
{
// initialize the digital pin as an output:
pinMode(soundPin, OUTPUT);
}
void loop()
{
// set the pin on
digitalWrite(soundPin, HIGH);
// wait for a bit
delayMicroseconds(1136);
// set the pin off
digitalWrite(soundPin, LOW);
// wait for a bit
delayMicroseconds(1136);
}
front
end
INput
FOTOCELLULA
analogico
Resistenza associata
10 Ω
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
La fotocellula e' una resistenza che varia
in base all’intensita' della luce a cui viene
esposta.
Essendo una resistenza non ha una
polarita' e puo' essere inserita nel circuito
in entrambe le direzioni senza cambiare il
suo comportamento.
front
end
INput
Obiettivo:
Leggere i valori luminosi e comuncarli
al serial monitor
// select the input pin for the input
const int sensorPin = A0;
// variable to store the value coming from the sensor
int sensorvalue = 0;
// variable to store the cleaned value
int parsedvalue = 0;
void setup()
{
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
void loop()
{
// reading the sensor value
sensorvalue = analogRead(sensorPin);
// map the value
parsedvalue = map (sensorvalue, 140, 810, 0, 255);
// print out the value you read;
parsedvalue = constrain(parsedvalue, 0, 255);
Serial.println(parsedvalue);
}
front
end
INput
POTENZIOMETRO
Analogico
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
Resistenza totale
100 kΩ
Il potenziometro e' un semplice meccanismo che trasforma un movimento
meccanico ( la rotazione della manopola)
in una variazione del valore della
resistenza del componente elettronico;
cioe' una resistenza variabile a piacere tra
due limiti ben definiti.
front
end
INput
Obiettivo:
Regolare la frequenza HIGH/LOW del
PinLED 13 tramite potenziomentro
// select the input pin for the potentiometer
int sensorPin = A0;
// select the pin for the LED
int ledPin = 13;
// variable to store the value coming from the sensor
int sensorValue = 0;
void setup() {
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
// turn the ledPin high
digitalWrite(ledPin, HIGH);
// stop the program for <sensorValue> milliseconds:
delay(sensorValue);
// turn the ledPin low:
digitalWrite(ledPin, LOW);
// stop the program for <sensorValue> milliseconds:
delay(sensorValue);
}
front
end
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
COMUNICARE
DAL ARDUINO
AL COMPUTER
La scheda Arduino è in grado di comuncare tramite messaggi seriali durante
l’esecuzione dello sketch. In questo
modo può trasmettere o ricevere dati
atraverso la connessione USB con il
computer.
Obiettivo:
Riconoscere la pressione del pulsante
e trasmettere i dati al serial monitor
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
int buttonState = 0; // variable for reading the pushbutton
status
void setup() {
pinMode(ledPin,OUTPUT); // initialize the LED pin as an output:
pinMode(buttonPin,INPUT); // initialize the pushbutton
pin as an input:
Serial.begin(9600); // inizialize serial comunication
}
void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
Serial.println("on");
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
Serial.println("off");
}
}
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
COMUNICARE
DAL COMPUTER
AD ARDUINO
Arduino è in grado di instaurare una
comunicazione bidirezionale facendo
reagire la scheda ai comandi inviati dal
computer
Obiettivo:
comandare il PinLED 13 dal computer
// the number of the LED pin
const int ledPin = 13;
// variable for reading the pushbutton status
char tastoPremuto;
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// inizialize serial comunication
Serial.begin(9600);}
void loop(){
if (Serial.available()> 0) {
tastoPremuto = Serial.read();
switch (tastoPremuto){
//ASCII code H is 72
case 72:
digitalWrite(ledPin, HIGH);
Serial.println("LED on") ;
break;
//ASCII code L is 76
case 76:
digitalWrite (ledPin, LOW);
Serial.println ("LED off");
}
}
}
output
SERVOMOTORE
Analogico
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
M
E’ un dispositivo meccanico di precisione
che serve a gestire la posizione angolare
di un braccio meccanico.
E’ composto da un motore elettrico, un
motoriduttore ed un circuito di feedback
per la gestione della posizione. In
commercio, esiste una vasta scelta di
servi, ciascuno caratterizzabile per valore
di coppia e precisione.
front
end
output
Obiettivo:
Controllare il servo motore
tramite arduino
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int pos = 0;
// variable to store the servo position
void setup(){
// attaches the servo on pin 9 to the servo object
myservo.attach(9);
}
void loop() {
// goes from 0 degrees to 180 degrees in steps of 1 degree
for(pos = 0; pos < 180; pos += 1)
{
// tell servo to go to position in variable 'pos'
myservo.write(pos);
// waits 15ms for the servo to reach the position
delay(15);
}
// goes from 180 degrees to 0 degrees
for(pos = 180; pos>=1; pos-=1)
{
// tell servo to go to position in variable 'pos'
myservo.write(pos);
// waits 15ms for the servo to reach the position
delay(15);
}
}
front
end
CARD’UINO
Queste CARD sono state concepite per semplificare
l’apprendimento nell’utilizzo della piattaforma Arduino
all'interno della scuola di Design del Politecnico di
Milano.
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it
La parte frontale di ogni CARD è dedicata al fondamento teorico dei componenti elettronici utilizzabili con
Arduino, mentre il retro è dedicato all'applicazione
pratica di questi componenti attraverso esercizi basilari
presi dal sito arduino.cc.
Questi componenti sono stati classificati come INPUT
quando sono utilizzati per prelevare informazione
dall'ambiente (sensori) e come OUTPUT quando
agiscono modificando l'ambiente (attuatori). Contemporaneamente sono stati classificati come FRONTEND se l'utente finale del prodotto interagisce con il
componente, mentre come BACK-END se lo stesso è
"trasparente" all'utente finale.
Questo progetto didattico, ideato da PhyCo Lab, è
OpenSource e può essere modificato e/o ampliato da
chiunque. La versione 01 è stata sviluppata da Maicol
Zoia.
COMPONENTI
ARDUINO
1 Presa USB per comunicazione
seriale e alimentazione.
2 Jack alimentazione alternativa
(da 5v a 17v).
3 Pin dedicati all’alimentazione.
4 Pin analogici
5 Processore.
6 Tasto reset.
7 LED Feedback alimentazione.
8 Pin Output/Input digitali, quelli
contrassegnati dal simbolo ~
sono utilizzabili come analogici.
9 LED incorporato collegato al
Pin 13.
10 LED per feedback comunicazione seriale in ingresso (RX) e
uscita (TX).
10 9
8
1
7
6
5
2
3
4

Documenti analoghi

Button Turns on and off a light emitting diode(LED)

Button Turns on and off a light emitting diode(LED) // constants won't change. They're used here to // set pin numbers: const int buttonPin = 2; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin // variables wil...

Dettagli

Telecontrollo escavatore LEGO con board Arduino - CARL-O.

Telecontrollo escavatore LEGO con board Arduino - CARL-O. Pin 1: Attiva/disattiva il primo motore in base se è HIGH o LOW Pin 2: Insieme al pin 7 regola il verso di rotazione in base se è HIGH o LOW Pin 3: Qui colleghiamo uno dei 2 terminali del motore Pi...

Dettagli