/* 3Di - Kamp Bravo - fablabDeMakerij - Dirk Sarens Deze sketch stuurt 8 RGB leds van het type WS2812B aan. Deze leds staan op een plaatje van 8x1 Installeren van de library Adafruit NeoPixel. Deze sketch maakt gebruik van een library van Adafruit waardoor de leds heel gemakkelijk kunnen worden in- en uitgeschakeld. Ga naar schets - Bibliotheek gebruiken - Bibliotheken beheren. Geef 'neopixel' in bij filter, klik bij Adafruit NeoPixel op 'meer info' en op 'installeren' Controleer of de bibliotheek is geïnstalleerd door te kijken of er bij Bestand - Voorbeelden 'Adafruit NeoPixel' staat. 3Di gebruikt de Digispark microcontroller. Ga naar Bestand - Voorkeuren - en plaats in het vakje Additionele Boards Beheer URLs de volgende link: http://digistump.com/package_digistump_index.json Ga naar Hulpmiddelen - Board en kies onderaan Digispark (default - 16.5 MHz) Om het programma te uploaden. Zorg ervoor dat je digispark NIET verbonden is met de computer (USB uit dus) Kies Uploaden Onderaan in het zwarte scherm veschijnt er Plug in device now... (will timeout in 60 seconds) Verbind de digispark met de computer (USB insteken dus) */ #include //maak gebruik van de library Adafruit_NeoPixel Adafruit_NeoPixel DrieDi = Adafruit_NeoPixel(8,1); //maak je eigen object 'DrieDi', 8 is het aantal leds in jouw object en 1 is de pin van de Arduino waarmee de IN-pin van je object is verbonden // Met deze instructies maak je kleuren die je een naam geeft // Je kan verder in het programma deze kleuren gebruiken. // Wil je een andere kleur maken, dan kopieer je één van de onderstaande lijnen en geef je de kleur een andere naam // en zet je de drie getallen tussen de haakjes (rood, groen en blauw) op een waarde tussen 0 en 255. uint32_t rood = DrieDi.Color(255, 0, 0); //maak een variabele van het type 'uint32-t' met de naam 'rood' en plaats daarin een waarde die wordt gevormd door combinaties van R,G en B (in dit geval alleen rood) uint32_t groen = DrieDi.Color(0, 255, 0);//maak groen uint32_t blauw = DrieDi.Color(0, 0, 255);//maak blauw uint32_t magenta = DrieDi.Color(255, 0, 255);//maak magenta uint32_t cyaan = DrieDi.Color(0, 255, 255); //maak cyaan uint32_t geel = DrieDi.Color(255, 255, 0); //maak geel uint32_t wit = DrieDi.Color(255, 255, 255); //maak wit (alles aan) uint32_t zwart = DrieDi.Color(0, 0, 0); //maak 'zwart' (alles uit) void langzaamAAN(uint32_t kleur) { for (int i=0;i<254;i++) { DrieDi.setBrightness(i); DrieDi.fill(kleur); DrieDi.show(); delay(32); } DrieDi.setBrightness(255); } void langzaamUIT(uint32_t kleur) { for (int i=255;i>1;i--) { DrieDi.setBrightness(i); DrieDi.fill(kleur); DrieDi.show(); delay(32); } DrieDi.setBrightness(255); } void strobo(uint32_t kleur,int duur) { DrieDi.setBrightness(255); for (int i=0;i=1;i--) { DrieDi.setPixelColor(i, kleur); DrieDi.show(); delay(snel); DrieDi.setPixelColor(i, zwart); DrieDi.show(); } } } void setup() { DrieDi.begin();//maak je object klaar DrieDi.setBrightness(255);//de helderheid is een getal tussen 0 en 255 DrieDi.show(); // toon de ingestelde kleuren (aangezien er nog geen kleuren zijn ingesteld, betekent dit hier: zet de display uit) } void loop() { /* hier vind je een aantal mogelijke instructies die je kan gebruiken om de leds aan te sturen // helderheid aanpassen DrieDi.setBrightness(getal); zet de helderheid (een getal tussen 0 en 255) // de volgende instructies geven de leds een kleur maar ze laten de kleur nog niet zien DrieDi.setPixelColor(n,R,G,B); geef pixel n de juiste RGB-kleur (n tussen 0 en 7 R,G,B tussen 0 en 255) DrieDi.setPixelColor(n, kleur); geef pixel n de voorafingestelde kleur (n tussen 0 en 7) DrieDi.fill(kleur,vanaf,aantal); geef een 'aantal' leds een voorafingestelde kleur. Begin bij 'vanaf' DrieDi.fill(kleur,vanaf); geef alle leds vanaf 'vanaf' tot het einde een voorafingestelde kleur DrieDi.fill(kleur); geef alle leds een vooraf ingestelde kleur // laat de kleuren zien. Deze instructie moet je geven nadat je de kleuren hebt klaargezet met één of meerdere van de vijf bovenstaande instructies. DrieDi.show(); toon de kleuren // wacht een tijdje (want de microcontroller werkt razendsnel delay(getal); wacht 'getal' milliseconden. 1000 milliseconden is 1 seconde // hiermee doe je alle leds weer uit DrieDi.clear(); alle leds uit // samengestelde instructie. Hier hoef je geen DrieDi.show(); te doen langzaamAAN(kleur); Dit doet de leds allemaal langzaam aan langzaamUIT(kleur); Dit doet de leds allemaal langzaam uit strobo(kleur,tijd); dit doet de leds flikkeren gedurende een tijd. Tijd is een getal tussen 1 en 500 looplicht(kleur,snelheid,aantal) Dit doet de leds een aantal keer lopen, snelheid 10 = snel, snelheid 255 = traag */ // het volgende voorbeeldprogramma doet de leds telkens langzaam aan en dan langzaamuit en dit met verschillende kleuren langzaamAAN(rood); delay(30000); //wacht 30 seconden langzaamUIT(rood); delay(1000); //wacht 1 seconden langzaamAAN(wit); delay(30000); langzaamUIT(wit); delay(1000); langzaamAAN(groen); delay(30000); langzaamUIT(groen); delay(1000); langzaamAAN(blauw); delay(30000); langzaamUIT(blauw); delay(1000); langzaamAAN(magenta); delay(30000); langzaamUIT(magenta); delay(1000); langzaamAAN(cyaan); delay(20000); langzaamUIT(cyaan); delay(1000); }