Adruino Speed Tracker

Introduction: Adruino Speed Tracker

Here is a little project that is potentially applicable to any toy race track with a car that has a length greater than 4 cm +/- 0.50 cm. The purpose of the project is to track the speed of a toy car using IR sensors and receivers that are connected to a breadboard and Arduino board. Using IR sensors, a little bit of Arduino coding knowledge, an LCD display, and some lego pieces, you can successfully make an Arduino speed tracker.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Materials

- Arduino UNO & Genuino UNO x 1

- LCD 16x2 with I2C module x 1

- IR sensor (Receiver 3 leg) x 2

- IR LED x 2

- 5mm Green LED x 1

- Breadboard (Regular) x 1

- Male/Male Jumper Wires

- Arduino IDE to code

Step 2: Assembly

Start the project off by collecting all your materials. Here is a step by step demonstration to know specifically how to plug in all of the components. Step one, plugin both IR sensors at opposite ends of your breadboard and place the IR receivers parallel to the sensors. Then get your wires/cables and make connections to ground and VCC, and for the third leg on the IR sensors, attach a cable connecting IR sensor A to pin5 on the Arduino and connect IR sensor B to pin3.

Step 3: Add Green LED

Now, to signal the user that the tracker is ready to go, the green LED comes into action. You can place this wherever you want on the breadboard as long as it does not interfere with the other components. Simply put the negative leg of the LED to ground and the positive leg through a 2.7k ohm resistor to pin12 on the Arduino. (All pins are already stated in the code)

Step 4: Add LCD L2C Model

Finally, the last component to add to the circuit is the liquid crystal display to show what the speed of the car is and when each IR sensor picks up a signal. Because this LCD model has an l2C connected to it, wiring is incredibly easy with only 4 connections, two on the breadboard and two on the arduino. Connect the LCD's VCC pin to the breadboard's power line, and the ground pin to the ground line. Then make a connection between the LCD's SCL pin to the arduino's pin A5 and the SDA pin to pin A4.

Step 5: Final Circuit Result and Code

Now that you have made all of the wired connections, you can now upload the code to your arduino uno. If you don't already have the Arduino IDE, here is the link to download it: https://www.arduino.cc/en/main/software . Once you have it installed and configured, copy and paste the code to your program and upload it to the board.

Here is this code:

#include

#include

LiquidCrystal_I2C lcd(0x27,20,4);

const int ledPin = 12; byte irPinA = 5; byte irPinB = 3; byte irValA; byte irValB; float diff; float vel; unsigned long timeFirst; unsigned long timeScnd; float speedConst = 453.6;

byte customChar0[8] = { B01000, B01100, B01110, B01111, B01110, B01100, B01000, B00000 };

void configLCD(){ lcd.createChar(0, customChar0); lcd.setCursor(0,0); lcd.write(0); lcd.write(0); lcd.write(0); lcd.setCursor(3,0); lcd.print("SPEED TEST"); lcd.setCursor(13,0); lcd.write(0); lcd.write(0); lcd.write(0);

lcd.setCursor(0,1); lcd.print("Speed:");

}

void setup() { pinMode(irPinA, INPUT); pinMode(irPinB, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); lcd.init(); lcd.backlight(); configLCD(); digitalWrite(ledPin, HIGH);

} void(* resetFunc) (void) = 0;

void loop() { irValA = digitalRead(irPinA); if (irValA == LOW){ irValB = digitalRead(irPinB); timeFirst = millis(); lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(2,0); lcd.print("Start "); digitalWrite(ledPin, LOW); delay(3); if (irValB == LOW){ lcd.setCursor(0,0); lcd.print(" "); timeScnd = millis(); lcd.setCursor(2,0); lcd.print("Start->End "); diff = timeScnd - timeFirst; vel = speedConst / diff;

if(diff > 1000){

lcd.setCursor(2,0); lcd.print("Car Not Found"); delay(2000); resetFunc(); } lcd.setCursor(6, 1); lcd.print(vel); lcd.print("km/h"); delay(2000); lcd.clear(); configLCD(); digitalWrite(ledPin, HIGH); } } }

Step 6: End Result With Code

Be the First to Share

    Recommendations

    • Raspberry Pi Contest 2020

      Raspberry Pi Contest 2020
    • Wearables Contest

      Wearables Contest
    • Fix It Contest

      Fix It Contest

    Discussions

    0
    Penolopy Bulnick
    Penolopy Bulnick

    25 days ago

    This is neat! Nice job on your first Instructable :)