ATTINY85 및 POT

Sep 22 2020

ATTINY85에서 전위차계 값을 읽어야합니다. 나는 큰 10K POT를 가지고 있지만이 사용 사례에서는 매우 작아야하므로 PCB에 직접 납땜 된 종류의 회수 된 2.4K를 사용했습니다.

저는 tinkercad를 사용하여 프로젝트의 프로토 타입을 만들고 있는데 매우 이상한 문제에 직면 해 있습니다. POT 핀에서 읽을 때마다 512의 값을 얻습니다 (디버거 사용).

다음은 내 프로토 타입의 스크린 샷입니다.

목표는 9V 배터리로 회로와 램프에 전원을 공급하고 (무엇이든 부하로 간주) 5V 레귤레이터를 사용하여 ATTINY85에 전원을 공급하고 NPN 트랜지스터를 사용하여 램프 / 부하를 켜거나 떨어져서.

정보를 위해 전체 레귤레이터 및 트랜지스터 설정이 테스트되고 매력적으로 작동합니다.

이 경우에 대해 작성한 코드는 다음과 같습니다.

void setup()
{
  pinMode(PB0, INPUT);
}

int potValue = 0;

void loop()
{
  potValue = analogRead(PB0);
  delay(100);
}

진짜 환상적이지 않습니까? 이제 POT에 어떤 용도로 사용하든 2.4K, 10K 및 최대 100K를 시도했지만 ATTINY가 읽는 값은 항상 512입니다.

이 설정에서 잘못된 점이 있습니까? tinkercad의 버그 일 수 있습니까? (그래도 놀랄 것입니다)

누군가가 기꺼이 볼 수 있다면 tinkercad 내 에서이 회로를 공유하려고 할 수 있습니다 ...

편집 : 제안대로 PB2로 시도했지만 값이 항상 58이 아닙니다.

답변

2 StarCat Sep 22 2020 at 20:32

포트 PB0은 ATTiny85의 ADC (아날로그 입력) 핀이 아닙니다 .

ATTiny85의 사용 가능한 핀 (Atmel ATtiny 25, 45, 85 데이터 시트에서) :

아날로그 입력이 필요한 경우 PB2, PB3, PB4 또는 PB5를 선택하십시오.

추가 정보 : TinkerCAD에 내장 된 경우 PB2를 아날로그 입력으로 사용하면 제대로 작동하지 않고 고정 된 값이 생성됩니다. 그러나 PB3를 사용하면 올바르게 작동했습니다. TinkerCAD의 버그 일 수 있습니다.