В этом примере показано, как считывать аналоговый ввод из физического мира с помощью потенциометра. Потенциометр - это простое механическое устройство, которое обеспечивает переменную величину сопротивления при повороте его вала. Передавая напряжение через потенциометр на аналоговый вход на вашей плате, можно измерить величину сопротивления, создаваемого потенциометром (сокращенно pot), в виде аналогового значения. В этом примере вы будете отслеживать состояние вашего потенциометра после установления последовательной связи между вашим Arduino и вашим компьютером, на котором запущено программное обеспечение Arduino (IDE).
Требуется аппаратное обеспечение
-
Плата Arduino
-
Потенциометр 10 ком
Схема
Подключите три провода от потенциометра к вашей плате. Первый идет от одного из внешних контактов потенциометра к заземлению. Второе напряжение подается с другого внешнего вывода потенциометра на 5 вольт. Третий идет от среднего вывода потенциометра к аналоговому выводу A0.
Поворачивая вал потенциометра, вы изменяете величину сопротивления с обеих сторон стеклоочистителя, который подключен к центральному контакту потенциометра. Это изменяет напряжение на центральном выводе. Когда сопротивление между центром и стороной, подключенной к 5 вольтам, близко к нулю (а сопротивление на другой стороне близко к 10 ком Ом), напряжение на центральном выводе приближается к 5 вольтам. Когда сопротивления меняются на противоположные, напряжение на центральном выводе приближается к 0 Вольт, или к земле. Это аналоговое напряжение, которое вы считываете как входное.
Платы Arduino имеют внутри схему, называемую аналого-цифровым преобразователем или АЦП, которая считывает это изменяющееся напряжение и преобразует его в число от 0 до 1023. Когда вал полностью повернут в одном направлении, на вывод поступает 0 вольт, а входное значение равно 0. Когда вал поворачивается до упора в противоположном направлении, на вывод подается напряжение 5 Вольт, а входное значение равно 1023. Между ними, analogRead() возвращает число от 0 до 1023, которое пропорционально величине напряжения, подаваемого на вывод.
Схема
Код
На приведенном ниже рисунке единственное, что вы делаете в функции настройки, - это начинаете последовательный обмен данными со скоростью 9600 бит данных в секунду между вашей платой и вашим компьютером с помощью команды:
Serial.begin(9600);
Далее, в основном цикле вашего кода, вам нужно установить переменную для хранения значения сопротивления (которое будет между 0 и 1023, идеально подходит для
int
тип данных), поступающий с вашего потенциометра:
int sensorValue = analogRead(A0);
Наконец, вам нужно распечатать эту информацию в окне вашего последовательного монитора. Вы можете сделать это с помощью команды 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.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/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
}