首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino上拉电阻不工作

Arduino上拉电阻不工作
EN

Stack Overflow用户
提问于 2014-03-01 22:32:27
回答 1查看 1K关注 0票数 0

我正在使用Arduino电路板来读出软电位计的值。(检测触摸的条带)。只要带子被触摸,它就能工作得很好(电流增加了一个电阻)。当条带未被触摸时,模拟引脚读取完全随机的浮点数。论坛提到,你必须添加一个上拉/下拉电阻来取消此效果,但这似乎不起作用。这段代码有什么问题?

代码语言:javascript
复制
int potPin = 2;
int curval = 0;

// detect potmeter value

void setup() {
  //enable pullup resistor, but still results in erratic output
  //when potmeter is not touched
  digitalWrite(potPin, HIGH); 
  //write to serial
  Serial.begin(9600);
}

void loop() {
  curval = analogRead(potPin);
  // this works when the potmeter is being pressed (displays 0 to 1024)
  Serial.println(curval);
  delay(150);
}
EN

回答 1

Stack Overflow用户

发布于 2014-03-02 05:45:07

变化

代码语言:javascript
复制
int potPin = 2;

代码语言:javascript
复制
int potPin = A2;

您最初在这两个地方使用" 2“的用法是将数字引脚2分配给上拉并从模拟通道2读取。因为"2”对应于is PortD位2,而模拟通道2(也称为ADC2)是PortC位2。如下所示

代码语言:javascript
复制
digitalWrite(2, HIGH);  // Pin D2
curval = analogRead(2); // AMUX Channel 2

其中,下面显示的A2的解释如下

代码语言:javascript
复制
digitalWrite(A2, HIGH);  // Pin (A2 aka D16)
curval = analogRead(A2); // AMUX Channel 2 on Pin A2

在UNO (ATmega328)上,analogRead()函数将0-7解释为通道,并将引脚A0到A7 (D14-D21)转换为相应的通道,以便读取。

注意:

ADC6和7在UNO上使用的芯片上不可用。

A0-A7是数字14到21的别名。其中通常使用标签A0-A7。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22115617

复制
相关文章

相似问题

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