#define data 2 #define clock 3 int img[] = {1,1,4,1,1,3,4,3,2,4,3,4}; void setup() { pinMode(clock, OUTPUT); // make the clock pin an output pinMode(data , OUTPUT); // make the data pin an output3 } void loop() { int Y; int X; byte out; for(int i = 0; i < 12; i += 2) // number of points in the img array, this case 12 { // get the first pair of YX cords Y = (img[i] - 1); // subtract one since the bit count starts at 0 X = (img[i+1] - 1); // same here, but add 1 to i since were skipping every other count in the for loop out = 1 << (X + 4) | 1 << Y; // shift the second nibble in first and then shift the first nibble second shiftOut(data, clock, MSBFIRST, out); // shift the byte out to our register delay(1); // delay it abit so it has a chance to leave a spot of light in your eyes // and you should have a crude :) } }