Arduino - Расширенная функция ввода / вывода
В этой главе мы изучим некоторые расширенные функции ввода и вывода.
Функция analogReference ()
Конфигурирую опорное напряжение используется для аналогового входа (т.е. значения, используемое в качестве верхней части диапазона входного сигнала). Варианты -
DEFAULT - Аналоговое задание по умолчанию 5 В (на платах Arduino 5 В) или 3,3 В (на платах Arduino 3,3 В)
INTERNAL - An встроенный в ссылке, равным 1,1 вольт на ATmega168 или ATmega328 и 2,56 вольт на ATmega8 (не доступен на Arduino Mega)
INTERNAL1V1 - Встроенный 1.1V ссылки (Arduino Mega только)
INTERNAL2V56 - Встроенный 2.56V ссылки (Arduino Mega только)
EXTERNAL - Напряжение, прикладываемое к AREF штифтом (от 0 до 5 только) используется в качестве ссылки
Синтаксис функции analogReference ()
analogReference (type);
type - можно использовать любой из следующих типов (ПО УМОЛЧАНИЮ, ВНУТРЕННИЙ, ВНУТРЕННИЙ1V1, ВНУТРЕННИЙ2V56, ВНЕШНИЙ)
Ничего не использовать меньше 0В или более 5В для внешнего опорного напряжения на Ареф штифтом. Если вы используете внешнюю ссылку на выводе AREF, вы должны установить аналоговую ссылку на EXTERNAL перед вызовомanalogRead()функция. В противном случае, вы будете короткий активный источник опорного напряжения (внутренне генерируется) и AREF контактный, возможно, повреждая микроконтроллер на вашем Arduino борту.
Кроме того, вы можете подключить внешний источник опорного напряжения к AREF штифтом через резистор 5K, что позволяет переключаться между внешними и внутренними опорными напряжениями.
Обратите внимание, что резистор изменит напряжение, которое используется в качестве эталона, так как есть внутренний 32K резистор на AREF штифтом. Они действуют как делитель напряжения. Например, 2,5 В, приложенное через резистор, даст 2,5 * 32 / (32 + 5) = ~ 2,2 В на выводе AREF.
Example
int analogPin = 3;// potentiometer wiper (middle terminal) connected to analog pin 3
int val = 0; // variable to store the read value
void setup() {
Serial.begin(9600); // setup serial
analogReference(EXTERNAL); // the voltage applied to the AREF pin (0 to 5V only)
// is used as the reference.
}
void loop() {
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}