#define TRIG_PIN PA10
#define ECHO_PIN PA9
#define LED_PIN PA5
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
Serial.println("Ultrasonic Distance Measurement Start!");
}
void loop() {
long duration;
float distance;
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance < 10) {
digitalWrite(LED_PIN, HIGH);
Serial.println("LED ON: Distance < 10 cm");
} else {
digitalWrite(LED_PIN, LOW);
if (distance < 50) {
analogWrite(LED_PIN, 26); // 10% Duty
Serial.println("PWM ~10%");
} else if (distance < 150) {
analogWrite(LED_PIN, 102); // 40% Duty
Serial.println("PWM ~40%");
} else if (distance < 300) {
analogWrite(LED_PIN, 153); // 60% Duty
Serial.println("PWM ~60%");
} else {
analogWrite(LED_PIN, 0);
Serial.println("PWM OFF");
}
}
Serial.println("-----------------------------");
delay(10000); // 10 วินาที
}