Tradisjonelle hvite julelys kan gjerne bli litt kjedelige i lengden. Det er mulig å kjøpe mer fargerike varianter, men igjen blir du låst til farger og lyssekvenser noen andre har satt opp. Det beste er jo å bestemme både farger og frekvens selv. Heldigvis finnes det en løsning: Programmerbare julelys!

Det er fint mulig å kjøpe alle komponentene til julelysene selv. En annen løsning i disse travle juletider er å kjøpe en ferdig Teknoboks fra Kodegenet.

Hvordan gjør du det?

Start med å samle følgende:

  • En Arduino Uno
  • Ett koblingsbrett med koblingsledninger
  • En lysslynge med programmerbare julelys
  • 5V strømadapter med ledning
  • En USB kabel for å koble Arduino Uno til datamaskinen

Steg 1: Koble opp Arduino Uno til lysene

  • 1 ledning (f.eks svart) fra den hvite ledningen på lysene til GND
  • 1 ledning (f.eks grå) fra den grønne ledningen på lysene til digital port 2
  • 1 ledning (f.eks hvit) fra den rød ledningen på lysene til 5V

Arduino koblet opp til lyslenke

Steg 2: Koble Arduino Uno til datamaskinen med USB

Steg 3: Last ned og sett opp Arduino IDE

  • Sjekk at «Tools/Board» er satt til «Arduino/Genuino Uno»
  • Sjekk at «Tools/Port» er satt til porten som har «(Arduino/Genuino Uno)» på slutten av navnet (f.eks. «COM4 (Arduino/Genuino Uno)»)
  • Legg til Adafruit_NeoPixel-bibilioteket under «Sketch/Include Library/Manage Libraries»

Steg 4: Skriv eller kopier inn programmet du vil kjøre

Steg 5: Trykk «Upload» og vent på at programmet kompilerer og lastes opp

Lilla, lysende lyslenke
Det lyser!

Litt mer kode takk!

For et fullt kodeeksempel, gå til github. Kodesnutten under viser den delen av koden der du endrer fargene på lysene.

Metoden changeColorForAllLights() tar fargen som input og går gjennom alle 50 lysene i lenken. I metoden loop() setter du opp hvilke farger som skal vises.

void changeColorForAllLights(uint32_t color) {
 for (int lightIndex = 0; lightIndex < 50; lightIndex++) {
  strip.setPixelColor(lightIndex, color);
  strip.show();
  delay(20);
 }
}

void loop() {
 uint32_t green = strip.Color(255, 0, 0);
 uint32_t red = strip.Color(0, 255, 0);

 changeColorForAllLights(green);
 changeColorForAllLights(red);
 strip.show(); 
}

Prøv selv!

Lysene kan vise alle farger du kan spesifisere med RGB. I eksempelet ovenfor bruker vi helt rødt og helt grønt. Hvorfor ikke prøve skogsgrønn? rgb(34,139,34) Eller himmelblå? rgb(135,206,250)

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *