LED - Redirect... la pressione del pulsante e trasmettere i dati al serial monitor const int...

24
Realizzate da Maicol Zoia / scaricabili da www.phycolab.polimi.it output front end 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. LED Digitale Resistenza associata 220 Ω

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