Arduino: Zmierz napięcie zewnętrzne

10

Mam „problem” podczas próby pomiaru napięcia zewnętrznego z ogniwa monety. Uprościłem swój obwód, ale w zasadzie mam zegar czasu rzeczywistego DS1307 zasilany przez wyjście Arduino 5v oraz ogniwo monetowe podłączone do vBat, aby utrzymać zegar przy życiu, gdy Arduino jest wyłączony. Moim pomysłem było zmierzenie poziomu baterii za pomocą Arduino poprzez podłączenie jej dodatniego do wejścia analogowego i odczytanie poziomu napięcia. Pomyślałem więc, że ponieważ maksymalne napięcie wynosi 3 V, mogę użyć 3v3 jako AREF i ustawić analogowe odniesienie na zewnętrzne, a następnie odczytać dokładne wyniki. Rezultat jest całkiem fajny, a odczyty z Arduino są takie same, jak odczyt napięcia akumulatora z mojego multimetru. Problem pojawia się, gdy odłączę źródło zasilania od Arduino (połączenie USB). Ku mojemu zaskoczeniu Arduino nie wyłącza się (niektóre diody LED są włączone),

Dlaczego to się dzieje? Jak Arduino pobiera prąd z pinu analogowego? Czy ten mały obwód jest aberracją elektroniczną?

wprowadź opis zdjęcia tutaj

alvarolb
źródło

Odpowiedzi:

10

Większość, jeśli nie wszystkie, styki wejściowe w kontrolerach AVR są wewnętrznie chronione przez diody zaciskowe. Diody te zapobiegają, aby napięcie wejściowe mogło być wyższe niż napięcie zasilające.

Dlaczego są tam te wewnętrzne diody:

Ważne jest, aby zdać sobie sprawę, że gdy szpilka wejście robi wzrost powyżej napięcia zasilania i te diody nie było, chip może działać jako SCR, zatrzask, krótki baterii, a sam układ prawdopodobnie uszkodzone przez nadprądowe / przegrzaniem .

Dlaczego Twój Arduino działa z baterii Spójrz na poniższy schemat połączeń. Kiedy Vcc jest odłączony od normalnego źródła zasilania, istnieje droga od akumulatora, przez D1, do Vcc. Napięcie akumulatora jest wystarczająco wysokie, aby sterownik mógł działać.

schematyczny

symulacja tego obwodu - Schemat utworzony przy użyciu CircuitLab

Jak to rozwiązać

Rozwiązanie jest proste, dodaj rezystor o wysokiej wartości szeregowo między akumulatorem a wejściem kontrolera. Większość AVR ma określony maksymalny prąd upływu wejściowego (I IL ) 1μA, więc chcesz się upewnić, że spadek napięcia jest akceptowalny przy tym prądzie, powiedzmy 100kΩ.

Ale strzeż się!

Musisz zdawać sobie sprawę, że sygnał wejściowy może pobierać ten prąd z komórki przycisku i skracać jego żywotność.

jippie
źródło
Spróbuję 10Mohm i zobaczę, co odczyta ADC, i wykorzystam to jako odniesienie dla naładowanej baterii. To trudny pomiar, jeśli chcesz uniknąć niepożądanego drenażu.
Andy alias
To może działać, chociaż jest określone jako prąd wejściowy, a nie jako impedancja wejściowa. Odpowiedź może być nieliniowa, ale niekoniecznie bezużyteczna. Może to wymagać pewnego rodzaju kalibracji i być może można zastosować odniesienie do przerwy pasma 1V1 (zamiast zewnętrznego odniesienia 3V3), gdy zmierzone napięcie spadnie poniżej 1,1 V.
jippie
Niezła odpowiedź!! Myślałem, czy zadziała dzielnik rezystorowy o 100kΩ i 50kΩ. W tym przypadku zakładam, że maksymalne napięcie akumulatora wynosi 3,2 V. Daje to napięcie spadkowe 1,067 V, które może być kompatybilne z wewnętrznym analogowym napięciem odniesienia 1v1. To może zadziałać? czy rozładuje baterię zbyt wcześnie?
alvarolb
2
Nie znam pojemności twojej baterii. Należy podać w mAh. wskazaniem jego żywotności byłoby . Komórka monetowa może nie trwać bardzo długo, ale dla pewności powinieneś sprawdzić arkusz danych. T=mAh3V×1000100kΩ+50kΩ=mAh × (100kΩ+50kΩ)3V×1000
jippie
1
Diody te są obecne na większości mikrokontrolerów w ogóle - nie tylko AVR. Nie są one niespotykane również w innych typach układów scalonych.
Adam Lawrence