Hi guys!
I'm pretty much a newbie trying to complete a project for an Industrial Design course at uni/college... I don't have a strong background in coding or electronics but I do understand bits and pieces...would really appreciate some guidance on getting a code to work with the components if someone has time to look over my attempt!
THE GOAL:
Use 2m strip of digital LEDs (60 LEDs in total)
(Adafruit NeoPixel Digital RGB LED Strip - Black 30 LED [BLACK] : ID 1460 : $84.75 : Adafruit Industries, Unique & fun DIY electronics and kits)
In conjunction with infrared thermometer (http://littlebirdelectronics.com/products/infrared-thermometer-mlx90614)
To achieve this: RGB Led Strip controlled by an Arduino changing color based on temperature - YouTube
THE PROGRESS:
I have managed to get the thermometer to work independently as seen in this demo http://bildr.org/2011/02/mlx90614-arduino/
as well as in conjunction with one single RGB LED similarly to this Sparks N Smoke: 16. Infrared Thermometer - MLX90614 ...I guess in that sense I've achieved my proof of concept!
THE PROBLEM:
I've got my hands on a 5V DC 3A power supply (should be enough to power 60 LEDs)
but have no idea how to tweak the strand test script (library available via link below code)... Could someone please throw me a bone on generating a script for this type of LED strip to work with the above thermometer...
#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(60, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
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(20);
rainbowCycle(20);
}
// 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);
}
}
would really appreciate some assistance!
Cheers,
Joel