Размер шрифта
-
+

IOT Интернет вещей - стр. 17

– Сообщество и поддержка: Широкое сообщество пользователей Arduino и обширная документация обеспечивают легкость обучения и разработки проектов на базе ATmega328.

Благодаря своей гибкости, производительности и доступности, микроконтроллер ATmega328 стал основой для многочисленных проектов и решений, реализованных с использованием плат Arduino.


3. Порты ввода-вывода (I/O)

Порты ввода-вывода (I/O) на платах Arduino играют ключевую роль в их функциональности, поскольку именно через них осуществляется взаимодействие с внешними устройствами, такими как датчики, светодиоды, реле, сервомоторы и другие исполнительные механизмы. Эти порты делятся на цифровые и аналоговые, каждый из которых имеет свои особенности и предназначение.

Цифровые порты

Цифровые порты используются для работы с устройствами, которые требуют простого включения и выключения (логические уровни 0 и 1). На плате Arduino Uno, например, имеется 14 цифровых I/O-портов, пронумерованных от 0 до 13. Ключевые особенности цифровых портов:

– Цифровой вход: В режиме ввода (input) цифровой порт может считывать состояние внешнего устройства. Например, кнопка, подключенная к цифровому порту, при нажатии будет изменять состояние порта с LOW (низкий уровень) на HIGH (высокий уровень).

– Цифровой выход: В режиме вывода (output) цифровой порт может управлять внешним устройством, например, включать или выключать светодиод.

– ШИМ (Широтно-импульсная модуляция): Некоторые цифровые порты (например, 3, 5, 6, 9, 10 и 11 на Arduino Uno) могут генерировать ШИМ-сигналы, что позволяет управлять интенсивностью светодиодов или скоростью вращения двигателей с использованием аналогоподобных значений.

Пример использования цифрового порта для управления светодиодом:

```cpp

int ledPin = 13; // Пин, к которому подключен светодиод

void setup() {

pinMode(ledPin, OUTPUT); // Установка пина в режим вывода

}

void loop() {

digitalWrite(ledPin, HIGH); // Включение светодиода

delay(1000); // Ожидание 1 секунда

digitalWrite(ledPin, LOW); // Выключение светодиода

delay(1000); // Ожидание 1 секунда

}

```

Аналоговые порты

Аналоговые порты на платах Arduino предназначены для работы с устройствами, которые выдают или принимают непрерывный диапазон значений. Arduino Uno имеет 6 аналоговых входов, пронумерованных от A0 до A5. Основные характеристики аналоговых портов:

– Аналоговый вход: Аналоговые входы могут считывать напряжение от 0 до 5 В и преобразовывать его в цифровое значение от 0 до 1023. Это особенно полезно для работы с датчиками, которые выдают аналоговый сигнал, например, датчиками температуры, освещенности или потенциометрами.

– Аналоговый выход: Arduino не имеет настоящих аналоговых выходов, но с помощью ШИМ можно создать аналогоподобный сигнал. Используя функцию `analogWrite()`, можно задать значение от 0 до 255 для ШИМ-выходов.

Пример использования аналогового порта для считывания значения с потенциометра:

```cpp

int potPin = A0; // Пин, к которому подключен потенциометр

int potValue = 0; // Переменная для хранения значения

void setup() {

Serial.begin(9600); // Инициализация серийного соединения для вывода данных

}

void loop() {

potValue = analogRead(potPin); // Считывание значения с потенциометра

Serial.println(potValue); // Вывод значения в серийный монитор

Страница 17