#define trigPin1 22 // Ultrasonic Sensor Trigger for Distance Measurement
#define echoPin1 23 // Ultrasonic Sensor Echo for Distance Measurement
#define trigPin2 24 // Ultrasonic Sensor Trigger for Seed Dispenser Level
#define echoPin2 25 // Ultrasonic Sensor Echo for Seed Dispenser Level
long duration1, duration2;
int distance1, distance2;
int seedLevel;
void setup() {
Serial.begin(9600); // Start serial communication at 9600 baud rate
pinMode(trigPin1, OUTPUT); // Set trigPin1 as an OUTPUT (Distance)
pinMode(echoPin1, INPUT); // Set echoPin1 as an INPUT (Distance)
pinMode(trigPin2, OUTPUT); // Set trigPin2 as an OUTPUT (Seed Level)
pinMode(echoPin2, INPUT); // Set echoPin2 as an INPUT (Seed Level)
}
void loop() {
// Measure Distance using the first ultrasonic sensor
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH); // Get duration of the echo pulse for distance
distance1 = duration1 * 0.034 / 2; // Convert time to distance (in cm)
// Measure Seed Dispenser Level using the second ultrasonic sensor
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration2 = pulseIn(echoPin2, HIGH); // Get duration of the echo pulse for seed dispenser level
distance2 = duration2 * 0.034 / 2; // Convert time to distance (in cm)
// Calculate seed dispenser level percentage
// Assuming the maximum distance is 400 cm
int maxDistance = 400;
int seedLevelDistance = maxDistance - distance2; // Calculate the level height based on distance
seedLevel = map(seedLevelDistance, 0, maxDistance, 0, 100); // Map to percentage (0 to 100%)
// Print distance and seed level to Serial Monitor
Serial.print("Distance: ");
Serial.print(distance1);
Serial.println(" cm");
// Print seed level as a percentage
Serial.print("Seed Level: ");
if (seedLevel <= 25) {
Serial.println("25% - Low");
} else if (seedLevel <= 50) {
Serial.println("50% - Medium");
} else if (seedLevel <= 75) {
Serial.println("75% - High");
} else {
Serial.println("100% - Full");
}
delay(1000); // Small delay for stability
}