Pages: [1]   Go Down
Author Topic: FastSPI with SM16716 Addressable RGB LED Strip problems...  (Read 597 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 34
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello, i ordered this RGB LED Strip http://www.ebay.com/itm/170938208907?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2648, witch, arrived today, the only problem is, i'm not very experienced with SPI and i couldn't find very much information about the SM16716 Drivers anywhere, i also tried contacting the Seller (since the ebay page wasn't very informative), but he apparently didn't know very much about the Drivers either... I couldn't even find any test sketch for the FastSPI Library, exept the one Example sketch that comes with the Library, i tried getting it to work with the Example sketch but didn't get very far...

I'm using an ATMega 1280, and have the Strips input connected with GND to GND and 5V to 5V of the Arduino and an old PC Power Supply (that is currently the only Power supply i have that gives me enough power), so the Arduino is also being powered from the PC Power Supply. The Data Pin of the Strip is connected to Pin 51 of the Arduino, and the Clock Pin of the Strip is connected to Pin 52 of the Arduino...

I changing the Example sketch to fit my Strip, although i couldn't find out what the FastSPI_LED.setPin(PIN); was for, apparently it does nothing, my latest test sketch is this one:

Code:
#include <FastSPI_LED.h>

int i = 1;

#define NUM_LEDS 40

// Sometimes chipsets wire in a backwards sort of way
struct CRGB { unsigned char r; unsigned char g; unsigned char b; };
struct CRGB *leds;

#define PIN 4

void setup() {
  Serial.begin(9600);
 
  FastSPI_LED.setLeds(NUM_LEDS);
  FastSPI_LED.setChipset(CFastSPI_LED::SPI_SM16716);
 
  FastSPI_LED.setPin(PIN);
 
  FastSPI_LED.init();
  FastSPI_LED.start();
 
  leds = (struct CRGB*)FastSPI_LED.getRGBData();
}

void loop() {
  leds[i].r = 255;
  leds[i].g = 1;
  leds[i].b = 1;
  FastSPI_LED.show();
  delay(300);
  leds[i].r = 1;
  leds[i].g = 255;
  leds[i].b = 1;
  FastSPI_LED.show();
  delay(300);
  leds[i].r = 1;
  leds[i].g = 1;
  leds[i].b = 255;
  FastSPI_LED.show();
  delay(300);
 
  if(Serial.available() > 0) {
    i = Serial.read() - '0';
    if(Serial.available() > 0) {
      i = i * 10;
      i += Serial.read() - '0';
    }
    Serial.flush();
    Serial.println(i);
  }
}

However alot of weird things are happening here, first of all, i'm not sure if this is normal but when the Strip is only connected to GND and 5V or the Arduino has the Wrong Sketch uploaded the Strip apparently just lights each LED with a Random Color, and well with the Sketch if normally supposed to alternate through Red, Green and Blue, on the Selected LED which you cand select by sending a number (between 1 and 40 in this case) to the Serial Port, but selecting an LED only works when you select them in the right order (eg. 1, 2, 3, 4, 5), so if i suddently select 25 or so, it kind of selects a Random or no LED at all, also the the Red, Green and Blue is all mixed up from LED to LED, but apparently some LED react correctly to the RGB Values, and some LEDs don't have Red, Green or Blue, instead the next or previous LED also Changes it's Value. Also if i write the RGB Value 0, 0, 0 to a LED it just doesn't update, well basically the Strip just does really weird random stuf smiley

Does anyone here have any experience with the SM16716 Drivers?

Hope someone can help me, i kind of ran out of ideas...

Thanks in advance!

Regards, Delphiño
Logged

Pages: [1]   Go Up
Jump to: