新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機+超聲波實時測距

        單片機+超聲波實時測距

        作者: 時間:2016-11-30 來源:網絡 收藏
        本文講的是通過超聲波測試距離,并把所測到的數據實時顯示在LCD1602上的,當所測到的距離小于10CM時,LED燈將會點亮,這個程序的應用性比較強,可用于測距,測速,清洗,焊接,碎石、殺菌消毒等。在醫學、軍事、工業、農業上有很多的應用。在逃避障礙物時可以感應到,日常比較覺的應用有:計算人流量。人到水龍頭前自動出水,智能小車避障,機器人系統,燈的感應等。最近剛想做一部智能小車,我想到時候應用它就更好不過了,^-^ 當然,有時候也可以用紅外線等其它感應器代替。下面介紹的是超聲波關于燈的感應實驗。
        我寫的代碼:
        下面是代碼:
        #include
        LCD4Bit_mod lcd = LCD4Bit_mod(2);
        int inputPin=15;
        int outputPin=16;
        int ledPin = 17;
        void setup() {
        pinMode(inputPin, INPUT);
        pinMode(outputPin, OUTPUT);
        pinMode(ledPin,OUTPUT);
        lcd.init();
        lcd.clear();
        lcd.cursorTo(1, 0);
        lcd.printIn("www.geeetech.com");
        }
        void display(int number,unsigned char address)
        {
        unsigned char a,b,c,d;
        if(number <100)
        digitalWrite(ledPin,LOW);
        if(number >=100 )
        digitalWrite(ledPin,HIGH);
        a=(number/1000);
        b=(number/100)%10;
        c=(number/10)%10;
        d=number%10;
        lcd.commandWrite(0x80+address);
        lcd.print(a+48);
        lcd.print(b+48);
        lcd.print(c+48);
        lcd.print(46);
        lcd.print(d+48);
        lcd.print(99);
        lcd.print(109);
        }
        void loop() {
        digitalWrite(outputPin, LOW);
        delayMicroseconds(2);
        digitalWrite(outputPin, HIGH);
        delayMicroseconds(10);
        digitalWrite(outputPin, LOW);
        float distance = pulseIn(inputPin, HIGH);
        distance= distance/5.8;
        lcd.cursorTo(2, 0);
        lcd.printIn("Distance:");
        display(distance,0x49);
        }


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 平江县| 长宁区| 神木县| 永善县| 许昌市| 永丰县| 山西省| 建湖县| 彰化县| 镶黄旗| 泸西县| 枣强县| 阳高县| 绥滨县| 江门市| 枣庄市| 西乡县| 麻栗坡县| 保定市| 长春市| 嫩江县| 太仆寺旗| 海晏县| 綦江县| 太湖县| 富锦市| 渭源县| 芜湖县| 民勤县| 浦北县| 花莲县| 临澧县| 伊吾县| 将乐县| 沾益县| 宾川县| 密云县| 牙克石市| 肇州县| 大田县| 通山县|