Editor Version ×
recommended

Pro Edition

free

Brand new interactions and interfaces

Smooth support for design sizes of over 3W

devices or 10W pads

More rigorous design constraints, more

standardized processes

For enterprises, more professional users

Std Edition

Easy to use and quick to get started

The process supports design scales of 300

devices or 1000 pads

Supports simple circuit simulation

For students, teachers, creators

Ongoing

STD LED DIRECTION INDICATOR

LED DIRECTION INDICATOR

Project tags

License

Public Domain

License: Public Domain

Mode:

Mode

Editors' pick

Editors' pick

  • 592
  • 0
  • 0
Update time: 2021-12-24 22:24:44
Creation time: 2021-07-03 20:41:46
Description

Description

Led Direction Indicator for electric scooter

 

PRESENTATION

 

I'm Tommaso, I'm 15 years old and i'm from Italy. I attend the second year of high school I.T.I. OMAR in Novara (Piedmont)

 

 

THE IDEA

 

The idea of my project: "Led Direction Indicator for electric scooter" was born because using the scooter I realized that it was necessary to signal the turn left or right. However, I found that it was very difficult to signal the turn with the arm due to the small handlebar on the scooter which made riding unstable. So I thought of a way to signal the turning point and I had the idea to build the direction arrows. At first I was undecided where to place them. My ideas were to place them on the helmet, or make a jacket and finally I decided to mount behind the rear wheel fender, where there were already two holes to screw this little piece of plastic.

 

 

DESIGN AND USE OF COMPONENTS

 

In my project I used an Arduino Pro Mini 5V 16MHz. I chose this type of Arduino because it is very small, perfect for this project. I also decided to use an already assembled Arduino board for easier component availability.

For the representation of the two arrows I used 28 LEDs, the first prototype

is composed of 5mm 3v LEDs, each connected to a digital pin of the Arduino, with the exception of the 14 LEDs that make up the arrow heads. They are all connected in parallel with each other to the respective pin 2 and pin 13 of the Arduino. Instead the new prototype built on PCB also uses 28 LEDs, but they are orange and SMD, the model is 3528. I also inserted a Buzzer inside the circuit on pin A1 to understand when the arrow is on.

 

POWER

In the first prototype I used an external circuit to charge the battery, the TP4056 with micro-usb connector without protection circuit. Instead in the new pcb I decided to insert a TP4056 charger with Usb-C and also with the protection circuit.

I power the circuit with a 500mAh 3.7V Li-Po battery.

 

 

DIAGRAM DESIGN

 

For the drawing of the scheme I used easyeda.com. First I inserted the Arduino Pro Mini, then 28 orange 3528 LEDs. I connected the common ground of the LEDs with the ground of the Arduino. Then I connected the positive pin of each LED to each digital pin of the Arduino, with the exception of 2 pairs of 7 LEDs, connected in parallel to the first and last digital pin, used for the tip of the arrow. Then I inserted an 82db analog buzzer, connecting it to the Arduino's A1 analog pin. Between pin A0 and ground I connected a 2k resistor to read data 0 on the analog port. Finally I put a switch to turn the circuit on and off by interrupting the Vcc incoming from the charging circuit.

 

 

 

I used two tactile buttons to light up the arrows. I connected pin 2 of the first button with pin 2 of the second button, and these are connected to Arduino pin A0. Then I connected pin 4 of the first with pin 4 of the second through a 2k resistor. Finally I connected the first resistor in series with the second, then connecting it to ground. In this way on the analog pin we will have two different values that we will use to activate the right and left arrows.

 

 

To power the circuit I used a 500mAh Li-Po battery. To recharge the battery, I inserted the TP4056 charging circuit on the pcb. I also plugged in a USB-C connector for charging.

 

 

PCB DESIGN

 

For the arrangement of the components on the PCB I used easyeda.com

In the first prototype I used 5mm LEDs inserted on a 3d printed mask, instead in the new circuit I decided to solder smd LEDs directly on the pcb, giving the circuit the shape of two opposite arrows.

On the TOP side of the PCB I only inserted the smd leds. while on the BOTTOM side of the pcb I have inserted all the components necessary for the functioning of the circuit.

 

SKETCH

 

For writing the Sketch I used the Arduino IDE programming software, with C ++ programming language.

int DXState = LOW; //Stores the status of the LED (on or off)
int SXState = LOW; //Stores the status of the LED (on or off)?
bool flag; // Memorize button press and refractory fine changes to next loop turn (avoid multiple readings)
int buzzer = A1; 

void setup() {
 
  pinMode(13, OUTPUT);                        // pin declaration
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(buzzer, OUTPUT); 
  flag=true;                                // set Flag as true                                        
}

void loop() {

if ((DXState=LOW)&&(SXState=LOW)){                            //If all state = low light on the 
analogWrite(7, 50);
 } 
 
  int v = analogRead(A0);                                     // read the value from analog pin A0 (values depend on the resistors connected to the switches)
  if ( (v>=620 && v<=720 && (flag == true)) ) {               // if v value is included from 620 to 720, recognizes right button press
    DXState = !DXState;                                       // Reverses the state (from ON to OFF, or from OFF to ON)
    SXState=LOW;                                              // Switch-off left arrow
    flag=false;                                               // flag=false to avoid multiple activation (change of state) when switch is pressed for a long time
  } else if ( (v>=450 && v<=550 &&(flag == true)) ) {         // if v value included from 450 to 550, recognizes left button press
     SXState = !SXState;                                      // Reverses the state (from ON to OFF, or from OFF to ON)
     DXState=LOW;                                             // Switch-off rigth arrow
     flag=false;                                              // flag=false to avoid multiple activation
  }else if ( (v>=0 && v<=10 &&(flag == false)) ) {            // If no switch is pressed 
     flag=true;                                               // it returns the flag = true otherwise if you press at length it still performs the inversion SXState =! SXState or DXState =! DXState
  } 
 delay(20); // time to set the variable

if (DXState == HIGH) {                                        // IF DXstate=true play the right arrow animation
        for(int x = 12; x >= 2; x--)  {                       // start animation
          digitalWrite(x, HIGH);
           int v = analogRead(A0);                            // during the animation read analog switch to control if a switch is pressed
        
        if ( (v>=620 && v<=720 && (flag == true)) ) {        // if v value included from 450 to 550, recognizes right button press
          flag = false;       // prevent it from repeating
          DXState = !DXState; // Reverses the state (ON to OFF, OFF to ON)
          SXState=LOW;        // TURN OFF LEFT
      } else if ( (v>=450 && v<=550 && (flag= true)) ) { // ("LEFT");  if i press left arrow
         flag = false;      // prevent it from repeating 
          DXState = LOW;
          SXState=HIGH; 
        } 
          delay(30);                                          //pause
        }
          for(int x = 13; x >= 2; x--)   {                    //IF SXstate=true play the Left arrow animation
          digitalWrite(x, LOW);
          int v = analogRead(A0);
          
          if ( (v>=620 && v<=720 && (flag == true)) ) {
                flag = false;       // prevent it from repeating  
                DXState = !DXState; // Reverses the state (ON to OFF, OFF to ON)
                SXState=LOW;
         } else if ( (v>=450 && v<=550 && (flag=true)) ) {  // ("LEFT");  if i press left arrow
                DXState = LOW;
                SXState=HIGH; 
                flag = false;        // prevent it from repeating  
         } 
          delay(30);   
} 
          tone(buzzer, 800);                                // buzzer sound
          delay(200);  
          noTone(buzzer);   
          delay(100);     
}
if (SXState == HIGH) {                                    //IF SXstate=true play the Left arrow animation
            for(int x = 3; x <= 13; x++)  {
            digitalWrite(x, HIGH);
             int v = analogRead(A0);
             
              if ( (v>=450 && v<=550 && (flag == true)) ) {  
                flag = false;       // prevent it from repeating  
                SXState = !SXState; // Reverses the state (ON to OFF, OFF to ON)
                DXState=LOW;  
            } else if ( (v>=620 && v<=720 && (flag=true)) ) {
                flag = false;       // prevent it from repeating i 
                DXState = HIGH;
                SXState=LOW;  
  } 
            delay(30);
            }
             for(int x = 3; x <= 13; x++)    {
             digitalWrite(x, LOW);
             int v = analogRead(A0);
             if ( (v>=450 && v<=550 && (flag=true)) ) {
               flag = false;       // prevent it from repeating              
               SXState = !SXState; // Reverses the state (ON to OFF, OFF to ON)
               DXState=LOW;
           } else if ( (v>=620 && v<=720 && (flag=true)) ) {
               flag = false;       // prevent it from repeating  
               SXState=LOW;
               DXState=HIGH; 
  } 
            delay(30);  
}       
          tone(buzzer, 1000);               // buzzer sound
          delay(100);  
          noTone(buzzer);   
          delay(50); 
          tone(buzzer, 500);  
          delay(100); 
          noTone(buzzer);   
          delay(25);

}
}

 

 

3D DESIGN

 

For the box that contains the circuit I used the 3D design program "Fusion 360"

In the first prototype I created a rear box that screws onto the fender of the scooter. Inside the box is contained the Arduino Pro Mini, the buzzer, the battery with the charging circuit. In the front part I created a mask with 28 5mm holes to insert the red LEDs. They are connected with cables to the respective pins of the arduino board.

 

This is the support to fix the box to the scooter.

 

For the 3d design of the control panel for the lights, I removed the protection on the scooter and I redesigned it by inserting two buttons with the resistors.

 

COST

 

For the realization of this project I spent:

€ 1 for the 28 leds

€ 2.50 for the Arduino Pro Mini 5v 16Mhz

€ 0.50 for the TP4056 charging circuit

€ 2 for the 3.7v 500mAh battery

€ 1 for buttons / switches and resistors and buzzers

€ 4 for the 3D PETG filament

€ 0.10 for screws and bolts

 

For a total of about: 11 €

 

VIDEO

https://www.youtube.com/watch?v=MPXRPApt324

 

 

CONCLUSIONS

 

In conclusion, I am very satisfied with the final result of my directional arrows for electric scooter (also for bicycle). On the internet I could not find any products to put on my scooter, so I decided to create them as I preferred. I hope you also appreciate my idea and in the cable you would like to replicate it, do not hesitate to contact me.

 

Design Drawing

Design Drawing

schematic diagram
1 /
PCB
1 /
The preview image was not generated, please save it again in the editor.
ID Name Designator Footprint Quantity
1 GMD12075YB-3V2700 BUZZER2 BUZ-TH_BD12.0-P7.60-D0.6-FD 1
2 10uF C1 0603 1
3 100nF C2,C3 0603 2
4 3528 Red LED LED1,LED1_1,LED1_2,LED1_3,LED1_4,LED1_5,LED1_6,LED1_7,LED2,LED3,LED4,LED5,LED6,LED8,LED9,LED10,LED11,LED12,LED13,LED14,LED14_1,LED14_2,LED14_3,LED14_4,LED14_5,LED14_6,LED14_7 LED-SMD_L3.2-W2.8-RD_TJ-S3528UG6W9TLC9Y-A5 27
5 RED LED23 LED-0603 1
6 GREEN LED28 LED-0603 1
7 FS8205 Q1 SOT-23-6 1
8 2K R2,R1,R9,R10 AXIAL10 4
9 1.2KΩ R4 0603 1
10 1K R5,R6,R7 0603 3
11 100Ω R8 0603 1
12 BTSA-N-S-2 SW2 SW-SMD_BTSA-X-S-2 1
13 Arduino Mini Pro copy U1 ARDUINO_MINI_PRO1 1
14 2X SMD PADS U2,U3 2X SMD PADS 2
15 2 pin U5 2 PIN 1
16 DW01A U7 SOT-23-6L 1
17 TP4056 U8 SOP-8_EP_150MIL 1
18 USBC USB1 USBC_C165948 1
19 button6*6*8.5 KEY5,KEY6 KEY-TH_4P-L6.0-W6.0-P4.50 2
20 Arduino Mini Pro U1 ARDUINO_MINI_PRO1 1

Unfold

Project Attachments

Project Attachments

Empty
Project Members

Project Members

Target complaint
Related Projects
Change a batch
Loading...

Comment

Add to album ×

Loading...

reminder ×

Do you need to add this project to the album?

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn