logo
+7 (495) 997-37-74
Москва, ул.Международная, 15






10.05.2019

Аналого-цифровое преобразование

Аналого-цифровое преобразование

На платах Arduino кроме цифровых GPIO контактов есть еще и аналоговые входы, давайте научимся с ними работать. Аналого-цифровое преобразование (АЦП) применяется для конвертирования аналоговых сигналов в дискретные. В этом эксперименте мы научимся пользоваться этой возможностью.

Компоненты

  • Плата Arduino Uno
  • Макетная плата
  • USB кабель
  • Роторный потенциометр
  • Перемычки

АЦП

АЦП, аналого-цифровое преобразование, используется в электронике для преобразования аналоговых сигналов в цифровые. Плата Arduino Uno имеет 10-битные АЦП. Это значит, что разрешение такого АЦП составляет 2^10 = 1024. То есть входное напряжение от 0 до 5 В разбивается на 1024 части. Аналоговый сигнал, попадающий на вход, сравнивается с этими частями и преобразуется в цифровой код от 0 до 1023, как показано на рисунке:

Потенциометр

Потенциометр — это регулируемый делитель напряжения. Представляет собой резистор с подвижным отводным контактом (движком). На рисунке ниже представлен линейный потенциометр и его графическое обозначение на схемах.

Отводной контакт 3 движется между контактами 1 и 2 и меняет напряжение на своём выходе. Если контакт 1 соединить с 0 В, а контакт 2 соединить с 5 В, то напряжение на контакте 3 при движении будет меняться от 0 до 5 В.

Для того чтобы зарегистрировать изменение напряжения на контакте 3 его нужно соединить с аналоговым выводом платы Arduino Uno.

Роторный потенциометр

Функции роторного потенциометра ничем не отличаются от линейного. Отличие только в форме.

Схема

В этом эксперименте мы будем использовать аналоговый вывод A0 для регистрации изменения напряжения на выходе потенциометра.

Соединение компонентов

Напишем скетч, который будет считывать напряжение на входе A0 и передавать его в монитор последовательного порта.

int adcValue;
float voltage;
 
void setup() { 
  Serial.begin(115200);
  Serial.println("UNO is ready!");
} 
 
void loop() { 
  adcValue = analogRead(A0);
  voltage = adcValue * (5.0 / 1023.0);

  Serial.print("convertValue:");
  Serial.println(adcValue);
  Serial.print("Voltage:");
  Serial.println(voltage);

  delay(500); 
} 

Скомпилируйте и загрузите скетч на плату Arduino. Теперь вы можете покрутить ручку потенциометра и увидеть как будут меняться значения АЦП и соответствующее ему напряжение.

 

Предыдущий урок | В начало | Следующий урок