How to make an Arduino LED Scroll Bar

Today I want to make a LED Scroll Bar as the above picture showed. Ten LED strips can flash in different effects by using a control board. 

Required Components
LED strip, Arduino Nano, Dupont line and a control board.

control board with nano

So, how to make a LED Scroll Bar?
Step 1)
Cut the LED strip into 10 pieces and each piece has arbitrary number of LEDs.
Then, weld the traverse at an interface of the LED strip. Here I prefer to use Dupont line to connect.

Step 2) Design
Make a control board. Using the control board to control the flash pattern of LED strips. Aided by Arduino Nano and equipped with a keypad, we can make the LED strip flash in different patterns.

Step 2.1) Start with Designing Schematic

To design my circuit, I choose a free online EDA tool called EasyEDA which is a one stop design shop for your electronics projects, offers schematic capture, spice simulation, PCB design for free and also offers high quality but low price Customized PCB service. There are a large number of component libraries in its editor, so you can easily and quickly find your desired parts.
You can access the following schematic diagram through this link


Notes: The voltage of the LED strip is 12 V and Arduino Nano is 5V. Please remember to add a power regulator such as AMS1117-5.0.
Step 2.2) Create the PCB Layout.

You can see the PCB layout in the following diagram:

Step 2.3) Make a sample
After complete the design of PCB, you can click the icon of Fabrication output above. Then you will access the page PCB order to download Gerber files of your PCB or send them to any manufacturer, it’s also a lot easier (and cheaper) to order it directly in EasyEDA.

Step 2.4) Take delivery of the PCB and receive PCB

Step 2.5) Welding
It is very easy to make a control board. Just as the following picture described, as soon as the components are welded, it is completed.


Step 3) Connection
Connect the LED strip to the control board and at the same time please pay attention to the positive and negative of the terminals.
As the picture showed below.

Step 4) Download a program
Connect it to a 12 V power supply, download a program on the Arduino Nano and run it.
Press the button to switch flash mode.

Now I completed my project of scroll bar.
Making your own LED Scroll Bar creates a lot of fun, and the results can be very rewarding. Hopefully this article will help you make a LED Scroll Bar, You can also write a program to make the LED strip flash in the way you like.
download link : HERE
don't forget to watch the demo video :

Arduino control RGB LEDs

Arduino control RGB LEDs
Hardware needed :
Arduino compatible Board from ETT model ET-BASE-AVR-EASY328

RGB LEDs model SPNovaLED NMRTB-USD-AAB+ADE+Y2Z1-1 ( Dominant Semiconductors)

RGB LED spec :

Featuring a staggering brilliance and significant flux output, the SPNovaLED™ showcases the latest technological advent in this range. With its extremely high level of brightness and the ultra low high profile, which is only 1.5 mm are highly suitable for both conventional lighting and specialized application such as automotive signal lights, traffic lights, channel lights, tube lights and garden lights among others.

Features :
> Super high brightness LED surface.
> High flux output.
> 125° viewing angle.
> Compact package outline (LxWxH) of 6.0 x 6.0 x 1.5mm.
> Ultra low height profile - 1.5 mm.
> Designed for high current drive; typically 250 mA.
> Low junction-to-solder point thermal resistance; RTH js = 50 K/W.
> Qualified according to JEDEC moisture sensitivity Level 2.
> Compatible to IR reflow soldering.
> Environmental friendly; RoHS compliance.


> Signage: full colour display video notice board, signage, special effect lighting.
> Lighting: architecture lighting, general lighting, garden light, channel light.

Download RGB LEDs Datasheet

Arduino code :

 This example shows how to fade an LED using the analogWrite() function.
#define REDPIN 9             // LED connected to digital pin 9
#define GREENPIN 10    // LED connected to digital pin 10
#define BLUEPIN 11        // LED connected to digital pin 11
#define FADESPEED 5
void setup()  {
  pinMode(REDPIN, OUTPUT);
void loop()  {
   int r, g, b;
  for (r = 0; r < 120; r++) {     // fade from blue to violet
    analogWrite(REDPIN, r);
  for (b = 120; b > 0; b--) {      // fade from violet to red
    analogWrite(BLUEPIN, b);
  for (g = 0; g < 120; g++) {   // fade from red to yellow
    analogWrite(GREENPIN, g);
  for (r = 120; r > 0; r--) {        // fade from yellow to green
    analogWrite(REDPIN, r);
  for (b = 0; b < 120; b++) {    // fade from green to teal
    analogWrite(BLUEPIN, b);
  for (g = 120; g > 0; g--) {      // fade from teal to blue
    analogWrite(GREENPIN, g);


IOIO Board for Android Controling

IOIO Board for Android Controling
Microcontroller can control devices.Now Android phones can also control boards like IOIO Board.
The IOIO (yo-yo") is a board that is specially designed to work with your Android devices (OS versions 1.5 and later). The board provides robust connectivity to an Android device via USB connection and it is fully controllable through an Android application using a simple and intuitive Java API - no embedded programming will ever be needed!
So far, the devices proven to work with IOIO board are: G1, Nexus One, Nexus S, Motorola Droid X. If you get the IOIO working with your Android device, please let us know in the comments below which one do tou have, thanks!
The IOIO board contains a single MCU that acts as a USB host and interprets commands from an Android app. In addition, the IOIO can interact with peripheral devices in the same way as most MCUs does. Digital Input/Output, PWM, Analog Input, I2C, SPI, and UART control can all be used with the IOIO board. the Code that controls these interfaces is the same as an Android app code. In other words, you can combine the awesome computing power, Internet/Bluetooth connectivity, touch screen, and a variety of sensors from your Android device with the ability to easily add peripheral devices to interact with the outside world. Also, using the IOIO does not require any hardware or software modifications to your Android device.
If you are new to the IOIO or developing apps with Android, please use these resources that we did choose for you to help you to get started:
For firmware upgrades, you can download the IOIO Manager app . look the IOIO Manager wiki for more information.
Specification Summary
  • Microcontroller PIC24FJ128DA106-I/PT (with USB OTG , USB Host Support)
  • 48 total I/O pins - all of which can function as digital inputs and outputs.
  • Up to 16 analog inputs (10-bit).
  • Up to 9 PWM outputs.
  • Up to 4 UART channels.
  • Up to 3 SPI channels.
  • Up to 3 TWI (I²C-compatible) channels.
  • On-board switch-mode regulator providing up to 1.5A of 5V supply. Can charge the Android device as well as power a couple of small motors. (Power Supply via USB cable from PC or Device)
  • Bootloader on the board pulls firmware off phone, enabling OTA firmware upgrades and application-specific firmware.
  • Pulse-width measurement, capacitance sensing and more (will be pushed with first OTA firmware upgrade).
Update: The IOIO now has beta firmware available which supports Google's Open Accessory (ADK) protocol. The code base can be found here.



This is the beginners guide for the IOIO for Android board and is intended for users that have never written an Android app. The goal of this tutorial is to show how to write a simple app that communicates with the IOIO board.

IOIO Board for Android Controling

The programming language used to write an Android app is Java. If you are not familiar with Java, this tutorial will only go over writing a simple Java app using the IOIO library. This tutorial will not cover how to write Java code nor will it cover how to use the rich features within your Android device, like GPS, accelerometer, touch screen, etc. Once you get to the point where you want to use the vast array of features on your Android, we suggest first looking at the technical resource section on If you still can't find the examples you are looking for, simply browsing the web will result in a ton of information and examples that show you how to communicate with all of the great pieces of hardware within your Andriod device.
In general, the holy grail for developing Android apps is There, you will find most of the information on Android development. For documentation/downloads specific to the IOIO and for more advanced discussions about the IOIO, see these links:

Gathering Your Hardware

Here are the pieces of hardware you will need to complete this tutorial:
  • Android enabled device using OS 1.5 or greater.
  • IOIO for Android board
  • USB cable that is compatible with your Android device
  • 5-15V power supply with at least 1A of current. You will need to power the IOIO through the VIN and GND pins or there is an optional JST connector on the back of the board. It will need to be soldered into place and can be used with this adapter and wall wart power supply. More information at the end of the tutorial found here.

Installing the Development Environment

The Eclipse IDE (integrated development environment), the Android SDK (software development kit), and the JDK (Java development kit) are the primary pieces of software that you will need to install. The page has written thorough instructions on what exactly you will need to download. Please read the instructions carefully, they are found in the link below:
ATTENTION: You must use JDK v6 (not v5 or v7) for Android development.
If you have any problems, see the Troubleshooting section from
When you reach Step 4 in the Android SDK tutorial, you will at least need to install the SDK components relevant to the Android device you will be working with. For example, if you have an Android phone, goto Settings > About Phone and scroll down to Android Version. You must install the SDK platform corresponding to the Android version of your device.

One PIC Microcontroller Platform Development Board

 One PIC Microcontroller Platform Development Board

Develop firmware using Microchip's 8/16/32-bit PIC® Microcontrollers all on one board!
Each device comes preprogrammed with firmware to operate the LCD, LED and capacitive touch pads. In addition to three PIC® Microcontrollers, this board also has a dedicated Real-Time Calendar Clock circuit that is able to run from a single AAA Ultimate Lithium battery.


PIC Microcontrollers




Capacitive Touch Pads

Segmented LCD

Colored LEDs

Single Cell Battery Supply


Real-Time Calendar Clock

1 MCP79410-I/S

PICkit™ 3 Connector

PICtail™ Board Connector

System Requirements:

Software needed:

·        MPLABX  V1.00

·        .NET Framework v2.0 or later (required for 8bit IR Demo GUI)

·        MCP2200 & SimpleIO-M.dll (required for 8bit IR Demo GUI)

Drivers needed:

·        MCP2200  (Downloaded)

·        ZENA Wireless Adapter (Provided)

Compilers ( use latest available versions):

·        PIC16 HI-TECH: (developed with v9.83)

·        PIC24 C30: (developed with v3.31)

·        PIC32 C32: (developed with v2.01)


This demo board is populated with 8bit, 16bit, and 32bit PIC microcontrollers. Refer to the schematic of the board for more details.

8 bit MCU : PIC16LF1939

16 bit MCU: PIC24FJ256GA106

32 bit MCU: PIC32MX795F512L

OnePIC Demo Board

The demo code consists of:

1.     A “base” code which demonstrates the

a.      LCD

b.     LEDS

c.      mTouch

d.     Potentiometer

e.      Switch

2.     Three Wireless Demonstrations, one for each PIC

a.      8bit – Infrared

b.     16bit – RF4CE (Radio Frequency for Consumer Electronics)

c.      32bit – WiFi

The following document is intended as a walk-through guide to using the provided software.  Items will be presented in the order they might be presented during a demonstration of the OnePIC board.

Download Schematic

Arduino controls devices via Bluetooth over Android

Arduino controls devices via Bluetooth over Android

Hardware needed
  you will need for this project a Bluetooth Module and an Arduino Microcontroller Board with Relay Output Board

  •           Serial Port Bluetooth Module( TTL )
  •           Arduino Microcontroller Board (ET-BASEAVR EASY328 ) Arduino Compatible Board
  •           8 channel Output Relay Board
Wiring Diagram

Output 1 to Pin 4 ( Arduino Board )
Output 2 to Pin 5
Output 3 to Pin 6
Output 4 to Pin 7
Output 5 to Pin 8
Output 6 to Pin 9
Output 7 to Pin 10
Output 8 to Pin 11
Bluetooth Module Tx to  Pin 0
Bluetooth Module Rx to  Pin 1

Download Micro controller firmware

For Arduino 1.00+
For Arduino 1.00+ ( Active Low Relay Output )
Arduino Microcontroller Board Source code

#define LED_PIN1  4
#define LED_PIN2  5
#define LED_PIN3  6
#define LED_PIN4  7

#define LED_PIN5  8
#define LED_PIN6  9
#define LED_PIN7  10
#define LED_PIN8  11

int firstSensor = 0;         // first analog sensor
int secondSensor = 0;    // second analog sensor
int thirdSensor = 0;        // digital sensor
int inByte = 0;               // incoming serial byte
boolean status_unlock;
boolean status_bluetooth;

long interval = 1000;           // interval at which to blink (milliseconds)
long previousMillis = 0;        // will store last time LED was update
int minite,sec;

void setup()
  // start serial port at 9600 bps:
  //pinMode(2, INPUT);   // digital sensor is on digital pin 2
  //establishContact();    // send a byte to establish contact until receiver responds
  pinMode(LED_PIN1, OUTPUT);
  pinMode(LED_PIN2, OUTPUT);
  pinMode(LED_PIN3, OUTPUT);
  pinMode(LED_PIN4, OUTPUT);

  pinMode(LED_PIN5, OUTPUT);
  pinMode(LED_PIN6, OUTPUT);
  pinMode(LED_PIN7, OUTPUT);
  pinMode(LED_PIN8, OUTPUT);
  digitalWrite(LED_PIN1, LOW);  // switch off LED
  digitalWrite(LED_PIN2, LOW);  // switch off LED
  digitalWrite(LED_PIN3, LOW);  // switch off LED
  digitalWrite(LED_PIN4, LOW);  // switch off LED
  digitalWrite(LED_PIN5, LOW);  // switch off LED
  digitalWrite(LED_PIN6, LOW);  // switch off LED
  digitalWrite(LED_PIN7, LOW);  // switch off LED
  digitalWrite(LED_PIN8, LOW);  // switch off LED
  status_bluetooth = true;
  status_unlock = false;
  sec = 0;

void loop()
  if (Serial.available() > 0) {  
    inByte =;                      // get incoming byte: 

    if(inByte == 'A'){   
      digitalWrite(LED_PIN1, HIGH);        // switch on LED
      Serial.print('A', BYTE);                    // send a char
      digitalWrite(LED_PIN1, LOW);        // switch off LED
      status_unlock = false;
      inByte = 0;    
    if(inByte == 'a'){   
      digitalWrite(LED_PIN2, HIGH);        // switch on LED
      Serial.print('a', BYTE);                    // send a char
      digitalWrite(LED_PIN2, LOW);        // switch off LED
      status_unlock = true;
      sec = 0;
      inByte = 0;    
    if(inByte == 'B'){   
      digitalWrite(LED_PIN3, HIGH);        // switch on LED
      Serial.print('B', BYTE);                    // send a char
      inByte = 0;    
    if(inByte == 'b'){   
      digitalWrite(LED_PIN3, LOW);        // switch off LED
      Serial.print('b', BYTE);                   // send a char
      inByte = 0;    
    if(inByte == 'C'){   
      digitalWrite(LED_PIN4, HIGH);        // switch on LED
      Serial.print('C', BYTE);                    // send a char
      inByte = 0;    
    if(inByte == 'c'){   
      digitalWrite(LED_PIN4, LOW);        // switch off LED
      Serial.print('c', BYTE);                    // send a char
      inByte = 0;    
    if(inByte == 'D'){   
      digitalWrite(LED_PIN5, HIGH);        // switch on LED
      Serial.print('D', BYTE);                    // send a char
      inByte = 0;    
    if(inByte == 'd'){   
      digitalWrite(LED_PIN5, LOW);        // switch off LED
      Serial.print('d', BYTE);                   // send a char
      inByte = 0;    
    if(inByte == 'E'){   
      digitalWrite(LED_PIN6, HIGH);        // switch on LED
      Serial.print('E', BYTE);                    // send a char
      inByte = 0;    
    if(inByte == 'e'){   
      digitalWrite(LED_PIN6, LOW);        // switch off LED
      Serial.print('e', BYTE);                   // send a char
      inByte = 0;    
    if(inByte == 'F'){   
      digitalWrite(LED_PIN7, HIGH);        // switch on LED
      Serial.print('F', BYTE);                    // send a char
      inByte = 0;    
    if(inByte == 'f'){   
      digitalWrite(LED_PIN7, LOW);        // switch off LED
      Serial.print('f', BYTE);                    // send a char
      inByte = 0;    
    if(inByte == 'G'){   
      digitalWrite(LED_PIN8, HIGH);        // switch on LED
      Serial.print('G', BYTE);                    // send a char
      inByte = 0;    
    if(inByte == 'g'){   
      digitalWrite(LED_PIN8, LOW);        // switch off LED
      Serial.print('g', BYTE);                   // send a char
      inByte = 0;    
    if(inByte == 'S'){   
      Serial.print('S', BYTE);                  // send a char
      status_bluetooth = true;
      sec = 0;
  } // if(Serial
  unsigned long currentMillis = millis();
              if(currentMillis - previousMillis > interval) {           
                previousMillis = currentMillis;         // save the last time you blinked the LED
                  if(sec== 11){
                      digitalWrite(LED_PIN1, HIGH);        // switch on LED
                      digitalWrite(LED_PIN1, LOW);        // switch off LED
                      status_unlock = false;                 
                      sec = 0;
                else sec = 0;               
} //Loop

void establishContact() {
  while (Serial.available() <= 0) {
    Serial.print('.', BYTE);                   // send a capital A

Android Bluetooth Control Device

Android Bluetooth Control Device
Android Bluetooth Control Device Application allows you to control various electrical devices up to 8 devices and independently. Use your Android phone's Bluetooth to  remote control your devices with Bluetooth Receiver hardware Device.

The program features.
- you can control up to  8 devices.
- Can set Timer to switch ON / OFF the device and show the time.(the timer can be set to 1 minute, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours).
- Can be used with Receiving device.
Designed for the Android version 4 and a screen resolution of 480 x 800 (WVGA).
Freeware with AD (free software)

A test transmission via Bluetooth.
Device1 ON sent “A” , Device1 OFF sent “a”
Device2 ON sent “B” , Device2 OFF sent “b”
Device3 ON sent “C” , Device3 OFF sent “c”
Device4 ON sent “D” , Device4 OFF sent “d”
Device5 ON sent “E” , Device5 OFF sent “e”
Device6 ON sent “F” , Device6 OFF sent “f”
Device7 ON sent “G” , Device7 OFF sent “g”
Device8 ON sent “H” , Device8 OFF sent “h” 
bluetooth  receiver
arduino microcontroller
arduino android