一:開發環境 Arduino

上電后不斷執行loop函式中的代碼,我們核心控制代碼寫入loop
setup函式只呼叫一次,一般用于硬體相關的初始化,比如IO口,串口,wifi等
void setup() {
}
void loop() {
}
void setup() {
pinMode(D5, OUTPUT); //設定引腳為輸出引腳
}
void loop() {
digitalWrite(D5, HIGH); // 輸出高電平,蜂鳴器閉嘴
delay(1000); //這一秒內都得閉嘴
digitalWrite(D5, LOW); //輸出低電平,蜂鳴器吼起來
delay(1000); //吼一秒(延時期間,蜂鳴器控制引腳屬于低電平)
}
pinMode()
通過pinMode()函式,你可以對Arduino的引腳配置
輸出(OUTPUT)模式
輸入(INPUT)模式
digitalWrite()
將數字引腳寫HIGH(高電平)或LOW(低電平)
delay()
延時函式;
#include <Servo.h>
#define DuoPIN D5
#define BEEF D6
#define Echo D2
#define Trig D8
Servo myDuoji;
void intChaoShenBo() //初始化超聲波
{
pinMode(Echo, INPUT); //定義輸入埠
pinMode(Trig, OUTPUT); //定義輸出埠
}
long getTime() //獲取距離
{
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
return pulseIn(Echo, HIGH);
}
void setup() {
intChaoShenBo();
myDuoji.attach(DuoPIN); //連接舵機
pinMode(BEEF,OUTPUT); //定義IO口
digitalWrite(BEEF,HIGH); //初始化
Serial.begin(115200);//開啟串口,設定波特率,
}
void loop() {
//獲取距離
long dis;
dis = getTime() / 58;
Serial.print(dis); // 列印獲取的距離,
Serial.println("cm");
if (dis < 10) {
myDuoji.write(110+);
digitalWrite(BEEF,LOW);
delay(1000);
}
else
{
myDuoji.write(180);
digitalWrite(BEEF,HIGH);
}
}
代碼實作功能:當物品靠近超聲波測距感應器10CM以內垃圾桶開蓋,蜂鳴器鳴響,

delayMicroseconds() 函式在Arduino中在短時間延時中更準確
pulseIn()Arduino中的API 測得某的IO口維持高|低電平的時間
/58原理:
343m/s
34300/s
0.0343cm/us 每0.0343cm耗時1us
1us能走多少厘米 29.15
Pulseln(Echo ,HIGH) time
Time/58.3 波再空氣中的總厘米
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/247722.html
標籤:其他
上一篇:TYPE-C Docking, Hub, TYPE-C 到 HDMI/DP/VGA 轉換器,任天堂Switch 游戲機轉接器PD方案講述
