Arduino:Примеры/ReadAnalogVoltage: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 1: | Строка 1: | ||
{{Arduino панель перехода}} | {{Arduino панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
Строка 30: | Строка 29: | ||
Перво-наперво нужно при помощи функции [[Arduino:Справочник языка Arduino/setup()|setup()]] запустить последовательную передачу данных между платой [[Arduino]] и вашим [[компьютер]]ом со скоростью '''9600 бит в секунду''': | Перво-наперво нужно при помощи функции [[Arduino:Справочник языка Arduino/setup()|setup()]] запустить последовательную передачу данных между платой [[Arduino]] и вашим [[компьютер]]ом со скоростью '''9600 бит в секунду''': | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
Serial.begin(9600); | Serial.begin(9600); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 36: | Строка 35: | ||
Далее перемещаемся к секции главного цикла. Вам нужно задать переменную, которая будет сохранять значение сопротивления (варьирующегося '''от 0 до 1023'''; идеальный тип данных для этого случая – [[Arduino:Справочник языка Arduino/Типы данных/int|int]]), идущего от вашего [[потенциометр]]а: | Далее перемещаемся к секции главного цикла. Вам нужно задать переменную, которая будет сохранять значение сопротивления (варьирующегося '''от 0 до 1023'''; идеальный тип данных для этого случая – [[Arduino:Справочник языка Arduino/Типы данных/int|int]]), идущего от вашего [[потенциометр]]а: | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
int sensorValue = analogRead(A0); | int sensorValue = analogRead(A0); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 42: | Строка 41: | ||
Чтобы поток с цифрами '''от 0 до 1023''' соответствовал напряжению, которое считывается на контакте, вам нужно создать еще одну, ''«плавающую»'' переменную ([[Arduino:Справочник языка Arduino/Типы данных/float|float]]), а вместе с ней – формулу. Чтобы создать диапазон цифр '''от 0.0 до 5.0''', поделите '''5.0 на 1023.0''', а затем умножьте это на '''sensorValue'''. | Чтобы поток с цифрами '''от 0 до 1023''' соответствовал напряжению, которое считывается на контакте, вам нужно создать еще одну, ''«плавающую»'' переменную ([[Arduino:Справочник языка Arduino/Типы данных/float|float]]), а вместе с ней – формулу. Чтобы создать диапазон цифр '''от 0.0 до 5.0''', поделите '''5.0 на 1023.0''', а затем умножьте это на '''sensorValue'''. | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
float voltage= sensorValue * (5.0 / 1023.0); | float voltage= sensorValue * (5.0 / 1023.0); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 48: | Строка 47: | ||
И, наконец, вам нужно вывести эту информацию в меню '''Serial Monitor'''. Это можно сделать при помощи команды [[Arduino:Справочник языка Arduino/Функции/Функции передачи данных/Serial/println()|Serial.println()]] в последней строчке программы: | И, наконец, вам нужно вывести эту информацию в меню '''Serial Monitor'''. Это можно сделать при помощи команды [[Arduino:Справочник языка Arduino/Функции/Функции передачи данных/Serial/println()|Serial.println()]] в последней строчке программы: | ||
<syntaxhighlight lang="c | <syntaxhighlight lang="c"> | ||
Serial.println(voltage) | Serial.println(voltage) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 54: | Строка 53: | ||
Теперь, когда вы откроете окно '''Serial Monitor''' в среде разработки [[Arduino]] (нажав на кнопку, находящуюся справа от кнопки '''Upload''' вверху программы), то увидите непрерывный поток цифр, варьирующихся от '''0.0 до 5.0'''. Если повернуть ручку [[потенциометр]]а, цифры в этом потоке изменятся, отображая уровень напряжения, подаваемого на '''0-ой''' аналоговый входной контакт [[Arduino]]. | Теперь, когда вы откроете окно '''Serial Monitor''' в среде разработки [[Arduino]] (нажав на кнопку, находящуюся справа от кнопки '''Upload''' вверху программы), то увидите непрерывный поток цифр, варьирующихся от '''0.0 до 5.0'''. Если повернуть ручку [[потенциометр]]а, цифры в этом потоке изменятся, отображая уровень напряжения, подаваемого на '''0-ой''' аналоговый входной контакт [[Arduino]]. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Считывание напряжения, проходящего через аналоговый контакт | Считывание напряжения, проходящего через аналоговый контакт |
Текущая версия от 18:26, 2 сентября 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Считывание напряжения, проходящего через аналоговый контакт [1]
Данный пример показывает, как считывать данные с аналогового входа на 0-вом контакте Arduino, конвертировать их в напряжение при помощи функции analogRead(), а затем отображать в меню Serial Monitor («Мониторинг последовательной передачи данных»).
Необходимое оборудование
- Плата Arduino - 1шт.
- Потенциометр на 10 кОм - 1шт.
Цепь
Соедините потенциометр и Arduino при помощи трех проводов. Первый пойдет от «земли» на Arduino к одному из крайних выходных контактов на потенциометре. Второй – от 5-вольтовго контакта на Arduino ко второму крайнему выходу на потенциометре. Третий – от 0-го аналогового входного контакта на Arduino к центральному (среднему) контакту потенциометра. Поворачивая ручку потенциометра, вы меняете уровень сопротивления какой-либо из сторон движка, подсоединенного к центральному контакту потенциометра. Это, в свою очередь, меняет напряжение на центральном контакте потенциометра. Когда уровень сопротивления между центральным и боковым (тем, что подключен к 5-вольтовому контакту на Arduino) контактами приближается к 0 Ом (а сопротивление с другой стороны, соответственно, – к 10 кОм), значение напряжения у центрального контакта приближается к 5 вольтам. Если сделать все наоборот (повернуть ручку потенциометра к другому крайнему контакту), напряжение у центрального контакта потенциометра приблизится к 0 вольт. Таким образом, это напряжение является аналоговым напряжением – тем, которое вы будете считывать как входное.
В плату Arduino уже встроен аналогово-цифровой преобразователь (АЦП), который считывает меняющееся напряжение и преобразовывает его в цифры от 0 до 1023. Если ручку потенциометра повернуть в одном направлении, на него не будет подано ни одного вольта, а входное значение будет равно 0. Но если ручку потенциометра повернуть в противоположном направлении, на контакт будет подано 5 вольт, а входное значение будет равно 1023. Тут пригодится функция analogRead(), которая будет считывать уровень напряжения, подаваемого на входной контакт, и присваивать ему цифру от 0 до 1023.
Схема
Код
Перво-наперво нужно при помощи функции setup() запустить последовательную передачу данных между платой Arduino и вашим компьютером со скоростью 9600 бит в секунду:
Serial.begin(9600);
Далее перемещаемся к секции главного цикла. Вам нужно задать переменную, которая будет сохранять значение сопротивления (варьирующегося от 0 до 1023; идеальный тип данных для этого случая – int), идущего от вашего потенциометра:
int sensorValue = analogRead(A0);
Чтобы поток с цифрами от 0 до 1023 соответствовал напряжению, которое считывается на контакте, вам нужно создать еще одну, «плавающую» переменную (float), а вместе с ней – формулу. Чтобы создать диапазон цифр от 0.0 до 5.0, поделите 5.0 на 1023.0, а затем умножьте это на sensorValue.
float voltage= sensorValue * (5.0 / 1023.0);
И, наконец, вам нужно вывести эту информацию в меню Serial Monitor. Это можно сделать при помощи команды Serial.println() в последней строчке программы:
Serial.println(voltage)
Теперь, когда вы откроете окно Serial Monitor в среде разработки Arduino (нажав на кнопку, находящуюся справа от кнопки Upload вверху программы), то увидите непрерывный поток цифр, варьирующихся от 0.0 до 5.0. Если повернуть ручку потенциометра, цифры в этом потоке изменятся, отображая уровень напряжения, подаваемого на 0-ой аналоговый входной контакт Arduino.
/*
Считывание напряжения, проходящего через аналоговый контакт
Считывает данные с 0-го входного контакта, конвертирует их в напряжение, а затем отображает результат в меню Serial Monitor.
Подсоединяем центральный контакт потенциометра к 0-му контакту, боковые контакты потенциометра – к «земле» и 5-вольтовому контакту.
Данный пример кода не защищен авторским правом.
*/
// эта функция запускается один раз – при рестарте:
void setup() {
// инициализируем последовательную передачу данных со скоростью 9600 бит в секунду:
Serial.begin(9600);
}
// этот цикл, запустившись, будет повторятся снова и снова:
void loop() {
// считываем входную информацию на 0-ом аналоговом контакте:
int sensorValue = analogRead(A0);
// конвертируем информацию, считанную на 0-ом аналоговом контакте (цифры в диапазоне от 0 до 1023), в напряжение (цифры в диапазоне от 0.0 до 5.0 вольт):
float voltage = sensorValue * (5.0 / 1023.0);
// отображаем считанные и преобразованные данные:
Serial.println(voltage);
}
См.также
- setup()
- loop()
- analogRead()
- int
- Serial
- float
- BareMinimum
- Blink
- DigitalReadSerial
- AnalogReadSerial
- Fade
- ReadAnalogVoltage
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino
- Setup()
- Setup
- Void
- Serial.begin(9600)
- Serial
- Serial.begin
- Serial.begin()
- Loop
- Loop()
- AnalogRead(A0)
- AnalogRead
- AnalogRead()
- Serial.println()
- Serial.println
- Println