Als we de snelheid van een voorwerp meten met twee sensoren dan meten we de tijd die verloopt tussen de onderbreking van de lichtstraal van sensor 1 en sensor 2.
Als het voorwerp voor fototransistor 1 komt start de de tijd en als het voorwerp voor fototransistor 2 komt stopt de tijd en wordt hij op de seriële monitor weergegeven.
Als lichtbron gebruiken we twee kleine lasers en als lichtsensor gebruiken we de 3DU5C fototransistoren. Een fototransistor laat stroom door afhankelijk van de hoeveelheid licht die erop valt.
Dit is een onderdeel van de opdracht 'De battle van de vallende voorwerpen' : https://sites.google.com/view/hwcteni/derde-jaar/de-battle-van-de-vallende-voorwerpen
Hiernaast een schematische tekening van de testopstelling. Als de lichtstraal bij fototransistor 1 wordt onderbroken start de tijd, als de lichtstraal bij fototransistor 2 wordt onderbroken stopt de tijd.
Als lichtbron gebruiken we een kleine 5 mW laser die we rechtstreeks op de 5v en de gnd van de Arduino aansluiten.
Als lichtsensor gebruiken we een fototransistor. Dit is een transistor die stroom geleid afhankelijk van de hoeveelheid licht die erop valt. We gebruiken hier de 3DU5C, maar anderen zullen ook wel werken.
De kant met het uitstekende metalen lipje is de emitter die wordt verbonden met gnd (via een 10kohm weerstand). De andere kant is de collector en die wordt verbonden met arduino 5v.
Hieronder het aansluitschema en helemaal beneden het programma.
De emitters van de fototransistoren (de kant met het metalen lipje en het iets langere pootje) gaan via een 10Kohm weerstand naar gnd. De collectoren komen op Arduino 5v. De lasers zijn rechtstreeks verbonden met Arduino 5v en gnd. De draden naar de fototransistoren en de lasers moeten natuurlijk wel verlengd worden.
// Snelheidmeting_2_sensoren
// Basic programma om de tijd te meten die een voorwerp nodig heeft om de afstand tussen twee fototransistoren te overbruggen.
// De emitters van de transistoren zijn verbonden met arduino pinnen (8 en 9) en via 10 Kohm weerstanden met gnd.
// De collectoren van de transistoren zijn verbonden met 5v.
// De lasers zijn rechstreeks verbonden met 5v en gnd.
// De tijd wordt op de seriele monitor weergegeven in microseconden (1000 microsec. = 1 milliseconde).
// Voor het berekenen van de snelheid: v=s/t. s is de afstand tussen de sensoren, t is de tijd gegeven in microseconden.
int sensorPin1 = 8; // fototransistor 1 op pin 8
int sensorPin2 = 9; // fototransistor 2 op pin 9
int ledPin = 13; // Led op pin 13 (onboard led)
long startTijd;
long tijd; // tijd die het voorwerp tussen de twee sensoren is.
void setup() {
Serial.begin(9600);
pinMode(sensorPin1, INPUT);
pinMode(sensorPin2, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
if (digitalRead(sensorPin1) < 1) { // Lees de sensorPin. SensorPin is 0 als er iets voor is.
startTijd = micros();
while (digitalRead(sensorPin2) > 0) { // Zolang sensor 2 hoog is 'loopt' de tijd.
tijd = micros() - startTijd;
digitalWrite(ledPin, HIGH); // voorwerp was langs sensor 1 en nog niet langs sensor 2 (controle led).
}
Serial.println(tijd); // Schrijf de tijd op de seriele monitor (nadat sensor 2 laag (0) geworden is).
digitalWrite(ledPin, LOW);
}
}