pqy39 发表于 2014-9-27 19:42:14

arduino智能小车测平均速度

本帖最后由 pqy39 于 2014-9-27 19:41 编辑

    在中学物理教学中,《测量平均速度》误差太大,主要体现在时间上,于是我利用我的智能
小车改进了改实验。
    用智能小车代替斜面小车,同样让小车做匀加速运动;利用h2210槽形光电对管遇到纸片遮挡时中断
计时,主要技术难点如下:
    (1)由光电门自动读取时间,时间精度为0.001秒,小车自行运动,路程由刻度尺测量。
    (2)光电门需要接电阻才能输出高低电平到arduino板,发射管正极接220欧电阻到5V端,接受三极管输
出端接1K电阻到地,当红外线被阻挡时,接受三极管不导通,输出端为低电平,否则为高电平。
    (3)光电门中断利用2端口,
             int pbin=0;//0中断用端口2,1中断用端口3
             attachInterrupt(pbin, stateChange, RISING);
             void stateChange()//中断函数
{
j=j+1;
time2= millis();
time=(time2-time1)*1.0;
time=time/1000;
Serial.print("t");
Serial.print(j);
Serial.print(":");
Serial.print(time);
Serial.println("s");
}
    (3)由于我的小车为四驱,驱动板为L293D,前进倒退调速共需要12个数字端口,留0,1端口给蓝牙模块,
恰好差一个,于是我利用模拟口代替一个数字口。

DDRC=0xff;//C端口包括所有模拟口,语句意思是C端口为输出

PORTC=0xff;//C端口全输出高电平,也可以写成0x00,即C端口全输出低电平

    (4)调速利用数字口5,6,9,11的pwm模拟输出,最后接上蓝牙模块。
    (5)控制系统启动有两套方案,手机和电脑控制。
a,手机控制。手机端安装bluetooth spp蓝牙串口通信助手,发送R启动,发送H后退,发送S停止,遇到障碍物
返回读取时间到手机端。程序看附件。
b,电脑控制。利用labview虚拟仪器软件制作界面和串口通信程序,arduino程序要简化输出,单位为毫秒。
void stateChange()//中断函数
{
time2= millis();
time=time2-time1;
Serial.print(time);
}
另外后退操作取消,程序适当修改,labview程序看附件。


现在就大功告成了。



SDJR 发表于 2014-10-7 21:31:27

看了楼主的帖子很有启发,初学者遇到一个问题请教下,关于中断函数计数的。我用的U型测速模块,无阻挡输出低电平,有阻挡输出高电平。程序在下面,目前困惑的是:
1. 不管将白纸插入U型槽中还是抽出来,计数l_wheel都会增加,明明设置的是FALLING触发中断?
2. 每次触发中断,l_wheel增量不是1,而是十几或几十。照例说不是应该红外光被阻挡一次,计数就+1么?
困惑中,望赐教~3Q

int u_left = 2;//定义U型测速端口
int val=0;
volatile int l_wheel = 0;

void LCount()
{
l_wheel=l_wheel+1;
}

void setup ()
{
Serial.begin(9600);
pinMode(u_left,INPUT);
attachInterrupt(0,LCount,FALLING);
}

void loop()
{
val=digitalRead(u_left);

Serial.print(val);
Serial.print(" ");
Serial.println(l_wheel);
}

SproutME 发表于 2014-11-15 19:38:54

SDJR 发表于 2014-10-7 21:31 static/image/common/back.gif
看了楼主的帖子很有启发,初学者遇到一个问题请教下,关于中断函数计数的。我用的U型测速模块,无阻挡输出低 ...

示波器看看波形,不知道你用的那种传感器,如果是老款的那种波形不好要整形

SDJR 发表于 2014-11-27 11:38:20

SproutME 发表于 2014-11-15 19:38 static/image/common/back.gif
示波器看看波形,不知道你用的那种传感器,如果是老款的那种波形不好要整形

好的,谢谢~

小新的小白 发表于 2016-9-25 14:13:58

怎么用这个计算轮胎速度
页: [1]
查看完整版本: arduino智能小车测平均速度