八爪鱼 发表于 2012-11-18 10:29:30

Arduino可以读取PWM信号吗?

本帖最后由 八爪鱼 于 2012-11-18 10:31 编辑

新人。。。。。

我前一阵子学会了用Arduino发出PWM信号~~



弱弱的问各位大神,Arduino可以读取PWM信号吗?

我想用Arduino读取另一块单片机的PWM引脚~~~


应该把把PWM信号接到Arduino哪个端点上呢?

该应哪几个代码函数去读取?恳求各位大神指点赐教~~~

{:soso_e154:}

绿林网页 发表于 2012-11-18 11:48:58

pwm实际上就是间断性的高低电平,所以任何IO管脚可以读出来的

老摸 发表于 2012-11-18 15:08:34

连analog脚啊,读模拟信号。
analogRead(n);

弘毅 发表于 2012-11-18 18:01:03

用pulseIn()函数
http://wiki.geek-workshop.com/doku.php?id=arduino:arduino_language_reference:pulsein

八爪鱼 发表于 2012-11-18 18:54:43

本帖最后由 八爪鱼 于 2012-11-18 18:56 编辑

弘毅 发表于 2012-11-18 18:01 static/image/common/back.gif
用pulseIn()函数
http://wiki.geek-workshop.com/doku.php?id=arduino:arduino_language_reference:pulsei ...

谢谢各位大神!

已经通过pulseIn()函数成功读取舵机控制板其中一个引脚PWM值~~~~

读取值有波动~~~我想应该是Arduino读取误差 ,如果是舵机控制板PWM的波动的话舵机应该相当抖了~~~


如图:用舵机控制板输出1461   

          Arduino读取值为:1448~1455之间波动

八爪鱼 发表于 2012-11-18 18:59:27

本帖最后由 八爪鱼 于 2012-11-18 19:05 编辑

int pin = 7;
unsigned long duration;

void setup()
{

Serial.begin(128000);
pinMode(pin, INPUT);



}

void loop()
{
duration = pulseIn(pin, HIGH);

Serial.println(duration);

}再次谢谢各位大神      我去想办法找PWM值波动的诱因~~~

zcbzjx 发表于 2012-11-18 20:54:39

0.3%的波动。。。你咋个找?你舵机有那么高的分辨率来抖?再说,这么小的抖动你能感觉出来?

八爪鱼 发表于 2012-11-18 21:52:14

zcbzjx 发表于 2012-11-18 20:54 static/image/common/back.gif
0.3%的波动。。。你咋个找?你舵机有那么高的分辨率来抖?再说,这么小的抖动你能感觉出来?

噢!那就不用找了~~~新人勿怪~~~还以为波动很大

哈哈顺 发表于 2014-9-18 20:28:31

弘毅 发表于 2012-11-18 18:01 static/image/common/back.gif
用pulseIn()函数
http://wiki.geek-workshop.com/doku.php?id=arduino:arduino_language_reference:pulsei ...

谢谢弘毅老师

Valyrian 发表于 2016-2-21 10:58:46

弘毅 发表于 2012-11-18 18:01 static/image/common/back.gif
用pulseIn()函数
http://wiki.geek-workshop.com/doku.php?id=arduino:arduino_language_reference:pulsei ...

请问一下,为什么我用map()函数和analogRead()读出来的pwm不准呢?pulseln()要占用定时器,我现在已经把所有定时器用掉了。。。。
页: [1]
查看完整版本: Arduino可以读取PWM信号吗?