Witam serdecznie, właśnie bawię się rozdziałem dotyczącym przetworników ADC, po przeczytaniu na szybko zmajstrowałem układ mający pokazać "czy mi to w ogóle żyje":
Zatem podpiąłem sobie potencjometr w taki sposób, że mogę sobie regulować napięcie na nim od 0 dla skrajnego lewego przekręcenia do 5V dla skrajnego prawego - sprawdzone miernikiem.
Podłączyłem odpowiedni potencjał do mikrokontrolera.
Jako urządzenie wyjścia wykorzystałem dwumiejscowy, siedmiosegmentowy wyświetlacz ledowy, wyświetlacz zaprogramowałem i podłączyłem tak, że sterują nim tylko dwie zmienne zn0 i zn1 odpowiadające za odpowiednio wyświetlany prawy i lewy znak (wyświetlacz sprawdzany, wiernie wyświetla liczby).
W zamyśle na wyświetlaczu powinna się wyświetlać liczba od 0 do 99 reprezentująca napięcie na potencjometrze od 0V do 5V i ku uciesze - w miarę jak przekręcam gałkę potencjometru w prawo, tak zwiększa się liczba na wyświetlaczu. I tak aż do liczby 63, gdzie po dalszym przekręcaniu wyświetlacz się zeruje i dalej leci do 35, dla której to wartości na potencjometrze jest napięcie 5V.
Niby by się zgadzało - na wyświetlaczu liczba 63 - miernik wskazuje napięcie na potencjometrze 3,10V, czyli 62% z 5V, jednak dla powiedzmy - 4,25V na potencjometrze - wyświetlacz wskazuje liczbę 22.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Pominąłem kod sterujący wyświetlaczem - myślę, że nie jest on tutaj istotny. Wyświetlacz wiernie wyświetla zawartość zmiennej "liczba" jeżeli jest ona w przedziale 0-99.
Zupełnie jakby atmega8 nie chciała mi mierzyć napięcia większego niż te 3,10V.
Chyba jestem zbyt głupi, żeby wymyślić, dlaczego tak jest.
Co o tym myślicie?