Проект 15: считывание аналоговых значений


Введение

В данном эксперименте мы начнём изучение аналоговых интерфейсов входа/выхода. Платы Arduino оснащены шестью аналоговыми входами/выходами с номерами от 0 до 5. Эти шесть входов/выходов можно использовать и как цифровые, в таком случае они получают нумерацию от 14 до 19 соответственно. Перед рассмотрением практических аспектов отметим, что в данном проекте будет использоваться потенциометр – типичное устройство, используемое для получения аналоговых значений, которые впоследствии можно считать.

Проект 15: считывание аналоговых значений

Необходимое оборудование:

1) потенциометр – 1 шт;

2) макетная плата – 1 шт;

3) соединительные провода – несколько шт.

Подключение компонентов

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

Компоненты подключаются следующим образом:

Подключение компонентов при использовании платы UNO R3:

(картинка сломана)

Подключение компонентов при использовании платы 2560 R3:

Проект 15: считывание аналоговых значений

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

Программа-пример

Код программы относительно прост. Функция analogRead () позволяет считать аналоговое значение из входа/выхода. Плата Arduino 328 оснащена 10-битным аналого-цифровым преобразователем, позволяющим считывать значения от 0 до 1023. Ключевой задачей данного проекта является отображение полученного значения на экране, чему можно довольно легко научиться. В первую очередь необходимо установить скорость передачи данных (в бодах) в функции void setup (). Отображение значения на экране требует обмена информацией между Arduino и персональным компьютером, поэтому важно выбрать такую скорость передачи данных, которая соответствовала бы используемой в программном обеспечении ПК. Иначе значения либо будут отображаться в виде нечитаемых кодов, либо не выводиться на экран вовсе. В ПО Arduino скорость передачи данных можно установить, нажав на соответствующую кнопку в правом нижнем углу окна “монитор порта”. Как уже было сказано ранее, выбранная в ПО Arduino скорость передачи данных должна соответствовать таковой, установленной в коде программы с помощью команды Serial.begin (скорость в бодах). Наконец, считанное аналоговое значение можно вывести на экран с помощью функций Serial.print () или Serial.println ().

//////////////////////////////////////////////////////////

int potpin=0;// инициализация аналогового входа/выхода 0

int ledpin=13;// инициализация цифрового входа/выхода 13

int val=0;// определение переменной val и присвоение ей начального значения 0

void setup()

{

pinMode(ledpin,OUTPUT);// цифровой интерфейс (pin) используется в качестве //выхода

Serial.begin(9600);// задание скорости передачи данных (бод) на уровне ”9600”

}

void loop()

{

digitalWrite(ledpin,HIGH);// включение светодиода на выходе 13

delay(50);// задержка в 0,05 секунды

digitalWrite(ledpin,LOW);// выключение светодиода на выходе 13

delay(50);// задержка в 0,05 секунды

val=analogRead(potpin);// считывание аналогового значения из аналогового входа 0 // и его присвоение переменной val

Serial.println(val);// вывод значения переменной val на экран

}

//////////////////////////////////////////////////////////

Результат выполнения

При выполнении программы, код которой представлен выше, используется встроенный во вход/выход 13 светодиод. Каждый раз, когда устройство считывает аналоговое значение, светодиод мигает. Если повернуть ручку потенциометра, значения, выводимые на экран, изменятся.

Проект 15: считывание аналоговых значений

Операция считывания аналоговых значений используется очень часто, поскольку подавляющее большинство датчиков подают на выход именно аналоговое значение. Описанная в данном проекте программа позволяет выполнить такую операцию.