LED - Redirect... la pressione del pulsante e trasmettere i dati al serial monitor const int...
-
Upload
truongduong -
Category
Documents
-
view
218 -
download
0
Transcript of LED - Redirect... la pressione del pulsante e trasmettere i dati al serial monitor const int...
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.itoutput
frontend
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 stand-ard, 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.
LEDDigitale
Resistenza associata 220 Ω
frontend
output
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); }
Obiettivo: Accensione e spegnimento LED
frontend
backend
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.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, selezion-ando 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.
RESISTENZA
Come leggere le resistenze
backend
neromarronerossoaranciogialloverdebluviolagrigiobianco
10
23456789
argentooroneromarronerossoaranciogialloverdebluviola
0,10,01
110
1001K
10K100K
1M10M
valori numerici
moltiplicatore
tolleranza
oroargento
marronerossoverdeblu
±5%±10%
±1%±2%
±0,5%±0,25%
viola ±0,1%
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.it
frontend
input
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 "normal-mente aperto", appena viene premuto chiude il circuito;
Normally closed (NC): in italiano "normal-mente chiuso", appena viene premuto apre il circuito.
PULSANTEDigitale
Resistenza associata10 KΩ
input
frontend
const int buttonPin = 2; // the number of pushbuttonconst int ledPin = 13; // the number of the LED pin
//variable for reading the pushbutton statusint buttonState = 0;
void setup() {// initialize the digital pin as an outputpinMode(ledPin, OUTPUT);// initialize the digital pin as an outputpinMode(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); }}
Obiettivo: Accensione e spegnimento LED
tramite pulsante
INput
frontend
Un termistore e' una resistenza che varia il suo valore in base alla tempera-tura. 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 riscal-damento.
Essendo una resistenza non ha la polarità e può essere inserita nel circuito in entrambe le direzioni senza cambiare il suo comportamento.
TERMISTOREAnalogico
Resistenza associata1 Ω
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.it
INput
frontend
// select the input pin for the sensorconst int sensorPin = A0; // variable to store the value coming from the sensorint sensorValue = 0;
void setup(){
// initialize serial communication with the computerat 9600 bits per second:Serial.begin(9600);}
void loop(){
//read the input value on analog pin 0sensorValue = analogRead(sensorPin);// print out the value you read:Serial.println(sensorValue);}
Obiettivo:Acquisire la temperatura e comunicarla
al serial monitor
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.itinput
backend
PIEZOBUZZER
Analogico
Resistenza associata1MΩ
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.
input
backend
// select the input pin for the inputconst int SensorPin = A0;
//variable to store the value coming from the sensorint sensorValue = 0;
void setup(){
// initialize serial communication at 9600 bits per second:Serial.begin(9600); }
void loop()
{
// read the input on analog pin 0sensorValue = analogRead(SensorPin); // print out the value you read;
if (sensorValue > 0) Serial.println(sensorValue); }
Obiettivo: Rilevare il valore e trasmetterlo al
serial monitor
output
frontend
PIEZO SPEAKER
Digitale
Resistenza associata1MΩ
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.
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.it
output
frontend
// Piezo speaker connected to digital pin 13int 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 bitdelayMicroseconds(1136); // set the pin off digitalWrite(soundPin, LOW);// wait for a bit delayMicroseconds(1136); }
Obiettivo:Emettere un suono tramite il piezo
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.itINput
frontend
FOTOCELLULA
analogico
Resistenza associata10 KΩ
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.
INput
frontend
// select the input pin for the inputconst int sensorPin = A0; // variable to store the value coming from the sensorint sensorvalue = 0; // variable to store the cleaned valueint parsedvalue = 0;
void setup(){// initialize serial communication at 9600 bits per second: Serial.begin(9600); }
void loop(){// reading the sensor valuesensorvalue = analogRead(sensorPin); // map the valueparsedvalue = map (sensorvalue, 140, 810, 0, 255); // print out the value you read;parsedvalue = constrain(parsedvalue, 0, 255); Serial.println(parsedvalue);}
Obiettivo:Leggere i valori luminosi e comuncarli
al serial monitor
INput
frontend
POTENZIOMETRO
Analogico
Resistenza totale100 kΩ
Il potenziometro e' un semplice meccan-ismo 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.
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.it
INput
frontend
// select the input pin for the potentiometerint sensorPin = A0;// select the pin for the LEDint 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 highdigitalWrite(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); }
Obiettivo:Regolare la frequenza HIGH/LOW del
PinLED 13 tramite potenziomentro
COMUNICARE DAL ARDUINOAL COMPUTER
La scheda Arduino è in grado di comun-care tramite messaggi seriali durante l’esecuzione dello sketch. In questo modo può trasmettere o ricevere dati atraverso la connessione USB con il computer.
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.it
Obiettivo:Riconoscere la pressione del pulsante
e trasmettere i dati al serial monitor
const int buttonPin = 2; // the number of the pushbutton pinconst int ledPin = 13; // the number of the LED pinint buttonState = 0; // variable for reading the pushbutton statusvoid 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"); } }
COMUNICARE DAL COMPUTER
AD ARDUINO
Arduino è in grado di instaurare una comunicazione bidirezionale facendo reagire la scheda ai comandi inviati dal computer
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.it
// the number of the LED pinconst int ledPin = 13; // variable for reading the pushbutton statuschar 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 72case 72: digitalWrite(ledPin, HIGH);Serial.println("LED on") ;break;//ASCII code L is 76case 76:digitalWrite (ledPin, LOW);Serial.println ("LED off"); } }}
Obiettivo:comandare il PinLED 13 dal computer
SERVOMOTORE
Analogico
output
frontend
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.
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.it
M
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); } }
output
frontend
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.
La parte frontale di ogni CARD è dedicata al fonda-mento 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). Contem-poraneamente sono stati classificati come FRONT-END 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.
Reali
zzat
e da
Maic
ol Z
oia
/ sca
ricab
ili da
ww
w.ph
ycol
ab.p
olim
i.it
Presa USB per comunicazione seriale e alimentazione.Jack alimentazione alternativa (da 5v a 17v).Pin dedicati all’alimentazione.Pin analogiciProcessore.Tasto reset.LED Feedback alimentazione.Pin Output/Input digitali, quelli contrassegnati dal simbolo ~ sono utilizzabili come analogici.LED incorporato collegato al Pin 13.LED per feedback comunicazi-one seriale in ingresso (RX) e uscita (TX).
1
2
345678
9
10
COMPONENTI ARDUINO
5
10
1
2
9
8
7
6
3 4