Подключите один крайний вывод потенциометра к земле, а другой к шине 5 В. Потенциометры симметричны, так что не имеет значения, с какой стороны вы подключите шину питания, а с какой землю. Средний вывод соедините с аналоговым контактом 0 на плате Arduino. Как правильно подключить потенциометр к Arduino, показано на рис. 3.3. При повороте ручки потенциометра аналоговый входной сигнал будет плавно меняться от 0 до 5 В. В этом можно убедиться с помощью мультиметра. Переведите мультиметр в режим измерения напряжения, подсоедините его, как показано на рис. 3.4, и следите за показаниями, поворачивая ручку потенциометра. Красный (положительный) щуп мультиметра должен быть подключен к среднему контакту потенциометра, а черный ( отрицательный) щуп к земле.

ПРИМЕЧАНИЕ

Потенциометр и мультиметр внешне могут выглядеть не так, как показано на рис. 3.4.

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


Рис. 3.3. Подключение потенциометра

Рис. 3.4. Измерение напряжения с помощью мультиметра

- 69 -

Листинг 3.1. Программа чтения данных потенциометра - pot.ino

// Программа чтения данных с потенциометра

const int POT=0; // Аналоговый вход 0 для подключения потенциометра

int val = 0; // Переменная для хранения значения потенциометра


void setup()

{

Serial.begin(9600);

}

void loop()

{

val = analogRead(POT);

Serial.println(val);

delay(500);

}

Подробно функционирование последовательного интерфейса обмена данными мы рассмотрим в последующих главах. А сейчас достаточно знать, что сначала необходимо иициировать последовательное соединение, вызвав функцию Serial.begin(), единственный аргумент которой задает скорость передачи данных в бодах. Скорость передачи данных определяет количество битов, передаваемых в секунду. Высокая скорость передачи позволяет передавать больше данных за меньшее время, но может привести к ошибкам в некоторых системах связи. В наших примерах выбрана скорость 9600 бод.

В каждой итерации цикла переменная val получает аналоговое значение, считанное командой analogRead() с входа, соединенного со средним контактом потенциометра (в нашем случае это вход A0). Далее это значение функция serial.println() выводит в последовательный порт, соединенный с компьютером. Затем следует задержка в полсекунды (чтобы числа выводились не быстрее, чем вы можете их прочитать).

После загрузки на плату Arduino вы заметите, что светодиод тх, расположенный на плате, мигает каждые 500 мс (по крайней мере, так должно быть). Этот индикатор показывает, что плата Arduino передает данные через последовательный USB-интерфейс на компьютер. Для просмотра данных подойдут любые терминальные программы, но в Arduino IDE есть встроенный монитор последовательного порта, для запуска которого нажмите кнопку, обведенную кружком на рис. 3.5.

После запуска монитора последовательного порта на экране компьютера появляется окно с отображением потока передаваемых чисел. Поверните ручку потенциометра, и вы увидите, что выводимые значения меняются. Если повернуть ручку в одном направлении, числа начинают приближаться к 0, если в другом - к 1023.

Пример отображения данных показан на рис. 3.6.

Рис. 3.5. Кнопка запуска монитора последовательного порта

Рис. 3.6. Вывод данных в последовательный порт

- 71 -

ПРИМЕЧАНИЕ

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

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

3.6. Использование аналоговых датчиков


Хотя на контакте потенциометра можно получить значение аналогового напряжения, он на самом деле не является датчиком в традиционном смысле. Потенциометры " чувствуют" лишь поворот ручки, но это не слишком интересно. Но есть настоящие датчики, они выдают значения на аналоговом выходе, соответствующие "реальному" действию. Примеры датчиков: