Giochiamo con una striscia di led… (2)

luca 13 dicembre 2013 2

Dopo aver introdotto, in un precedente articolo, le strisce di led e avervi illustrato come controllare una striscia digitale, vediamo oggi un semplice progetto che nasce da una richiesta di un amico: far lampeggiare una striscia di led ad una frequenza variabile.

Cosa mi serve

Vista la semplicità del progetto, ho deciso di realizzarlo su una breadboard, usando i seguenti componenti:

  • un Arduino Mini Pro
  • un potenziometro da 4.7Kohm
  • un transistor MOSFET STP16NF06 (datasheet)
  • una striscia di led a 12V e il relativo alimentatore

Collegamenti

I vari elementi del progetto vanno collegati secondo questo schema:

Arduino

Lo sketch Arduino è disponibile nel mio repository su Github.

Vediamo il suo funzionamento:

#define ledPin        13
#define stripPin      2
#define analogInPin   A0

Per prima cosa definiamo alcune costanti: i PIN a cui sono collegati il led (on board), la striscia di led e il potenziometro (usiamo un PIN analogico per leggere il suo valore).

int outState = LOW;
long previousMillis = 0;
long interval = 1000;

Quindi inizializziamo le variabili che mantengono lo stato dell’uscita, il tempo trascorso e la frequenza di lampeggio (inizialmente di 1 secondo).

pinMode(ledPin, OUTPUT);
pinMode(stripPin, OUTPUT);

All’interno del setup(), configuriamo come OUTPUT i PIN a cui sono collegati led e striscia.

int potValue = analogRead(analogInPin);
interval = map(potValue, 0, 1023, 50, 2000);

Nel loop principale leggiamo il valore del potenziometro (tra 0 e 1023) e scaliamo tale valore, attraverso la funzione map, nell’intervallo 50-2000. Questo consente di regolare il periodo di lampeggio tra 50 e 2000ms.

if(currentMillis - previousMillis > interval) {

Se è trascorso un intervallo di tempo…

if (outState == LOW) outState = HIGH;
else outState = LOW;

… invertiamo lo stato dell’uscita…

digitalWrite(ledPin, outState);
digitalWrite(stripPin, outState);

… e accendiamo/spegnamo led e striscia.

Demo

Breve filmato che illustra il funzionamento dello sketch:

2 Comments »

  1. andrea 28 dicembre 2013 at 12:20 - Reply

    si può usare anche arduino uno rev3?

    • luca 14 gennaio 2014 at 18:59 - Reply

      Ciao Andrea,

      assolutamente sì!

Leave A Response »