Post is pinned.Post has attachment
Possible pictures to load
4 Photos - View album

Post has attachment
Thanks you +Jesus Vicente for a great project! I found your project last night while looking for options for my Full Moon Bike Rave project and had it up and running on an Arduino Uno in less than 30 minutes. My bike will have POV lights on both front and rear wheels.

Can you share the source for the Arduino Code Generator or the Android app? I'm planning to implement your Bluetooth version so that I can change the image while riding, and I'd like other people to be able to submit images or text into the queue that I can send to the

I'd like to have a Raspberry Pi with wifi running a web server with the image code generator for people to submit their pictures, and then send the images to the wheels over bluetooth.

This is a video of one of our Full Moon Bike Raves:

Hi, i wonder if it is possible to automatically display live speed into the led instead of images?

Thanks for sharing the project bro!


Post has attachment
HC-05Image upload sometimes failed,
Fantastic, how to show during the day,
Feel unable to keep up with the speed, can not change the frequency
3 Photos - View album

Post has attachment
Hello Folks!!!
Here, you can see photos about Pov design and programing by Jesús Vicente in Madrid Mini maker faire. thanks so much to bananut electronics for this photos.
You can see part of the team hiperbaric dosa.
2 Photos - View album

Post has attachment
Hi community!! MANUAL-POV with skate bearings and phone power bank

stl archives and code generator in
3 Photos - View album

Hi. I could not upload code.
What is the reason?
Attach error description.

D:\Documents\Arduino\libraries\FastLED-3.1.6/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.006

# pragma message "FastLED version 3.001.006"


스케치는 프로그램 저장 공간 5342 바이트(37%)를 사용. 최대 14336 바이트.
전역 변수는 동적 메모리 565바이트(55%)를 사용, 459바이트의 지역변수가 남음. 최대는 1024 바이트.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x18
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x86
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x06
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x78
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x86
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x66
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x80
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x98
스케치를 업로드 하는 동안 에러가 발생하였습니다.

Para mostrar una secuencias de imágenes primero hay que generar el programa completo de una de ellas, la primera que vayas a proyectar.
Después genera el código de las otras y copia la parte de las variables propia de cada imagen que son solo:

const uint8_t chipled[] PROGMEM = {0};
const uint8_t numstrip[] PROGMEM = {1};
const uint8_t numradios[] PROGMEM = {1};
const uint8_t radio1directo[] PROGMEM = {1};
const uint8_t radio2directo[] PROGMEM = {1};
const uint8_t radio2180[] PROGMEM = {0};
const uint8_t offset1[] PROGMEM = {0};
const uint8_t offset2[] PROGMEM = {0};
const uint8_t brillo[] PROGMEM = {128};
const uint8_t animate[] PROGMEM = {0};
const uint8_t num_leds[] PROGMEM = {30};
const uint16_t numpasos[] PROGMEM = {46};
const uint16_t angreducido[] PROGMEM = {58};
const uint16_t sizePolarRedu[] PROGMEM = {258};
const uint8_t PolarRedu[258] PROGMEM = {0,1,5,0,2,5,0,3,5,0,4,5,0,5,5,0,6,5,0,7,5,0,8,5,0,9,5,0,10,5,0,11,5,0,12,5,0,13,5,0,14,5,...};

Pero cambiando el nombre de cada una, poniendo un sufijo 2, un sufijo 3 para la tercera imagen y así sucesivamente. Por ejemplo

const uint8_t chipled2[] PROGMEM = {0};
const uint8_t numstrip2[] PROGMEM = {1};
const uint8_t numradios2[] PROGMEM = {1};
const uint8_t radio1directo2[] PROGMEM = {1};
const uint8_t radio2directo2[] PROGMEM = {1};
const uint8_t radio21802[] PROGMEM = {0};
const uint8_t offset12[] PROGMEM = {0};
const uint8_t offset22[] PROGMEM = {0};
const uint8_t brillo2[] PROGMEM = {128};
const uint8_t animate2[] PROGMEM = {0};
const uint8_t num_leds2[] PROGMEM = {30};
const uint16_t numpasos2[] PROGMEM = {46};
const uint16_t angreducido2[] PROGMEM = {58};
const uint16_t sizePolarRedu2[] PROGMEM = {258};
const uint8_t PolarRedu2[258] PROGMEM = {0,1,5,0,2,5,0,3,5,0,4,5,0,5,5,0,6,5,0,7,5,0,8,5,0,9,5,0,10,5,0,11,5,0,12,5,0,13,5,0,14,5,...};

Creo que algunas variables no se utilizan, si las localizas las puedes borrar.

Después en la parte del loop(), cada x milisegundos (o segundos) vas cambiando de imagen: que es hacer todo lo que está escrito desde la sentencia:

angulo = pgm_read_byte(PolarRedu + k);

pero cambiando las variables anteriores por la de la imagen que se esté mostrando. Para la imagen 2 sería:

angulo = pgm_read_byte(PolarRedu2 + k);

La parte del loop() se puede hacer de varias maneras, seguro que se te ocurre alguna. En cualquier caso yo creo que la semana que viene haré uno. Si lo hago, te cuelgo el código.

It looks like I have it working so far. Thanks for your help.

I am yet to spin it to see PoV but it's looking promising.

My LED strip only has 30 LEDs.

If I change the code CRGB leds[141];

to CRGB leds[30];

I don't get any illumination. Is there somewhere else I should change it?

Also, my hall sensor doesn't seem to be very reactive, the magnets need to be about 1/2" away before it triggers. The magnets are small but very powerful.

I didn't have a 10k resistor so I used a 7.5k I presume that would be fine too.

Thanks again.


Has anybody done a translation of the Arduino sketch to English?

I'm trying to get my head around what it's doing and would love to know the variable names in English.

Wait while more posts are being loaded