极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15522|回复: 4

arduino智能小车测平均速度

[复制链接]
发表于 2014-9-27 19:42:14 | 显示全部楼层 |阅读模式
本帖最后由 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程序看附件。


现在就大功告成了。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 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);
}
回复 支持 反对

使用道具 举报

发表于 2014-11-15 19:38:54 | 显示全部楼层
SDJR 发表于 2014-10-7 21:31
看了楼主的帖子很有启发,初学者遇到一个问题请教下,关于中断函数计数的。我用的U型测速模块,无阻挡输出低 ...

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

使用道具 举报

发表于 2014-11-27 11:38:20 | 显示全部楼层
SproutME 发表于 2014-11-15 19:38
示波器看看波形,不知道你用的那种传感器,如果是老款的那种波形不好要整形

好的,谢谢~
回复 支持 反对

使用道具 举报

发表于 2016-9-25 14:13:58 | 显示全部楼层
怎么用这个计算轮胎速度
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 21:52 , Processed in 0.058069 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表