步驟1:VB部分
在VB Express中創建新的Windows窗體應用程序
插入
1個組合框(comPort_ComboBox)
2按鈕(connect_BTN,clear_BTN用于連接和清除)
1計時器(Timer1)
1標簽(Timer_LBL)1富文本框(RichTextBox1)
通過martyn currey復制和粘貼VB代碼(如下所示)
將arduino代碼上傳到您的arduino(如下所示)將Arduino Digital IO 13引腳連接到LED + ve ,
Ultrasonic的Arduino IO 7的Echo引腳和Arduino Digital IO 8的Ultrasonic的Trig引腳生成并運行VB程序通過將手放在Ultrasonic Reader上檢查準確性
第2步:Arduino部分
將Arduino Digital IO 13引腳連接到LED + ve,將Ultrasonic的Echo引腳連接到Arduino Digital IO 7,將Ultrasonic的Trig引腳連接到Arduino Digital IO 8
#define echoPin 7//回聲引腳
#define trigPin 8//觸發引腳
#define loadpin 13//觸發引腳
int jij = 0;
int maximumRange = 200;//需要的最大范圍
int minimumRange = 0;//所需的最小范圍
浮動持續時間,距離;//用于計算距離的持續時間
void setup(){
Serial.begin(9600);//設置串行速度
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
pinMode(loadpin,OUTPUT);//使用LED指示燈(如果需要)
digitalWrite(loadpin,LOW);//關閉LED
}
無效循環()
{
而(Serial.available()== 0) ;//如果什么都沒發送就什么也不做
int val = Serial.read()–‘0’;//減去‘0’的ascii值以查找已發送號碼的數值
如果(val == 1){//測試命令1,然后打開LED
digitalWrite( loadpin,高);//打開LED
deflstart();
//jij = 1;
}
否則(val == 0)//測試命令0,然后關閉LED
{
digitalWrite(loadpin,LOW);//關閉LED指示燈
//jij = 2;
deflstop();
}
否則//如果沒有一個以上命令的任何操作
{
//val = val;
}
//Serial.println(val)
Serial.flush();//清除串行端口
jij = 3;
}
void deflstart()
{
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
duration = pulseIn(echoPin,HIGH);
//根據聲速計算距離(以厘米為單位)。
距離=持續時間/5.81;
如果(距離》 = maximumRange ||距離《= MinimumRange){
/*向計算機發送一個負數并轉動LED ON
指示“超出范圍” */
Serial.println(“-1”);
//digitalWrite(LEDPin,HIGH);
}
else {
Serial.println(distance);
//digitalWrite(LEDPin,LOW);
}
//延遲下一次讀取前50毫秒。
delay(100);
}
void deflstop( )
{
//Serial.println(“stop“);
}
第3步:工作。.
運行程序
選擇源(端口)
如果一切正確,則dist超聲波傳感器和其范圍內的對象之間的距離出現在富文本框中
-
數據記錄器
+關注
關注
0文章
53瀏覽量
12681 -
Arduino
+關注
關注
187文章
6464瀏覽量
186681
發布評論請先 登錄
相關推薦
評論