Modifichiamo una lampada IKEA con Arduino

IKEA è famosa per i suoi fantastici prodotti low cost.

La nostra attenzione è stata catturata dalla lampada a fibre ottiche Strala

Visto il basso costo (circa 5 €) abbiamo deciso di acquistarne 3 pezzi.
La luce è carina ma nulla di particolare. Il classico bianco fisso…

Quindi è iniziata la modifica.

L’obiettivo era quello di trasformare il bianco smorto in un bel mix di colori con un led RGB.
Per velocizzare lo sviluppo abbiamo utilizzato un Arduino, che risulta fin sprecato per questa applicazione.
Si possono utilizzare allo stesso modo un PIC12F675, o un ATTiny.

E questo è il risultato:

[youtube R7X_gqVrlv0?]

How to

Prima di tutto è necessario acquistare una lampada STRÅLA

Questo il contenuto della confezione

Disassemblare la parte centrale che contiene il led bianco.

Come potete vedere il led bianco ha un cono al centro per diffondere meglio la luce
Per questo motivo abbiamo modificato e levigato anche il nostro led RGB.

Collegate ai terminali del led una resistenza da 100 ohm per i colori Blu e Verde e da 180 ohm per il colore Rosso. Unite dei fili e dei pin femmina.

Realizzate invece con degli strip maschi un adattatore come in figura.

Collegate questo adattatore alle porte PWM di arduino e i fili relativi all’anodo del led al +5V.

Ecco i fili collegati ad Arduino

Lo sketch di Arduino

/* IKEA Strala mods

 created 2011
 by Boris Landoni

 This example code is in the public domain.

http://www.open-electronics.org

http://www.futurashop.it

https://www.elettronicain.it/

 */

#include <EEPROM.h>

int red = 9;    // RED LED connected to PWM pin 3
int green = 10;    // GREEN LED connected to PWM pin 5
int blue = 11;    // BLUE LED connected to PWM pin 6
int r=50; int g=100; int b=150;
int rup; int gup; int bup;
int fader=1;
int inc=10;
void setup()
{
  // start the Ethernet connection and the server:
      Serial.begin(9600);
      Serial.println("Serial READY");
      r = EEPROM.read(1);
      g = EEPROM.read(2);
      b = EEPROM.read(3);
      inc = EEPROM.read(4);
      fader = EEPROM.read(5);
      rgb(r, g, b);
}

void loop()  {

  if (fader==1){
    funcfader();
  }

}

void funcfader(){
    Serial.println("fader");
    if (rup==1){r+=1;}
    else{r-=1;}
    if (r>=255){rup=0;}
    if (r<=0){rup=1;}

    if (gup==1){g+=1;}
    else{g-=1;}
    if (g>=255){gup=0;}
    if (g<=0){gup=1;}

    if (bup==1){b+=1;}
    else{b-=1;}
    if (b>=255){bup=0;}
    if (b<=0){bup=1;}

    delay(inc*2);
    rgb(r, g, b);
}

void rgb(int r, int g, int b)
{

  Serial.print("RGB: ");
  Serial.print(r);
  Serial.print(" ");
  Serial.print(g);
  Serial.print(" ");
  Serial.print(b);
  if (r>255) r=255;
  if (g>255) g=255;
  if (b>255) b=255;
  if (r<0) r=0;
  if (g<0) g=0;
  if (b<0) b=0;

  analogWrite(red, r);
  analogWrite(green, g);
  analogWrite(blue, b);
}

Good modding

12 Commenti

  1. Fantastico, un progetto davvero molto interessante, appena passo all'IKEA ne compro qualcuna per Natale. Coincidenza prprio oggi ho publicato anche io un articolo con i Led ed Arduino: http://www.mauroalfieri.it/elettronica/arduino-lampada-rgb-a-led.html magari unendo i proggetti si possono ottenere effetti strabilianti e pilotati dal Pc :-) Grazie Boris!!!
  2. a giorni mi arriva un arduino e ho trovato molte utili le vostre informazioni dei vari tutorial che avete scritto... grazie.. :D
  3. sara che io l'ho provato ma non finziona mi da mille errori tipo eeprom (printIn)e un errore con la in e un errore poi mi da errore su r = eeprom.read (1) mi da errore chi l'ho ha fatto mi puo dare delle dritte? ho corregere?
  4. Bubu, cancella le righe dalla 30 alla 34. In pratica sono quelle che riportano eeprom.read, o se preferisci mettile come commento con "//" // r = EEPROM.read(1); // g = EEPROM.read(2); // b = EEPROM.read(3); // inc = EEPROM.read(4); // fader = EEPROM.read(5);
  5. da oggi sul mio blog http://www.mauroalfieri.it/elettronica/arduino-led-rgb-e-ikea.html c'è la spiegazione riga per riga del codice, se può essere di aiuto a qualcuno. Io acquisterò a breve, entro natale, qualche STRALA il resto ho già tutto.
  6. mauro scusa se ti scoccio ma il led tx e normale che resti acceso fisso se si bene se no mi haiuti e grazie di cuore per la dritta ora e tutto ok
    • Bubu, non so dirti. Sto ancora aspettando che mi arrivo l'arduino e dopo potrò fare qualche test con l'hardware. Guardando il sorgente credo che sia giusto che sia acceso, l'istruzione serial comunica con il tuo pc visualizzando delle informazioni. Se vuoi fare una prova, togli o metti un rem "//" su tutte le righe dove c'è un serial....
  7. Ciao Bubu, io uso arduino da molto tempo e anche utilizzando la seriale in modo continuo il led tx non resta mai acceso fisso, hai provato a premere reset dopo aver trasferito lo sketch? Al di là del led tx poi il progetto funziona? Ciao Mauro Alfieri

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Main Menu