Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //超音波酒精噴灑器
- //Ultra sonic sensor上的腳位定義
- #define trigPin 2
- #define echoPin 3
- //LED及WaterPump腳位定義
- #define led 9
- #define pump 8
- //感測距離(單位:inches)
- int range = 5;
- void setup() {
- Serial.begin(9600);
- pinMode(trigPin, OUTPUT);
- pinMode(echoPin, INPUT);
- pinMode(led, OUTPUT);
- pinMode(pump, OUTPUT);
- digitalWrite(led, HIGH);
- digitalWrite(pump, LOW);
- }
- void loop()
- {
- long duration, inches, cm;
- //觸發時機,當High持續2微秒
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(5);
- digitalWrite(trigPin, LOW);
- duration = pulseIn(echoPin, HIGH);
- //微秒轉吋,吋再轉公分
- inches = microsecondsToInches(duration);
- cm = microsecondsToCentimeters(duration);
- if(inches < 5) {
- digitalWrite(led, LOW);
- digitalWrite(pump, HIGH);
- delay(100);
- }
- else {
- digitalWrite(led, HIGH);
- digitalWrite(pump, LOW);
- delay(100);
- }
- delay(200);
- }
- long microsecondsToInches(long microseconds)
- {
- return microseconds / 74 / 2;
- }
- long microsecondsToCentimeters(long microseconds)
- {
- // 聲速為340m/s or 29cm/ms
- // 得出的距離要/2,因為所得之距離為來回的總和。
- return microseconds / 29 / 2;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement