Arduino:Основы/Входные аналоговые контакты: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 45: | Строка 45: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Портал/Arduino}} |
Текущая версия от 12:32, 8 июля 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Входные аналоговые контакты[1]
Здесь рассказывается о входных аналоговых контактах на микроконтроллерах, которыми оснащаются платы Arduino (ATmega8, ATmega168, ATmega328 и ATmega1280).
Аналогово-цифровой преобразователь
Микроконтроллеры ATmega для плат Arduino содержат встроенный 6-канальный аналогово-цифровой преобразователь (АЦП). Этот конвертер имеет 10-битное разрешение, т.е. возвращает целочисленные значения в диапазоне от «0» до «1023». Хотя главная функция входных аналоговых контактов на Arduino – это считывание данных с аналоговых датчиков, они также оснащены всем необходимым функционалом для GPIO-контакта (т.е. для входного/выходного контакта общего пользования), коим являются цифровые контакты с 0 по 13.
Следовательно, если пользователю нужно больше GPIO-контактов, а входные аналоговые контакты не используются, то их можно спокойно использовать в качестве GPIO-контактов.
Распиновка
Аналоговые контакты используются идентично цифровым контактам – при помощи псевдонимов A0 (входной аналоговый контакт номер «0»), A1 и т.д. К примеру, чтобы выставить аналоговый контакт в режим OUTPUT и задать ему значение HIGH, нужно будет написать в коде следующее:
pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH);
Подтягивающие резисторы
Аналоговые контакты также оснащены подтягивающими резисторами, которые работают аналогично подтягивающим резисторам на цифровых контактах. Они включаются следующей командой...
digitalWrite(A0, HIGH); // включаем подтягивающий резистор на аналоговом контакте 0
...но в это время контакт должен находиться в режиме INPUT.
Однако стоит иметь в виду, что включение подтягивающего резистора повлияет на данные, возвращаемые функцией analogRead().
Возможные проблемы
Функция analogRead() будет работать некорректно, если ранее контакт, данные с которого она считывает, был выставлен в режим OUTPUT. В таком случае перед использованием analogRead() выставьте этот контакт в режим INPUT. Аналогично, если контакту были заданы режим OUTPUT и значение HIGH, то при переключении обратно в режим INPUT будет включен подтягивающий резистор.
Даташит ATmega также предостерегает против быстрого переключения между аналоговыми контактами, чтобы прочитать с них данные при помощи analogRead(). Это может стать причиной электрического шума, из-за чего в аналоговой системе может появиться так называемый «дребезг». Исправить это можно небольшой задержкой, которую нужно вставить после манипуляции с аналоговыми контактами (в цифровом режиме) и до использования функции analogRead(), считывающей данные с других аналоговых контактов.
См.также
Внешние ссылки
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.
|
Клавиатура |
|
Мышь |
|
Разное |