Wpis z mikrobloga

Czy to normalne, że program mi źle działa jeśli w czasie działania używam 2 napięć odniesienia dla adc i przełączam się między nimi? Poprawnie odczytuje jedynie stan jednego wejścia, odczyt z drugiego wygląda jakby napięcie odniesienia się nie przełączyło.

Wygląda to mniej więcej tak:

analogReference(DEFAULT) //ustawiam napięcie odniesienia na domyślne (Vcc)

odczytuję stan klawiatury wpiętej na wejście analogowe A1

analogReference(INTERNAL) //ustawiam napięcie odniesienia na wewnętrzne 1,1V

odczytuję stan akumulatora na wejściu A2


Można to jakoś rozwiązać programowo czy muszę sprzętowo dostosować się do jednego napięcia odniesienia i go nie zmieniać w czasie trwania programu?

#arduino
  • 2
via Wykop Mobilny (Android)
  • 1
@ZaQ_1: nie wiem jaki to jest zaszyte w Arduino ale albo źle się przełącza albo nie ma dość czasu na przełączenie i konwersję adc. Ale może zamiast przełączać zrobić dzielnik na wyższym napięciu i oba mierzyć względem tego samego odniesienia
@ZaQ_1: Znalazłem częściową odpowiedź. Jeśli chcę używać 2 napięć odniesienia to muszę między odczytami zaczekać aż rozładuje się kondensator między aref i masą.
Staram się nie używać delayów, więc lepiej będzie po prostu sprzętowo przystosować klawiaturę do napięcia odniesienia 1,1V