1

编辑:已解决

正如标题一样,我无法让 ATTiny85 上的任何模拟输入从 POT 中读取。为了调试和测试,它目前连接到一个带有 8 个 LED 的移位寄存器。仅输出 int 值时,此设置工作正常。在这一点上,我有点失落。

我对ATTiny的经验很少,所以我打赌它很傻。POT 与 +5VDC 的一侧和模拟读取引脚上的中心抽头相连。

int data = PB0;
int clock = PB2;
int latch = PB3;
int ledState = 0;
int POT = PB4;

int PWM = 255;
int LED;

const int ON = HIGH;
const int OFF = LOW;
void setup()
{
  pinMode(data, OUTPUT);
  pinMode(clock, OUTPUT);  
  pinMode(latch, OUTPUT);
  pinMode(POT, INPUT);
}

void loop()
{
  LED = analogRead(POT);
  LED = map(LED, 0, 1023, 0, 255);
  updateLEDs(LED);
  delay(1000);
}




void updateLEDs(int value){
  digitalWrite(latch, LOW);     //Pulls the chips latch low
  shiftOut(data, clock, MSBFIRST, value); //Shifts out the 8 bits to the shift register
  digitalWrite(latch, HIGH);   //Pulls the latch high displaying the data
}
4

1 回答 1

0

已解决:我认为这是一件愚蠢的事情是正确的。我没有将 POT 的另一侧接地。现在工作!

于 2015-12-17T15:11:26.303 回答