Devices & Components
Arduino Nano
Resistor 10k ohm
Through Hole Resistor, 30 ohm
Gikfun IR LED's
Hook Up Wire Kit, 22 AWG
5 mm LED: Green
Through Hole Resistor, 390 ohm
Hardware & Tools
Solder Wire, Lead Free
Soldering iron (generic)
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires
Project description
Code
IR_Finish_Line
arduino
1//By Mike Freda - March 2020 2//Diecast electronic finish line 3//First car to break IR beam is the lane winner 4//Uses Gikfun 5mm 940nm IR LED's emitters and receivers: EK8443 5 6int analogOutPin1 = A1; // finish line beam lane 1 7int analogOutPin2 = A2; // finish line beam lane 2 8 9const int ledPin1 = 11; //lane 1 winning LED 10const int ledPin2 = 12; //Lane 2 winning LED 11 12int sensorValueFinish1 = 0; 13int sensorValueFinish2 = 0; 14 15int sensorThresh = 500; //Sets the trigger sensing threshold of the IR receivers. ~1000 = high 16 17void setup() 18{ 19 Serial.begin(9600); 20 pinMode(ledPin1, OUTPUT); //lane 1 21 pinMode(ledPin2, OUTPUT); //lane 2 22 digitalWrite(ledPin1, HIGH); //Flashes Winner LED's 23 digitalWrite(ledPin2, HIGH); 24 delay(2000); 25 digitalWrite(ledPin1, LOW); 26 digitalWrite(ledPin2, LOW); 27} 28 29void loop() 30{ 31 //reads the analog in value: 32 sensorValueFinish1 = analogRead(analogOutPin1); 33 sensorValueFinish2 = analogRead(analogOutPin2); 34 35 // remove "//" from below for Debugging and checking actual sensor values. 36 // You may have to adjust sensorThresh value for better accuracy. 37 // The sensors should read around 900-1000 then go "low" (less than 400) when a car passes through the beam. 38 39 // Serial.print("Sensor Finish1 = " ); 40 //Serial.println(sensorValueFinish1); 41 //Serial.print("Sensor Finish2 = " ); 42 //Serial.println(sensorValueFinish2); 43 //delay(50); 44 45// wait/check for the finish sensors to be triggered 46 47 if(sensorValueFinish1 < sensorThresh && digitalRead(ledPin2) == LOW) //Lane 1 is winner 48 { 49 digitalWrite(ledPin1, HIGH); //turn on lane 1 winner LED 50 delay(5000); 51 digitalWrite(ledPin1, LOW); //turn off lane 1 winner LED 52 } 53 54 if(sensorValueFinish2<sensorThresh && digitalRead(ledPin1) == LOW) //Lane 2 is winner 55 { 56 digitalWrite(ledPin2, HIGH); //turn on lane 2 winner LED 57 delay(5000); 58 digitalWrite(ledPin2, LOW); //turn off lane 2 winner LED 59 } 60}
Downloadable files
Circuit Diagram
Circuit and Component Layout
Circuit Diagram
Circuit Diagram
Circuit and Component Layout
Circuit Diagram
Comments
Only logged in users can leave comments