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)
// 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...
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...