电子说
步骤1:VB部分
在VB Express中创建新的Windows窗体应用程序
插入
1个组合框(comPort_ComboBox)
2按钮(connect_BTN,clear_BTN用于连接和清除)
1串行端口控制器(SerialPort1)
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条评论
快来发表一下你的评论吧 !