ATTINY85 i POT

Sep 22 2020

Muszę odczytać wartość potencjometru z ATTINY85. Mam duży, gruby 10K POT, ale w tym przypadku potrzebuję, aby był bardzo mały, więc użyłem ocalonego 2,4K, takiego, który jest przylutowany bezpośrednio do PCB.

Używam Tinkercad do prototypowania mojego projektu i mam do czynienia z bardzo dziwnym problemem. Za każdym razem, gdy czytam z POT Pin, otrzymuję wartość 512 (za pomocą debuggera)

Oto zrzut ekranu mojego prototypu:

Celem jest zasilenie obwodu i lampy (nieważne, co tam jest, uważaj to za obciążenie) baterią 9 V, użycie regulatora 5 V do zasilania ATTINY85 i użycie tranzystora NPN do włączenia lampy / obciążenia lub poza.

Dla informacji, cała konfiguracja regulatora i tranzystora jest testowana i działa jak marzenie.

Oto kod, który napisałem dla tego przypadku:

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

int potValue = 0;

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

Niezbyt wyszukane, prawda? Teraz bez względu na zastosowanie POT, a próbowałem 2,4K, 10K i do 100K, wartość odczytana przez ATTINY to zawsze 512.

Czy widzisz coś nie tak w tej konfiguracji? Czy to może być błąd w Tinkercad? (Byłbym jednak zaskoczony)

Mógłbym spróbować udostępnić ten obwód w ramach majsterkowania, gdyby ktoś chciał rzucić okiem ...

EDYCJA: właśnie próbowałem z PB2, jak sugerowano, ale nie zawsze wartość wynosi 58:

Odpowiedzi

2 StarCat Sep 22 2020 at 20:32

Port PB0 nie jest pinem ADC (wejścia analogowego) w ATTiny85 .

Dostępne piny ATTiny85 (z arkusza danych Atmel ATtiny 25, 45, 85):

Wybierz PB2, PB3, PB4 lub PB5, jeśli potrzebujesz wejścia analogowego.

Dodatkowe informacje: Po wbudowaniu w TinkerCAD użycie PB2 jako wejścia analogowego nie wydaje się działać poprawnie i daje stałą wartość. Korzystanie z PB3 działało jednak poprawnie. To może być błąd w TinkerCAD.