
如果要用灰度检测。你必须先用灰度检测传感器分别测量地面和禁区的灰度值。
然后定义检测到灰度后要让机器人做什么动作
下面是代码编写的灰度检测程序
void main(void)
{
HuiDu=analogport(5)
这里只需要定义灰度检测的用哪个模拟口就可以用了
下面就是检测到有禁区后机器人的动作,你自己可以编写程序来让它如何动作
if(HuiDu>=200)
{
QuickStop()
RunBackward(40) /* 退后 cm*/
wait(0.2)
RunRight90()
RunForward(50)/*右转90度 直行20cm*/
wait(0.9)
stop()
}
}
灰度传感器有三条线,VCC,GND,和信号线,他信号线输出的是模拟电压,普通的51只能通过电压比较器LM339来辨别两种不同的颜色,但是如果用增强的51就可以用他自带的AD来测。
只需要吧信号线接到增强的51的有AD功能的端口,启动AD来读他的电压就能辨别不同的颜色了。
有各种传感器它们的连接方法不同的,有的信号输出大可以直接连单片机,如LM35可以直接连到单片机的AD转换口。
有的信号小要进行放大后才能到单片机的AD转换口。如果到单片机没有AD转换口,那么还要经过AD转换才能到单片机。当然传感器自己也有各种连接电路。
扩展资料:
AM2301电容式温湿度传感器+MQ2气体传感器+GP2Y1010AU0F灰尘传感器+HC-SR501人体红外感应模块+光敏电阻传感器模块。
其中人体红外感应模块(开关量)输出端可以直接连接到开发板任何IO端。
其他都是模拟量,如果输出不是数字量,要经过AD转换,不能直接连到单片机开发板上。
参考资料来源:百度百科 ——单片机
参考资料来源:百度百科——传感器(检测装置)
不知道你用的传感器是模拟的,还是数字的,如果是模拟的,需要传感器的电压输出端接到单片机的模数转换口,然后模数转换后,通过单片机判断转换后的值来确定是否偏离路线。如果是数字的,则需要通过SPI或I2C与单片机相连,得看你的传感器支持哪一种输出。还有就是你的单片机是51类的还是AVR的,51的话还得用两个IO口来做I2C自己写I2C协议。AVR的话直接连到I2C接口参照相应的程序来写就行了。希望对你有所帮助。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)