На главную страницу | Новости | FAQ | Ссылки | Для детей | Контакты
Рассмотрены различные режимы работы выводов платы Arduino и функции языка C++ для работы с этими выводами (пинами)
pinMode(pin, mode); -- установка вывода pin на вход (INPUT) либо выход (OUTPUT)
По умолчанию цифровые выводы в Arduino предустановлены на вход, так что их нет нужды явно объявлять как INPUT с помощью pinMode().
Выводы, сконфигурированные как INPUT, подразумеваются в состоянии с высоким импедансом (сопротивлением).
Если на порт ввода не поступает сигнал, то рекомендуется задать порту известное состояние. Это делается добавлением подтягивающих резисторов 10 кОм, подключающих вход либо к питанию +5 В, либо к земле.
Микроконтроллер ATmega имеет программируемые встроенные подтягивающие резисторы 20 кОм. Программирование данных резисторов осуществляется так:
pinMode(pin, INPUT); // назначить выводу пот ввода ( )
digitalWrite(pin, HIGH); // включить подтягивающий резистор
Выводы, сконфигурированные как порты вывода находятся в низкоимпедансном состоянии. Данные выводы могут пропускать через себя достаточно большой ток. Выводы микросхемы ATmega могут быть источником тока до 40 мА.
digitalRead(pin) -- Считывает значение заданного цифрового вывода (pin) и возвращает результат HIGH (=1) или LOW (=0). Вывод должен быть задан либо как переменная, либо как константа (0-13).
digitalWrite(pin, value); -- задает либо логический уровень HIGH, либо LOW (включает или выключает) на заданном цифровом выводе pin.
Пример:
int pinLED = 2;
void setup() {
// Инициализируем цифровой вход/выход в режиме выхода.
pinMode(pinLED, OUTPUT);
}
void loop() {
digitalWrite(pinLED, HIGH); // зажигаем светодиод
delay(1000); // ждем секунду
digitalWrite(pinLED, LOW); // выключаем светодиод
delay(1000); // ждем секунду
}
analogRead(pin) -- cчитывает значение из заданного аналогового входа (pin) с 10-битовым разрешением. Эта функция работает только на аналоговых портах (0-5). Результирующее целое значение находится в диапазоне от 0 до 1023.
Аналоговые выводы не похожи на цифровые, и нет необходимости предварительно объявлять их как INPUT или OUTPUT (если только вы не планируете использовать их в качестве цифровых портов 14-18).
analogWrite(pin, value) , где value=0-255, -- записывает псевдо-аналоговое значение, используя схему с широтно-импульсной модуляцией (ШИМ, PWM), на выходной вывод, помеченный как PWM. На новом модуле Arduino с ATmega168 (328), эта функция работает на выводах 3.
Аналоговые входы (номера от 14 до 19) также могут использоваться как цифровые выводы портов ввода/вывода:
pinMode(14, OUTPUT);
digitalWrite(14, HIGH);
Выводы аналоговые входов имеют подтягивающие резисторы работающие как на цифровых выводах. Включение резисторов производится командой
digitalWrite(14, HIGH); // включить резистор на выводе аналогового входа 0
пока вывод работает как порт ввода.
После работы аналогового входа в цифровом режиме может потребоваться настроить паузу между чтением функцией analogRead() других входов.
Выводы питания:
1) VIN. Вход используется для подачи питания от внешнего источника (в отсутствие 5 В от разъема USB или другого регулируемого источника питания). Подача напряжения питания происходит через данный вывод.
Входное напряжение (рекомендуемое): 7-12 В.
Входное напряжение (предельное): 6-20 В.
2) 5V. Регулируемый источник напряжения, используемый для питания микроконтроллера и компонентов на плате. Питание может подаваться от вывода VIN через регулятор напряжения, или от разъема USB, или другого регулируемого источника напряжения 5 В.
Постоянный ток через вход/выход 40 мА
Постоянный ток для вывода 3.3 В 50 мА
Now 21.11.24 15:58:12, Your IP: 13.59.87.145; arduino.zl3p.com/basic/input-output
ePN