首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Arduino或C环境中如何统计输入状态的变化?

在Arduino或C环境中如何统计输入状态的变化?
EN

Stack Overflow用户
提问于 2016-05-18 20:21:02
回答 2查看 929关注 0票数 1

我正在做一个DIY转速表项目,我正在使用一个红外传感器模块来跟踪一个连接在电机上的轮子上的黑色条带。当传感器出现在带材前面时,传感器模块将低输出发送到Arduino,否则将发送高输出。我的问题是,当模块的输入每次遇到黑色条带时,我如何跟踪它的状态变化?

例如,如果它发送1111110000011111100000 ( '0‘序列是传感器穿过条带时),程序应该能够检测到计数为2(即,程序应该只检测到下降的输入变化,并且计数器应该加1)。

我只想要尽可能短的代码摘录,这将有效地进行计数。我是一个相当业余的程序员,所以我不知道该怎么做。任何帮助都将受到高度的感谢。

EN

回答 2

Stack Overflow用户

发布于 2016-05-18 22:45:31

我认为使用外部中断来检测输入信号的两个边沿。

连接传感器的输出引脚和arduino的INTn。

票数 0
EN

Stack Overflow用户

发布于 2016-05-19 23:10:16

你只需要你已经拥有的代码,然后让轻量布尔值对你扫描的"1“为真,对"0”为假。这应该是可行的。如果没有,请回复此答案。我会尽力帮你的。

代码语言:javascript
复制
boolean lastscanned = false;
int counter = 0;
void setup() {
    Serial.begin(9600);
}
void loop() {
//do your Read code here:

boolean light;// = paste your result form Reading above here.It has to
// be a boolean (true/false)
if (light = lastscanned) {
//there was no change
}else {
//there was a change
lastscanned = light; //set the lastscanned to the new one.
counter += 1;
Serial.println(counter);
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37299474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档