Функция analogRead в Ардуино что это

Команда analogRead в Arduino IDE используется для считывания аналогового сигнала с портов, обозначенных на платах Ардуино, как Ananlog In. Используется функция для опроса аналоговых датчиков подключенных к микроконтроллеру, таких как: термистор, фоторезистор, датчик температуры LM35 и т.д. Рассмотрим использование analogRead() в скетче на простом примере с подключением переменного резистора.

Arduino analogRead описание функции

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • светодиод и резистор
  • (потенциометр) переменный резистор
  • макетная плата
  • провода «папа-папа»

Arduino analogRead() считывает значение напряжения на указанном входе. Плата Arduino Uno имеет 6 аналоговых входов, подключенных к 10-битному АЦП (аналогово-цифровому преобразователю). Это означает, что входное напряжение от 0 до 5 Вольт преобразуется в целое цифровое значение от 0 до 1023. В результате разрешение составляет: 5 В / 1024, другими словами, точность измерения составляет 0,0049 В.

Синтаксис функции analogRead() в Arduino IDE

analogRead (pin);

Параметры

pin — номер аналогового входа, который необходимо отслеживать

Схема подключения потенциометра и светодиода
Схема подключения потенциометра и светодиода к Ардуино

В следующем примере подключим потенциометр (переменный резистор) к аналоговому входу A1 Ардуино. При вращении ручки потенциометра будет меняться переменная val, которая будет выводиться на монитор порта Arduino IDE. В зависимости от значения переменной с помощью команды analogWrite будет меняться яркость светодиода, подключенного к пину 10, поддерживающего ШИМ модуляцию.

Arduino analogRead() пример программы

void setup() {
  Serial.begin(9600); // запускаем монитор порта
 
  pinMode(10, OUTPUT); // подключаем светодиод к пин 10
  pinMode(A1, INPUT); // подключаем потенциометр к входу A1
}

void loop() {
  int val = analogRead(A1); // считываем данные с входа A1
  val = val / 4;
  Serial.println(val); // выводим данные на монитор порта
 
  analogWrite(10, val); // меняем яркость светодиода
  delay(100);
}

Пояснения к коду:

  1. аналоговые выводы используются, как входы, по умолчанию. Поэтому не обязательно их конфигурировать с помощью функции pinMode() перед вызовом функции analogRead(), в отличии от команды digitalWrite();
  2. значение с порта A1 (переменная val) выводится на монитор порта.



Примечание. Если оставить аналоговый вход микроконтроллера неподключенным, то значение, возвращаемое функцией analogRead(), может быть рандомным. Значения будут колебаться в зависимости от многих факторов — значение других аналоговых входов, электромагнитные поля и т.д. По умолчанию опорное напряжение составляет 5 Вольт: при необходимости вы можете использовать другое значение.

Заключение. Мы рассмотрели, что означает analogRead в Ардуино языке и показали использование функции analog Read в скетче с потенциометром. Но можно использовать любой другой аналоговый датчик, например, фоторезистор или датчик воды. Аналого-цифровое преобразование (АЦП Ардуино) занимает около 100 мкс, поэтому максимальная частота измерений составляет около 10 000 раз в секунду.



2 Replies to “Функция analogRead() в Ардуино что это, описание”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.