Arduino: Считывание аналогового сигнала

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

Необходимое оборудование
– Плата Arduino or Genuino
– 10 кОм потенциометр.

Подключение потенциометра
Подключите три проводника от потенциометра к вашей плате. Первый идет от одного из внешних контактов потенциометра к заземлению (Gnd). Второй идет от другого внешнего пина потенциометра до 5 вольт. Третий идет от среднего вывода потенциометра к аналоговому выводу A0.

AnalogReadSerial

Вращая вал потенциометра, вы изменяете сопротивление с обеих сторон токосъёмника, который подключается к центральному выступу потенциометра. Это изменяет напряжение на центральном контакте. Когда сопротивление между центром и стороной, подключенной к 5 вольтам, близко к нулю (а сопротивление на другой стороне близко к 10 кОм), напряжение на центральном контакте приближается к 5 вольтам. Когда сопротивления меняются на противоположные, напряжение на центральном контакте приближается к 0 вольт или заземляется. Это напряжение представляет собой аналоговое напряжение, которое вы читаете как вход.

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

Схема

AnalogReadSerial scheme

Код
В приведенном ниже скетче единственное, что мы делаем в функции setup, это начинаем последовательную связь со скоростью передачи 9600 бит данных в секунду между платой и компьютером с помощью команды:

Serial.begin(9600);

Далее, в главном цикле нашего кода нужно установить переменную, чтобы сохранять значение сопротивления (которое будет находиться между 0 и 1023, идеально для целочисельного типа данных int), поступающее с потенциометра:

int sensorValue = analogRead(A0);

Наконец, yам нужно вывести эту информацию в окне последовательного монитора. Вы можете сделать это с помощью команды Serial.println () в последней строке кода:

Serial.println(sensorValue)

Теперь, когда вы открываете свой монитор последовательного порта в программном обеспечении Arduino (IDE) (щелкая значок, похожий на объектив, справа, в зеленой верхней панели или с помощью сочетания клавиш Ctrl + Shift + M), вы должны увидеть постоянный поток чисел в диапазоне от 0 до 1023, коррелирующий с положением вала потенциометра. Когда вы поворачиваете потенциометр, эти цифры будут реагировать почти мгновенно.

/*
  AnalogReadSerial

  Reads an analog input on pin 0, prints the result to the Serial Monitor.
  Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/AnalogReadSerial
*/

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(1);        // delay in between reads for stability
}

Источник: https://www.arduino.cc/en/Tutorial/AnalogReadSerial

Оставьте комментарий

Your email address will not be published. Required fields are marked *

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