Разделы инструкций

В сети

Пользователей: 163
Из них просматривают:
Аналоги: 57. Видео: 1. Даташиты: 60. Инструкции: 2. Новости: 5. Остальное: 9. Партнёры: 1. Программы: 1. Профиль пользователя: 1. Форум: 26.
Участников: 2
Гостей: 161

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Оглавление

Функция analogRead()

Функция считывает значение с указанного аналогового входа. Большинство плат Arduino имеют 6 каналов (8 каналов у платы Mini и Nano, 16 — у Mega) c 10-битным аналого-цифровым преобразователем (АЦП). Напряжение, поданное на аналоговый вход (обычно от 0 до 5 вольт), будет преобразовано в значение от 0 до 1023 — это 1024 шага с разрешением 0,0049 вольт. Разброс напряжения и шаг может быть изменен функцией analogReference(). Считывание значения с аналогового входа занимает примерно 100 микросекунд (0,0001 сек), т. е. максимальная частота считывания приблизительно 10 000 раз в секунду.

Синтаксис:
analogRead(pin);
 
Параметр:

pin — номер порта аналогового входа, с которого будет производиться считывание: 0..5 для большинства плат, 0..7 для Mini и Nano и 0..15 для Mega.
 
Возвращаемое значение

int (0 to 1023).

Примечание
Если аналоговый вход не подключен, то значения, возвращаемые функцией analogRead(), могут принимать случайные значения.
 

Пример .

int analogPin = 3; // номер порта, к которому подключен потенциометр
int val = 0; // переменная для хранения считываемого значения

void setup()
{
Serial.begin(9600); // установка связи по serial
}

void loop()
{
val = analogRead(analogPin); // считываем значение
Serial.println(val); // выводим полученное значение
}

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити
Kosmonavt
Отправлено: 16.02.2019 23:31  Обновлено: 16.02.2019 23:41
Главный Инженер
Дата регистрации: 08.02.2009
Откуда:
Сообщений: 1965
 Функция analogRead()
Монитор порта, при изменении сопротивления переменного резистора 20 кОм, выдаёт числа от 2 до 903 (из-за дополнительных токоограничивающих резисторов по 100 Ом). Если, например, оставить потенциометр в среднее положение, то выдаёт разные числа, но в пределах 484 - 488. Значит ли это, что на аналоговый вход влияют помехи из вне, потому и значения не чётко постоянные?
MACTEP
Отправлено: 16.02.2019 23:39  Обновлено: 16.02.2019 23:43
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 6903
 Функция analogRead()
Ну как минимум, плавает питание. плавает всего на 4 цифры, это 20мВ. А с помехами бороться просто. Конденсатор по входу.
Да и у резистора может быть плохой контакт движка...
Kosmonavt
Отправлено: 16.02.2019 23:54  Обновлено: 16.02.2019 23:55
Главный Инженер
Дата регистрации: 08.02.2009
Откуда:
Сообщений: 1965
 Функция analogRead()
Конденсатор отлично помог! 470 мкФ параллельно резистору дало значения в пределах 455-456 и это уже радует. Питание получаю от USB 2.0 порта компьютера. А вообще диапазон получаемых значений (от 0 до 1023) впечатляет.
MACTEP
Отправлено: 17.02.2019 1:16  Обновлено: 17.02.2019 1:16
Администратор
Дата регистрации: 07.08.2008
Откуда: Тирасполь
Сообщений: 6903
 Функция analogRead()
Для проводимых тестов с проверкой питания по входам все таки лучше использовать отдельное питание, так как USB дает слабый выход. На старом моем компе ардуина даже не запускалась. На новом запускается.

Разное

Если у вас нет жидкого канифольного флюса, его легко изготовить самостоятельно.
В небольшом количестве спирта растворяют кусочки канифоли до образования темно-коричневой жидкости. Наносят такой флюс на место пайки кисточкой.

Интересно

Во время ремонта телевизора не ставьте настольную лампу на его корпус.
Она обязательно упадёт и отобьёт горловину кинескопа.

Похожие инструкции