// --- Bio-Avatar: Automation & Homeostasis ---
// Project: Mission to Mars - Technology Class
const int trigPin = 5; // Pin for Trigger
const int echoPin = 18; // Pin for Echo
const int ledPin = 2; // Built-in LED for status
void setup() {
Serial.begin(115200); // Communication at 115200 baud
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.println("--- System Online: Awaiting Data ---");
}
void loop() {
// 1. Generate the ultrasonic pulse
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 2. Capture the Raw Data (Time in microseconds)
long rawData = pulseIn(echoPin, HIGH);
// 3. THE CALIBRATION LINE (The Magic Formula)
// This translates the "Raw Data" into "Real Distance"
float distanceCM = 0.0172 * rawData;
// 4. Automation Logic (Homeostasis)
Serial.print("Distance: ");
Serial.print(distanceCM);
Serial.println(" cm");
// Efficiency Rule: Save energy if no obstacle is close
if (distanceCM < 20) {
digitalWrite(ledPin, HIGH); // Alert active
Serial.println("STATUS: Object nearby - System Alert!");
} else {
digitalWrite(ledPin, LOW); // Power Saving Mode
Serial.println("STATUS: Safe - Conserving Resources.");
}
delay(500); // 0.5 second interval for continuous monitoring
}