När du egentligen vill göra en neonskylt, men inte är så sugen på att smälta glastuber och hantera läskig gas.

Bakgrund

En modern tolkning av den klassiska neonskylten som är mjukare och dessutom har individuellt adresserbara lysdioder. Det vill säga, det är möjligt att göra coolare mönster än med neon (där hela skylten alltid lyser med samma färg), men det är lite svårare att få till skarpa hörn.

Material

Huvudrollen i projektet spelas av en silikoninnesluten LED-list med 60 Neopixlar på en meter. Neopixlarna är sammankopplade i grupper om tre, så i praktiken kan man se det som 20 breda Neopixlar per meter. Det tjocka silikonhöljet gör att de enskilda lysdioderna inte kan urskiljas alls och gör dessutom LED-listen helt vattentät.

LED-listen kan styras av valfri mikroprocessor. Den här gången valde jag Adafruit Feather Bluefruit LE eftersom jag var nyfiken på att testa Bluetooth-styrning också. (För att demonstrera kopplade jag senare även LED-listen till en Circuit Playground som råkade finnas till hands och det fungerade precis lika bra.)

Bygg ihop kretsen

Så här ser kretsen ut när den är färdigbyggd. Det kan verka lite rörigt, men vi reder snart ut alla de ingående delarna.

Styrkretsen matas med 5 VDC medan LED-listen behöver 12 VDC. De bägge spänningsmatningarnas jord kopplas samman. En styrsignal går mellan styrkretsen och LED-listen. Övriga komponenter är för att skydda de ingående delarna.

För att komma åt ingångarna på LED-listen, utan att klippa bort kontakten, använder vi ena halvan av 3-pin JST set:et.

Den röda kabeln är 12 VDC, den svarta är GND och den gröna är vår styrsignal/data. Den röda och svarta kabeln kan kopplas in i CCTV-1024-kontakten, men den gröna behöver förlängas och sedan kopplas in i styrkretsen på lämplig utgång (jag valde pinne 11 vilket återspeglas i programmet).

Adafruit rekommenderar några extra säkerhetsåtgärder för att skydda Neopixlarna. I det här fallet, när de är ingjutna i silikon och inte går att komma åt, är det extra viktigt. (På en vanlig LED-list skulle man vid behov enkelt kunna ta bort en trasig Neopixel och löda om anslutningarna, men det går inte här.)

  1. Sätt en kondensator på minst 1000 µF 6,3V mellan + och – terminalerna på spänningsmatningen för att skydda slingan mot strömspikar. Jag löste det genom att crimpa ihop benen på kondensatorn med respektive kablar i ändhylsor.
  2. Löd fast ett motstånd (300 – 500 Ohm) mellan Arduinons pinne för utdata och ingången på första Neopixeln, närmast Neopixeln.

Eftersom LED-listen matas med 12 VDC och styrkretsen med 5 VDC måste GND från LED-listen kopplas ihop med GND på styrkortet. Jag löste det genom att löda ihop dem innan jag crimpade ihop dem med kondensatorn i CCTV-1024-kontakten.

Gör alltid en prototypkoppling först. Jag använde kablar med små klämmor på till styrkretsen, tills jag såg att mitt program fungerade som avsett och jag kunde byta ut dem mot lödningar. När du är redo att testa live, tänk på att alltid först koppla in spänningen till LED-listen, därefter spänningen till styrkretsen.

Programmering

Som i de allra flesta fall finns mycket färdig kod att låna från Adafruit. Jag har utgått från deras exempel, men gjort en del justeringar vad gäller ljuslägen och knappar.

Blåtandskopplingen kräver två extra filer och därför har vi samlat allt kodrelaterat på vår Github.

Styrkortet programmeras från Arduino IDE och kontrolleras därefter via en app som är skapad av  Adafruit själva. Den heter Bluefruit LE Connect och finns både för Android och iOS. Ladda hem och öppna den.


Anslut till ”Adafruit Bluefruit LE”.

En blå lysdiod blinkar på styrkretsen när blåtandskopplingen är uppe.

Appen har många fler användningsområden än vad som behövs i det här fallet. Den enda modul vi använder heter ”Controller”.

I den kan man välja ”Color Picker” för att välja en färg och sedan ”Control Pad” för att välja vilket läge man vill sätta listen i.

Välj färgnyans samt ljusstyrka.

Det finns åtta olika knappar i ”Control Pad”, så det går att förprogrammera åtta olika ljuslägen.

Observera att det läge som är valt måste köra färdigt innan en ändring visas. Det blir därför ofta lite fördröjning från det att man valt ett nytt läge till dess att det visas. Men det räcker att trycka på en knapp, släppa och vänta, man måste inte trycka precis när en programslinga är slut.

Kom ihåg att varje gång styrkretsen stängs av (får sin ström bruten) eller ett program läses in, bryts blåtandskopplingen och den måste göras om. Detsamma gäller om den telefon som är parkopplad med styrkretsen försvinner utom räckhåll. LED-listen fortsätter lysa även om kopplingen försvinner, men det går inte att styra den utan att göra om parkopplingen.

Vid omstart hamnar den alltid i det ljusläge som är programmerat på knapp 1 med färgen vit.

Så här fungerar mitt program:

Vänsterpil: tänd en slumpmässig “pixel” med färgen som valts i ”Color Picker”

Uppåtpil: Starkt lysande växlande regnbåge – hela listen lyser med en färg i taget

Nedåtpil: svagt lysande växlande regnbåge – hela listen lyser med en färg i taget

Högerpil: så kallad Larson-scanner i rött (några pixlar rör sig och studsar vid ändlägena)

1: Neonimitation – hela listen lyser med en färg. Välj nyans samt styrka i ”Color Picker”

2: tänd hela listen en “pixel” i taget med vald färg, släck därefter på samma sätt

3: svagt lysande regnbåge jämnt spridd över hela listen
4: starkt lysande regnbåge jämnt spridd över hela listen

Montering

Vi konstruerade snabbt en liten passande låda som skrevs ut på 3D-printern i en glad färg. Filerna finns på github om du också vill göra en egen.

Annars finns vårt sortiment av färdiga lådor här.

Istället för att göra väldigt många skruvhål i väggen monterade vi listen på en skåpslucka. Vi monterade den med hjälp av fästklamrar (som egentligen hör till en annan LED-slinga som vi hade liggandes).

Silikonklädda saker är experter på att suga åt sig damm. I det här fallet är den enklaste lösningen på det problemet att koppla loss listen ibland och skölja den under vatten – den tål ju det. 🙂 (Smidigt nog har vi inte heller lött fast LED-listens insignaler utan använt en kontakt.)