The Sonorbeam

by thomas mordang in Circuits > Arduino

75 Views, 1 Favorites, 0 Comments

The Sonorbeam

Afbeelding (22).jpg

Vandecasteele gebruikt clarks om hun hout te vervoeren. Jammer genoeg gebeurt het dat de lading te hoog staat en tegen een ligger botst bij het betreden van een in- of uitgang. Om dit te vermijden laten wij de clark stoppen bij bepaalde voorwaarden zodat de bestuurder zijn lading kan verlagen. De eerste voorwaarde is wanneer de clark in een gevarenzone rijdt. Deze zone is bepaald door een zwarte lijn. Door middel van een infraroodsensor zal de arduino weten wanneer hij in de zone zit. Alleen in de zone zal er een ultrasone sensor werken die zich op het dak van de clark bevindt. Die zal dan de afstand meten tussen de clark en de lading. Als de lading te hoog is, dan zal de sensor dat detecteren en zal de clark stoppen. De bestuurder moet de lading dan verlagen.

Supplies

wij maken gebruik van arduino. Er is een ultrasone en infrarode sensor nodig met de nodige draden. Een auto/clark is van toepassing. Je kan gebruik maken van knex om die te bouwen. Om de code van de arduino te maken heb je een computer nodig. wij gebruiken een lampje om aan te tonen wanneer er detectie is.

Bouw Van De Clark

Afbeelding (19).jpg

De eerste stap is het bouwen van een clark om de arduino erop te plakken. De clark mag je zelf ontwerpen en kiezen hoe het eruit ziet.

Bouwen Maquette

Afbeelding (21).jpg

maak een maquette om het eindproduct te testen.

Arduino

Afbeelding (20).jpg

Maak eerst de codes voor de sensoren apart en wanneer beide klaar zijn probeer ze dan samen te steken. wij hebben de volledige code gemaakt.

zie code:

const int irSensorPin = 2; // Pin for the IR reflective sensor

const int trigPin = 12;  // Trig-pin for the ultrasonic sensor

const int echoPin = 8;   // Echo-pin for the ultrasonic sensor

const int ledPin = 13;   // Pin for LED

long duration;

int distance;

void setup() {

 Serial.begin(9600);

 pinMode(irSensorPin, INPUT);

 pinMode(trigPin, OUTPUT);

 pinMode(echoPin, INPUT);

 pinMode(ledPin, OUTPUT);

}

void loop() {

 int irSensorValue = digitalRead(irSensorPin);

 if (irSensorValue == LOW) {

  Serial.println("No Black detected!");

  digitalWrite(ledPin, LOW); // Turn off the LED if no black is detected

 } else {

  Serial.println("Black detected!");

  // Trigger the ultrasonic sensor to measure distance

  digitalWrite(trigPin, LOW);

  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);

  // Measure the duration of the echo pulse

  duration = pulseIn(echoPin, HIGH);

  // Convert the duration to distance in centimeters

  distance = duration * 0.034 / 2;

  // Print the distance

  Serial.print("Distance: ");

  Serial.print(distance);

  Serial.println(" cm");

  // Control LED based on distance

  if (distance < 10) {

   digitalWrite(ledPin, HIGH); // Turn on the LED if distance is less than 10 cm

  } else {

   digitalWrite(ledPin, LOW); // Turn off the LED if distance is greater than or equal to 10 cm

  }

 }

 delay(500);

}