Чтение аналогового сигнала и вывод его значения на экран
В этом примере с помощью потенциометра показывается как считывать аналоговые сигналы, которые распространены в реальном мире.
Потенциометр – простое механическое устройство, которое изменяет сопротивление при повороте его вала. С помощью потенциометра можно менять напряжение, которое подается на аналоговый вход Arduino. В этом примере вы будете изменять состояние потенциометра и наблюдать за изменениями на экране ПК, к которому подсоединен ваш Arduino.
Аппаратное обеспечение:
- плата Arduino
- потенциометр 10 кОм
Электрическая цепь:
Присоедините три провода от потенциометра к вашему Arduino. Один из крайних выводов потенциометра соедините с землей (GND) Arduino. Второй крайний вывод потенциометра соедините с 5 вольтовым выходом Arduino. Третьим соедините аналоговый вход 0 и средний вывод потенциометра.
При вращении вала потенциометра, можно изменять сопротивление по обе стороны от центрального вывода. Это приводит к изменению напряжения на центральном выводе. Когда напряжение между центральным выводом и выводом подключенным к 5 вольтам близится к нулю (а сопротивление с другой стороны близится к 10 кОм), напряжение на центральном выводе приближается к 5 вольтам. Если повернуть ручку в другую сторону, то сопротивления поменяются местами и напряжение на центральном контакте приблизится к 0 вольт. Это напряжение является аналоговым сигналом который мы будем считывать аналоговым входом.
Arduino имеет встроенный аналого-цифровой преобразователь, который считывает значения напряжения и преобразовывает их в числа от 0 до 1023.
Если ручка потенциометра повернута до упора в одну сторону, то на вход подается 0 вольт и входное значение равно 0. Если ручка потенциометра повернута до упора в другую сторону, то на вывод подается 5 вольт и входное значение равно 1023. В промежуточных положениях ручки analogRead() возвращает число между 0 и 1023, которое пропорционально напряжению на среднем выводе.
Схема:
Код:
В данной программе, единственное что нужно сделать в функции установки - начать последовательную передачу между Arduino и ПК со скоростью 9600 бит данных в секунду командой:
Serial.begin(9600);
Далее, в основном цикле программы, вы должны создать переменную для хранения значения напряжения (которая может изменятся от 0 до 1023, лучше всего подойдет тип int) которое приходит с потенциометра.
int sensorValue = analogRead(A0);
Наконец, вам нужно наблюдать эту информацию на мониторе в виде десятичных (DEC) значений. Вы можете сделать это с помощью команды Serial.Println() с помощью следующей строки кода:
Serial.println(sensorValue, DEC)
Теперь, открыв Serial Monitor в вашей среде Arduino, вы можете увидеть поток цифр от нуля до 1023, соответствующих положению ручки потенциометра. Если вы повернете ручку эти показания изменятся практически мгновенно.
Полный текст программы:
/*
AnalogReadSerial
Считывает аналоговые значения с вывода 0, выводит значения на монитор.
Соедините центральный вывод потенциометра и A0, а крайние выводы присоедините к +5V и земле.
*/
// установки:
void setup() {
// инициализируем последовательную передачу данных со скоростью 9600 бит в секунду:
Serial.begin(9600);
}
// основной цикл:
void loop() {
// читаем значение на аналоговом входе 0:
int sensorValue = analogRead(A0);
// выводим на монитор считанное значение:
Serial.println(sensorValue);
delay(1); // задержка в промежутке между считываниями для стабильности
}
Собирайте arduino своими руками - полный каталог плат