Introduction: LED Cylon Scooter - 80s Larson Scanner
This project is a very 80s upgrade to a very 80s scooter-- I'm putting an LED strip in the grille of my boyfriend Smokey's Honda Elite to create a larson scanner animation effect while teaching him how to solder.
The circuit and code are remixed from Phil B's Larson Scanner Shades project.
Supplies
For this project I used a strip of WS2812b LED strip, also known as NeoPixels. I chose the densest variety to pack as many LEDs in as possible for a nice smooth animation effect.
- WS2812b LED strip: https://amzn.to/30ibJA5 or https://www.adafruit.com/product/1506
- Trinket microcontroller: https://amzn.to/2G7t6N1 or https://www.adafruit.com/product/1501
- Permatex silicone adhesive: https://amzn.to/36a87ns
To keep up with what I'm working on, follow me on YouTube, Instagram, Twitter, Pinterest, and subscribe to my newsletter. As an Amazon Associate I earn from qualifying purchases you make using my affiliate links.
Step 1: Attach Power and Ground Wires
The board is powered directly from the scooter's 12v power, so we attached wires to the power and ground pads on the back of the board.
Step 2: Attach LED Strip
Since the pixels can't handle 12v, they're being powered by the Trinket's voltage regulator, which isn't generally a good idea. But since there are so few LEDs lit up at once in this circuit, we can sneak in under the regulator's max current output.
Step 3: Arduino Code
I used Phil B.'s larson scanner code, modifying only the number of LEDs in the strip:
// Larson Scanner by Phil Burgess: // https://learn.adafruit.com/larson-scanner-shades?view=all #include <Adafruit_NeoPixel.h> #define N_LEDS 31 #define PIN 4 Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_GRBW + NEO_KHZ800); void setup() { strip.begin(); } int pos = 0, dir = 1; // Position, direction of "eye" void loop() { int j; // Draw 5 pixels centered on pos. setPixelColor() will clip any // pixels off the ends of the strip, we don't need to watch for that. strip.setPixelColor(pos - 2, 0x100000); // Dark red strip.setPixelColor(pos - 1, 0x800000); // Medium red strip.setPixelColor(pos , 0xFF3000); // Center pixel is brightest strip.setPixelColor(pos + 1, 0x800000); // Medium red strip.setPixelColor(pos + 2, 0x100000); // Dark red strip.show(); delay(30); // Rather than being sneaky and erasing just the tail pixel, // it's easier to erase it all and draw a new one next time. for(j=-2; j<= 2; j++) strip.setPixelColor(pos+j, 0); // Bounce off ends of strip pos += dir; if(pos < 0) { pos = 1; dir = -dir; } else if(pos >= strip.numPixels()) { pos = strip.numPixels() - 2; dir = -dir; } }
Attachments
Step 4: Glue It Up
I used Permatex silicone adhesive to fill in the open ends of the LED strip's silicone sheathing as well as to glue the LED strip to the inside of the grille. I used tape to hold the strip in place while the glue dried.
Step 5: Install and Enjoy!
Smokey installed the grille into his scooter and wired the trinket's power and ground wires to the bike's 12v power, with a switch under the seat.
I hope to see you build one of these for your own purposes. I'd love to see your versions posted in the "I Made It" section below.
If you like this project, you may be interested in some of my others:
- How to Install LEDs Under a Scooter (with Bluetooth)
- 3 Beginner Arduino Mistakes
- Throttle Cable Replacement on a 1975 Honda CB200T
- 13 Ideas for Diffusing LEDs
Thanks for following along! To keep up with what I'm working on, follow me on YouTube, Instagram, Twitter, Pinterest, and subscribe to my newsletter.