首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino电位器时间控制

问Arduino电位器时间控制
EN

Stack Overflow用户
提问于 2013-05-31 16:10:40
回答 2查看 2.6K关注 0票数 1

我想用电位计设定时间间隔。我想在1到6秒内选择它。我该怎么做呢?

到目前为止,我已经有了这个。如果我用电位器,光就会由亮变暗。

(我使用Arduino Uno,我用C++编程)。

代码语言:javascript
复制
const byte pot = 0;
int potWert=0;

potWert = analogRead(pot);  
analogWrite(led,potWert/4);
Serial.println((byte)potWert); //just for output on the serial monitor
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-31 19:01:26

analogRead读取的范围是0到1023。你需要根据你的时间间隔来调整它。

你说你想要1到6秒的范围(而不是0到6?)。为了将其正确缩放到罐子,您需要将1023除以6(如果您需要0到6的范围,则为7)。所以:

代码语言:javascript
复制
1023 / 6 = 170.5

因此,您需要使用:

代码语言:javascript
复制
analogWrite(led,potWert/170.5);

假设你想要精确到10毫秒单位

代码语言:javascript
复制
 1023 / 600 = 1.705

因此:

代码语言:javascript
复制
analogWrite(led,potWert/1.705);
票数 5
EN

Stack Overflow用户

发布于 2013-06-03 13:31:03

这是一种很困难的方式,并且使代码难以阅读。使用map语句。下面是Arduino参考中的一个示例:

示例

代码语言:javascript
复制
/* Map an analog value to 8 bits (0 to 255) */
void setup() {}

void loop()
{
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16852695

复制
相关文章

相似问题

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