VLCinstruct

Leren van elkaar

Anders

Neopixel Glitterbol

Wij hebben een glitterbol gemaakt die van kleur veranderd door de Neopixel ring die eronder zit.  Wij hebben een beetje moeite gehad met het opzoeken van een code voor de Neopixel ring. Maar uiteindelijk is alles gelukt.

Benodigheden:

  • Glazen potje
  • Kartonnen doosje
  • Water
  • Glitters
  • Neopixel ring met 12 lampjes
  • Laptop
  • Arduino
  • Verf
  • Lijmpistool

Je begint met het maken van het glitter potje. Je vult het potje met water en voegt glitters toe. Je kan de dop van het potje verven in een kleur die je leuk vindt. Vervolgens lijm je de dop vast aan het potje.

Dan ga je draadjes aan de Neopixel ring solderen en vervolgens verbind je die draden met de Arduino. Op de computer voeg je de volgende code toe:

#include <Adafruit_NeoPixel.h>

#define PIN 6

// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(12, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
strip.begin();
strip.setBrightness(30); //adjust brightness here
strip.show(); // Initialize all pixels to 'off'
}

void loop() {
// Some example procedures showing how to display to the pixels:
colorWipe(strip.Color(255, 0, 0), 50); // Red
colorWipe(strip.Color(0, 255, 0), 50); // Green
colorWipe(strip.Color(0, 0, 255), 50); // Blue
rainbow(16);
rainbowCycle(16);
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}

void rainbow(uint8_t wait) {
uint16_t i, j;

for(j=0; j<256; j++) {
for(i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel((i+j) & 255));
}
strip.show();
delay(wait);
}
}

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
uint16_t i, j;

for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
for(i=0; i< strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
strip.show();
delay(wait);
}
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
if(WheelPos < 85) {
return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
} else if(WheelPos < 170) {
WheelPos -= 85;
return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
} else {
WheelPos -= 170;
return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
}

 

Als laatste maak je het kartonnen doosje. Je snijdt er een rondje in uit waar de Neopixel ring in kan. In het doosje leg je de Arduino en je maakt een vakje aan de zijkant waar de kabel door gaat die de Arduino verbind met de computer.  Ook het doosje kan je een bepaalde kleur verven.

Je kan het potje schudden en vervolgens op het doosje zetten. In een donkere ruimte zie je het resultaat beter.  En je bent klaar!

 

Lina Yousofzai

Noa Buur

H4C

 

Geef een reactie

Thema door Nand Homan en Jeroen van Diepen

Hey, wij gebruiken Cookie's. Hiermee zorgen wij ervoor dat onze site werkt zoals hij bedoeld is. Ons cookie's hebben alleen maar goede bedoelingen, wij gebruiken ze zo minimaal mogelijk. We gebruiken ze niet voor onderzoeken, alleen voor het draaien van de site zelf.

Dus willen jullie Cookie's? Cookie policy