AREF (Analog Reference) cz5

Krótko mówiąc, gdy Arduino wykonuje odczyt analogowy, porównuje napięcie zmierzone na używanym styku analogowym z tak zwanym napięciem odniesienia. W normalnym użyciu analogRead() napięcie odniesienia jest napięciem roboczym płyty.

Więc jeśli masz napięcie odniesienia 5 V, każda jednostka zwrócona przez analogRead() ma wartość 0,00488 V. (Jest to obliczane przez podzielenie 5V na 1024 wartości przy 10 bitowym ADC). A co jeśli chcemy mierzyć napięcia od 0V do 2V lub od 0V do 4,6V? Skąd ADC wiedziałby, co stanowi 100% naszego zakresu napięcia?

W takiej sytuacji możemy użyć zewnętrznego złącza AREF, którym dostarczymy zewnętrzne napięcie odniesienia do płyty Arduino. Może ono pochodzić z regulowanego zasilacza lub jeśli potrzebujemy 3,3 V, możemy użyć to z płytki. Jeśli będziemy korzystać z zewnętrznego zasilacza, musimy pamiętać aby podłączyć GND do pinu GND w Arduino. Maksymalne napięcie jakie możemy podać to napięcie robocze płytki a najmniejsze to 1,1V.

Aby nie uszkodzić mikrokontrolera należy przed użyciem analogRead() aktywować zewnętrzne AREF poleceniem w funkcji void setup():

  • analogReference(EXTERNAL);

Niektóre mikrokontrolery na płytach Arduino mogą również generować wewnętrzne napięcie odniesienia. Aby z niego skorzystać również używamy takiego samego polecenia lecz z innym parametrem. Parametry dla poszczególnych mikrokontrolerów są dostępne na stronie: https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/