ELECTRONICS LAB [WITH ARDUINO]

Похожие документы
ELECTRONICS LAB [WITH ARDUINO]

Accordi di 3 note / Accordi Maggiori Triade Maggiore. Settima Maggiore Si ottiene con la triade minore sul terzo grado: C maj7 = Mi m / Do

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

ELECTRONICS LAB [WITH ARDUINO]

ACCENDERE E SPEGNERE UN DIODO LED

Per controllare un motore DC (funzionante in corrente continua) con Arduino, devi utilizzare il circuito integrato Ponte H (nel mio caso un L293NE

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Lezione 3 PWM e motori. Stefano Panichi e Giulio Fieramosca

SCHEDA SPERIMENTALE ARDUINO UNO

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Stefano Panichi e Giulio Fieramosca

Facciamo lampeggiare un led

Arduino: Programmazione

PRIMI PASSI CON ARDUINO

8^ parte: Pilotare Motori passo-passo bipolari usando l integrato L293D. Author: Ing. Sebastiano Giannitto (ITIS M.

Cablaggio ponte H con integrato L293B

5^ parte : Controllare un LED RGB con 3 potenziometri. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Corso Professionale di Arduino Avanzato

FC-51: IR Infrared Obstacle Detection Sensor Module 2-30cm

Corso Arduino Maggio Riccardo Binetti Lezione 2 - Il calore dell analogico

CTU Presenta. Contest Automation con Arduino. IK0XBX - Francesco

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

Corso Base Arduino ed Elettronica

CORSO ARDUINO. Giulio Fieramosca Stefano Panichi. Corsi GOLEM 2014

ELETTRONICA CON ARDUINO

IIS Primo Levi - Lab. Sistemi A.S. 2011/2012 Classe 5AN/5BN

I SENSORI DI PROSSIMITA

8^ parte: Pilotare Motori passo-passo unipolari usando l integrato ULN2003A. Author: Ing. Sebastiano Giannitto (ITIS M.

INTERAZIONE ELETTRONICA

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Stefano Panichi e Giulio Fieramosca

CORSO ARDUINO. Jacopo Beli Giulio Fieramosca Luca Mati GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii 1

Costruzione degli inbook: 3 diverse strategie. a cura di Antonio Bianchi

Caratterizzazione morfometrica del bacino idrografico in GRASS GIS

CONTASECONDI CON DISPLAY A 7 SEGMENTI ARDUINO LIKE

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style

SISTEMI INFORMATICI/WEBGIS PER LA GESTIONE DI DATI AMBIENTALI E TERRITORIALI Povo, Steno Fontanari

HP LED Driver Shield. EtherMania di Signorini Marco Via Cadore MALNATE (VA) P.I REA VA

Arduino in connessione Bluetooth

L'alfabeto di Arduino

ARDUINO. Colleghiamolo al PC/MAC - FUNZIONA?

FONDAMENTI DI ARDUINO

Corso di programmazione Arduino DI MALVEZZI DAVIDE

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Stefano Panichi e Giulio Fieramosca

14^ parte : Sensore a ultrasuoni HC SR04 e Arduino. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

8^ parte : Come pilotare i motori passo-passo unipolari. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

La Keyes 4 relay non è proprio una shield nel senso classico definito nel mondo arduino in quanto una shield dovrebbe essere concepita per essere

Far lampeggiare un led o forse un semaforo?

17^ parte : Utilizzare il modulo Bluetooth JY-MCU. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Tipologie dei dati nell SDK di Arduino come in un vero LP ad alto livello :

Prima di iniziare (che novità!)

TM1638 BOARD con ARDUINO

Centro Sovrazonale di Comunicazione Aumentativa. Sistemi simbolici

The Best Practices Book Version: 2.5

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

RELAZIONE CANESTRO BASKET

Titolare del corso Prof. Andrea Cusano. Assistenti: Ing. Giuseppe Quero Ing. Antonio Iele Ing. Marco Leone Ing. Benito Carotenuto

Lezione 9: Come associare un modulo RTC ad Arduino

In questo tutorial decodificheremo i segnali provenienti da un telecomando qualsiasi e utilizzeremo gli stessi segnali per comandare Arduino a

SENSORI OTTICI - FOTORESISTENZE

Macchina con Arduino Uno comandata tramite dispositivo Android e sensore ultrasuoni per fermarsi istantaneamente di fronte ad un ostacolo

La piattaforma hardware e software Arduino: parte II. Corso di autoapprendimento

Programmazione di Base Variabili Array Funzioni Strutture di controllo. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Controllo di una soglia analogica

Ho messo la domotica a casa mia. My Home. Lorenzo Pini

LEGO Mindstorms e Arduino nella scuola secondaria di secondo grado: alcune esperienze didattiche. Pietro Bonora Liceo Scientifico A.B.

ARDUINO. Misurare e controllare. Riccardo Barberi. Dip. di Fisica Univ. Della Calabria Rende (CS), Italy

Introduzione all'uso di Arduino lezione 1

void setup() // funzione di configurazione dei Input/Output { pinmode(pin, OUTPUT); // setta il 'pin' come uscita (output) } 1

MOTORE PASSO-PASSO CON VELOCITÀ REGOLABILE

8^ parte: Pilotare Motori passo-passo bipolari usando l integrato SN754410NE. Author: Ing. Sebastiano Giannitto (ITIS M.

SEA Descrizione. Centralina Controllo Strip LED RGB

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

Telecontrollo escavatore LEGO con board Arduino

SENSORE AD ULTRASUONI HC-SR04 E ARDUINO

Introduzione alla Robo0ca

Транскрипт:

ELECTRONICS LAB [WITH ARDUINO] >>> DAY #2 Daniele Costarella Salvatore Carotenuto Teatro Carlo Gesualdo / Casina Del Principe Avellino

Rights to copy Attribution ShareAlike 3.0 Unported You are free: to Share - to copy, distribute and transmit the work to Remix to adapt the work Under the following conditions: Attribution You must attribute the work in the manner specified by the authors. Share Alike If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. Your fair use and other rights are in no way affected by the above. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/. 2

Il programma di oggi La tecnica PWM: controllo di LED; controllo di piccoli carichi; Effetti luminosi: LED fading; i LED RGB; sequence generators; 3

La tecnica PWM Rimontiamo il seguente circuito: 4

5 La tecnica PWM Cosa succede se facciamo lampeggiare molto velocemente il LED? // Modulazione di larghezza di impulso (PWM) #define LED 13 void setup() pinmode(led, OUTPUT); // LED sul pin 13 // imposta il pin come output void loop() digitalwrite(led, HIGH); // accende il LED delay(10); // aspetta 10 millisecondi digitalwrite(led, LOW); // spegne il LED delay(10); // aspetta 10 millisecondi

La tecnica PWM Il duty cycle Ampiezza Periodo TON TOFF Tempo 6

La tecnica PWM Il duty cycle Duty Cycle 50% Duty Cycle 75% Duty Cycle 25% 7

La tecnica PWM Facciamo alcuni esperimenti 1. 10ms acceso e 10ms spento 2. 5 ms acceso e 15ms spento 3. 75 ms acceso e 5ms spento 8

9 La tecnica PWM I pin PWM dedicati il PWM è una tecnica per ottenere risultati analogici con mezzi digitali Funzione analogwrite(pin, valore) Spiegazione Scrive un valore analogico (una forma d'onda PWM) sul pin passato come parametro. Parametri: pin: il pin da usare valore: compreso tra 0 (sempre spento) e 255 (sempre acceso)

La tecnica PWM Il duty cycle Duty Cycle 50% - analogwrite(pin, 128) Duty Cycle 75% - analogwrite(pin, 192) Duty Cycle 25% - analogwrite(pin, 64) 10

La tecnica PWM Il nuovo circuito: utilizziamo i pin PWM dedicati 11

12 La tecnica PWM Cosa succede se facciamo lampeggiare molto velocemente il LED? // Modulazione di larghezza di impulso (PWM) #define LED 9 void setup() pinmode(led, OUTPUT); void loop() analogwrite(led, 128); // LED sul pin 9 (PWM) // imposta il pin come output // duty cycle al 50%

La tecnica PWM Facciamo alcuni esperimenti, ora però con i pin dedicati 1. LED acceso allo 0%; 2. LED acceso al 25%; 3. LED acceso al 50%; 4. LED acceso al 75%; 5. LED acceso al 100%; 13

La tecnica PWM Solo per i LED? 14

La tecnica PWM Esempio: controlliamo un motore 15

La tecnica PWM Transistor Il motore DC utilizza più potenza di quella che Arduino è in grado di erogare. Se connettiamo il motore direttamente ai pin di Arduino, rischiamo di danneggiare la scheda. Utilizziamo, allora, un piccolo transistor (Es. PN2222) come switch che, utilizzando una piccola corrente da Arduino è in grado di pilotare correnti più elevate (motore). 16

La tecnica PWM Transistor Il transistor ha tre terminali. La maggior parte della corrente fluisce dal Collettore all'emettitore. Ciò avviene se accendiamo il transistor, ossia se facciamo fluire una corrente nella Base. Il resistore connesso a D3 limita la corrente di Base. Se connettiamo il motore direttamente ai pin di Arduino, rischiamo di danneggiare la scheda. Il diodo è inserito per la protezione del circuito. 17

18 La tecnica PWM Esempio 1: rampa // Modulazione di larghezza di impulso (PWM) #define MOTOR 3 // controllo motore sul pin 3 void setup() pinmode(motor, OUTPUT); void loop() analogwrite(motor, delay(1000); analogwrite(motor, delay(1000); analogwrite(motor, delay(1000); analogwrite(motor, delay(1000); 64); // imposta il pin come output // // 128); // // 192); // // 255); // // motore al aspetta 1 motore al aspetta 1 motore al aspetta 1 motore al aspetta 1 25% secondo 50% secondo 75% secondo 100% secondo

La tecnica PWM Esempio 2: variamo la velocità manualmente // Esempio 2: DC Motor int motorpin = 3; void setup() pinmode(motorpin, OUTPUT); Serial.begin(9600); while (! Serial); Serial.println("Velocità [da 0 a 255]: "); void loop() if (Serial.available()) int speed = Serial.parseInt(); if (speed >= 0 && speed <= 255) analogwrite(motorpin, speed); 19

20 Elementi di programmazione Il ciclo for Simbolo for (valore_iniziale, test, incremento) // < codice da ripetere > // for (i = 0; i<100; i++) // < codice da ripetere > // Spiegazione Esegue un blocco di codice per un certo numero di volte, ossia finchè la condizione test è vera. Esempio: esegue un blocco di codice per 100 volte

21 Giochi di luce LED fading #define LED 9 int fadevalue = 0; void setup() pinmode(led, OUTPUT); // LED collegato al pin 9 // valore del fade // imposta il pin come output void loop() // esegue un ciclo da 0 a 254 (fade in) for (fadevalue = 0 ; fadevalue < 255; fadevalue++) //impostiamo la luminosità del LED analogwrite(led, fadevalue); delay(10); // // esegue un ciclo da 255 a 1 (fade out) for(fadevalue = 255 ; fadevalue > 0; fadevalue--) //impostiamo la luminosità del LED analogwrite(led, fadevalue); delay(10);

22 Giochi di luce LED fading #define LED 9 int fadevalue = 0; void setup() pinmode(led, OUTPUT); // LED collegato al pin 9 // valore del fade // imposta il pin come output void loop() // esegue un ciclo da 0 a 254 (fade in) for (fadevalue = 0 ; fadevalue < 255; fadevalue++) //impostiamo la luminosità del LED analogwrite(led, fadevalue); delay(10); // // esegue un ciclo da 255 a 1 (fade out) for(fadevalue = 255 ; fadevalue > 0; fadevalue--) //impostiamo la luminosità del LED analogwrite(led, fadevalue); delay(10);

Giochi di luce LED RGB 23

Giochi di luce LED RGB: montiamo il circuito 24

Giochi di luce LED RGB: lo sketch //Flussi 2013 DAY 2: RGB LED int redpin = 11; int greenpin = 10; int bluepin = 9; void setup() pinmode(redpin, OUTPUT); pinmode(greenpin, OUTPUT); pinmode(bluepin, OUTPUT); void loop() setcolor(255, 0, 0); // red delay(1000); setcolor(0, 255, 0); // green delay(1000); setcolor(0, 0, 255); // blue delay(1000); setcolor(255, 255, 0); // yellow delay(1000); setcolor(80, 0, 80); // purple delay(1000); setcolor(0, 255, 255); // aqua delay(1000); 25

Giochi di luce LED RGB: lo sketch // continua void setcolor(int red, int green, int blue) analogwrite(redpin, red); analogwrite(greenpin, green); analogwrite(bluepin, blue); 26

Giochi di luce LED RGB: cose da fare Variare il ritardo Altri effetti di luce (YouTube, Google) 27

Giochi di luce LED chaser 28

Giochi di luce LED chaser: lo sketch int int int int int LED1 LED2 LED3 LED4 LED5 = = = = = 12; 11; 10; 9; 8; void setup() pinmode(led1, pinmode(led2, pinmode(led3, pinmode(led4, pinmode(led5, OUTPUT); OUTPUT); OUTPUT); OUTPUT); OUTPUT); 29

Giochi di luce LED chaser: lo sketch void loop() digitalwrite(led1,high); delay(100); digitalwrite(led1,low); delay(25); digitalwrite(led2,high); delay(100); digitalwrite(led2,low); delay(25); digitalwrite(led3,high); delay(100); digitalwrite(led3,low); delay(25); digitalwrite(led4,high); delay(100); digitalwrite(led4,low); delay(25); digitalwrite(led5, HIGH); delay(100); digitalwrite(led5, LOW); delay(25); 30

Giochi di luce LED chaser: cose da fare Variare il ritardo Pilotare più LED Largo alla fantasia! 31

Giochi di luce Pilotare più LED: meglio usare uno Shift Register 32

Giochi di luce Pilotare più LED: lo Shift Register 74HC595 Si può pensare allo Shift Register come un oggetto in grado di conservare 8 bit in memoria Per scrivere tali valori utilizziamo i pin Data e Clock del chip 33

Giochi di luce Pilotare più LED: meglio usare uno Shift Register /* Flussi 2013 DAY 2: 8 LED e uno Shift Register */ int latchpin = 5; int clockpin = 6; int datapin = 4; byte leds = 0; void setup() pinmode(latchpin, OUTPUT); pinmode(datapin, OUTPUT); pinmode(clockpin, OUTPUT); 34

Giochi di luce Pilotare più LED: meglio usare uno Shift Register void loop() leds = 0; updateshiftregister(); delay(500); for (int i = 0; i < 8; i++) bitset(leds, i); updateshiftregister(); delay(500); void updateshiftregister() digitalwrite(latchpin, LOW); shiftout(datapin, clockpin, LSBFIRST, leds); digitalwrite(latchpin, HIGH); 35

FINE... PER OGGI