极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 迷你强

Arduino入门教程--第二十一课--脉冲计时(看你按住开关有多久)

  [复制链接]
发表于 2014-6-18 15:23:48 | 显示全部楼层
为什么我的都是000000呢?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2014-8-30 00:54:37 | 显示全部楼层
发现这个帖子内一个错误处,两处地方说的不太一样。pulseIn()函数的返回值单位两处是不同的。
第一处:“比如第一条是196377,第二条是206748。他们对应的单位是微秒,”
第二处:“pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。返回脉冲的长度,单位毫秒。”
请楼主抽时间更正下。
回复 支持 反对

使用道具 举报

发表于 2014-9-3 16:16:19 | 显示全部楼层
学习了,感谢!!!!
回复 支持 反对

使用道具 举报

发表于 2014-10-14 09:08:31 | 显示全部楼层
路过,顶一把!!!!
回复 支持 反对

使用道具 举报

发表于 2014-10-14 09:19:23 | 显示全部楼层
<一一巛 发表于 2013-3-5 10:12
交作业

两位小数是怎么出来的?
回复 支持 反对

使用道具 举报

发表于 2014-10-15 10:35:28 | 显示全部楼层
timeout (可选):指定脉冲计数的等待时间,单位为微秒,默认值是1秒(unsigned long).设置这个有什么用呀?
回复 支持 反对

使用道具 举报

发表于 2014-10-29 21:54:48 | 显示全部楼层
弘毅 发表于 2013-3-12 19:52
介个。。。。不知道一块板子同时处理两个按键的会不会有问题。。如果一个板子不行=.=那么。。两个板子

坐等大师攻克此等难题
回复 支持 反对

使用道具 举报

发表于 2015-1-8 19:13:11 | 显示全部楼层
好东西,谢谢分享!!!!!!
回复 支持 反对

使用道具 举报

发表于 2015-2-25 10:30:42 | 显示全部楼层
已学习,标记下
回复 支持 反对

使用道具 举报

发表于 2015-4-12 12:05:41 | 显示全部楼层
学习了,有用
回复 支持 反对

使用道具 举报

发表于 2015-4-20 15:58:15 | 显示全部楼层
能不能用来做摩尔斯电码的译码器呢?
我是有个想法,两个固定点间的远程激光通信,用一个Arduino控制激光管照射另一个Arduino上的光电二极管得到开关量,用这个函数进行计时,长短不同的脉冲代表不同的字母或者其他数据,这样就可以达到千米远的通讯效果同时比采用大功率无线数传更省电,成本更低
回复 支持 反对

使用道具 举报

发表于 2015-4-27 22:51:40 | 显示全部楼层
哈哈。看过 。厉害。
回复 支持 反对

使用道具 举报

发表于 2015-6-15 15:23:08 | 显示全部楼层
下面的代码应该跟LZ结果一样吧。(未测试)
int pin = 2;  //定义引脚为D2
unsigned long duration;  //定义duration变量为无符号长整数型变量

void setup()
{
  Serial.begin(9600);  //串口波特率为9600
  pinMode(pin, INPUT); //设置引脚为输入模式
}

void loop()
{
  //duration = pulseIn(pin, HIGH,60000000); //读取引脚上的高电平脉冲,最大脉冲时间间隔为60秒,并且把结果赋值给duration变量
  //相当于以下
  /////////////////////////////////////////////////////
  while ( !digitalRead(pin) ) { }
  duration = micros();
  while ( digitalRead(pin) ) { }
  duration = micros() - duration;
  /////////////////////////////////////////////////////
  Serial.println(duration); //通过串口输出duration变量
}
回复 支持 反对

使用道具 举报

发表于 2016-2-16 10:26:28 | 显示全部楼层
请问Timer2库会对这个函数有影响吗?uno9引脚的pwm输出对它有影响吗?
回复 支持 反对

使用道具 举报

发表于 2016-4-8 15:34:30 | 显示全部楼层
D2,这个是中断口,应该是用中断完成的,精度和晶震一样,应该是读取定时器走的时间,

time=(TCNT1H<<8)+TCNT1L;   //读定时器走过的时间
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-27 04:34 , Processed in 0.046132 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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