2015年11月9日 星期一

Arduino 9:超聲波測距離

超聲波感測器 HCSR04



  1. const byte trigPin = 10;  // 超音波模組的觸發腳
  2. const int  echoPin = 9;    // 超音波模組的接收腳
  3. unsigned long d;          // 儲存高脈衝的持續時間

  4. unsigned long ping() {
  5.   digitalWrite(trigPin, HIGH);   // 觸發腳設定成高電位
  6.   delayMicroseconds(5);             // 持續 5 微秒
  7.   digitalWrite(trigPin, LOW);    // 觸發腳設定成低電位
  8.  
  9.   return pulseIn(echoPin, HIGH); // 傳回高脈衝的持續時間
  10. }

  11. void setup() {
  12.   pinMode(trigPin, OUTPUT);  // 觸發腳設定成「輸出」
  13.   pinMode(echoPin, INPUT);   // 接收腳設定成「輸入」
  14.    Serial.begin(9600);                // 初始化序列埠
  15. }

  16. void loop(){
  17.   d = ping() / 58;       // 把高脈衝時間值換算成公分單位
  18.   Serial.print(d);       // 顯示距離
  19.   Serial.print("cm");
  20.   Serial.println();
  21.   delay(1000);          // 等待一秒鐘(每隔一秒測量一次)
  22. }


顯示在LCD上



  1. //-------------------------   LCD 
  2. //Library version:1.1
  3.  #include <Wire.h>
  4.  #include <LiquidCrystal_I2C.h>
  5.  #if defined(ARDUINO) && ARDUINO >= 100
  6.  #define printByte(args)  write(args);
  7.  #else
  8.  #define printByte(args)  print(args,BYTE);
  9.  #endif
  10.  LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line
  11. //-------------------------

  12. //+ + + + + + + + + + +   超音波模組
  13.  const byte trigPin = 13;  // 超音波模組的觸發腳
  14.  const int echoPin = 12;    // 超音波模組的接收腳
  15.  unsigned long d;          // 儲存高脈衝的持續時間

  16.   unsigned long ping() {
  17.    digitalWrite(trigPin, HIGH);   // 觸發腳設定成高電位
  18.    delayMicroseconds(5);          // 持續 5 微秒
  19.    digitalWrite(trigPin, LOW);    // 觸發腳設定成低電位
  20.  
  21.    return pulseIn(echoPin, HIGH); // 傳回高脈衝的持續時間
  22.  }
  23. //+ + + + + + + + + + +  

  24. void setup() {
  25.     //-------------------------   LCD  
  26.      lcd.init();                      // initialize the lcd 
  27.      lcd.backlight();

  28.      lcd.setCursor(0, 0);
  29.      lcd.print   ("Distance= ");
  30.     //-------------------------   LCD  
  31.     
  32.     //+ + + + + + + + + + +   超音波模組
  33.     pinMode(trigPin, OUTPUT);  // 觸發腳設定成「輸出」
  34.     pinMode(echoPin, INPUT);   // 接收腳設定成「輸入」
  35.           //Serial.begin(9600);        // 初始化序列埠
  36.     //+ + + + + + + + + + +
  37. }


  38. void loop(){
  39.     //+ + + + + + + + + + +   超音波模組
  40.      d = ping() / 58;       // 把高脈衝時間值換算成公分單位
  41.           //Serial.print(d);       // 顯示距離
  42.           //Serial.print("cm");
  43.           //Serial.println();
  44.     //-------------------------   LCD
  45.      lcd.setCursor(9, 1);
  46.      lcd.print((unsigned long)  d  );
  47.       //  lcd.setCursor(14, 1);
  48.      lcd.print   ("cm");
  49.     //-------------------------   LCD
  50.   delay(1000);          // 等待一秒鐘(每隔一秒測量一次)
  51. }



1 則留言:

  1. Casino Slot Machines - Play for Free or for Real Money
    How can I 바카라 자판기 사이트 play 다파벳 a casino slot machine for 예스 벳 real 바카라 필승법 money? Here's how. How To Choose a Casino Slot 바카라 사이트 Machine. · Step 1. Go to the slot's official site and download the

    回覆刪除