Чтение онлайн

на главную

Жанры

Программируем Arduino. Основы работы со скетчами
Шрифт:

Тип данных int не очень хорошо подходит для измерения напряжения, так как представляет только целые числа, а нам было бы желательно видеть также дробную часть. Для этого следует использовать тип данных float.

Загрузите следующий скетч в плату Arduino и затем замкните скрепкой контакты A0 и 3.3V (рис. 1.15).

Рис. 1.15. Соединение контактов A0 и 3.3V

// sketch 01_06_analog

int analogPin = A0;

void setup

{

Serial.begin(9600);

}

void loop

{

int rawReading = analogRead(analogPin);

float volts = rawReading / 204.6;

Serial.println(volts);

delay(1000);

}

Откройте

монитор последовательного порта, и вы должны увидеть поток чисел (рис. 1.16). Числа должны быть близки к значению 3,3.

Рис. 1.16. Вывод значений напряжения

ВНИМАНИЕ

Не замыкайте между собой контакты электропитания (5V, 3.3V и GND). Это может привести к выходу из строя платы Arduino, а может быть, и компьютера.

Если теперь один конец скрепки оставить соединенным с контактом A0, а другой подключить к контакту 5V, числа в мониторе изменятся и будут близки к 5 В. Теперь соедините контакт A0 с контактом GND, и вы увидите числа 0 В.

Аналоговые выходы

Плата Arduino Uno не имеет настоящих аналоговых выходов (такие выходы вы найдете на плате Arduino Due), но она имеет несколько выходов с широтно-импульсной модуляцией (Pulse-Width Modulation, PWM). Они имитируют аналоговые выходы, управляя длительностью импульсов (рис. 1.17).

Рис. 1.17. Широтно-импульсная модуляция

Чем длиннее положительный импульс, тем выше среднее напряжение на выходе. Так как импульсы следуют с частотой 500 раз в секунду, а большинство устройств, которые вам доведется подключать к выходам PWM, не обладают мгновенной реакцией, возникает эффект изменения напряжения.

Контакты, отмеченные на плате Arduino Uno значком ~ (контакты 3, 5, 6, 9, 10 и 11), можно использовать как аналоговые выходы.

Рис. 1.18. Измерение напряжения на выходе

Если у вас есть вольтметр, установите на нем диапазон измерения 0…20 В постоянного тока и подключите положительный щуп к контакту 6, а отрицательный — к контакту GND (рис. 1.18). Затем загрузите следующий скетч.

// sketch 01_07_pwm

int pwmPin = 6;

void setup

{

pinMode(pwmPin, OUTPUT);

Serial.begin(9600);

}

void loop

{

if (Serial.available)

{

int dutyCycle = Serial.parseInt;

analogWrite(pwmPin, dutyCycle);

}

}

Откройте

монитор последовательного порта и введите число в диапазоне от 0 до 255 в текстовое поле в верхней части окна, слева от кнопки Send (Отправить). Затем щелкните на кнопке Send (Отправить) — вы должны увидеть, как на мультиметре изменится напряжение. Если послать число 0, напряжение должно упасть до 0. Отправка числа 127 должна дать середину между 0 и 5 В (2,5 В), а число 255 должно дать напряжение около 5 В.

В этом скетче функция loop начинается с оператора if. Условием для if является результат выполнения команды Serial.available. То есть если монитор последовательного порта получил сообщение, выполняются коман­ды внутри фигурных скобок. В этом случае команда Serial.parseInt преобразует текст сообщения, введенного в окне монитора порта, в значение типа int, которое затем передается как аргумент команде analogWrite для вывода импульсов на контакт.

Использование библиотек

Так как платы Arduino обладают весьма ограниченным объемом памяти, имеет смысл включать в программу, которая в конечном итоге окажется в плате, только тот код, который действительно потребуется. Один из способов добиться этого — использовать библиотеки. В Arduino и вообще в языке C под библиотекой понимается коллекция функций.

Например, Arduino IDE включает библиотеку для работы со светодиодным жидкокристаллическим дисплеем. Она занимает примерно 1,5 Кбайт памяти для программ. Нет никакого смысла подключать эту библиотеку, если она не используется, поэтому такие библиотеки подключаются только при необходимости.

Подключение выполняется добавлением директив #include в начало скетча. Добавить инструкции include для подключения любых библиотек, поставляемых в составе Arduino IDE, можно с помощью пунктов меню Sketch—>Import Library… (Скетч—>Подключить библиотеку).

В состав Arduino IDE входит большая коллекция официальных библиотек, в том числе:

• EEPROM — для сохранения данных в электрически стираемую программируемую постоянную память (ЭСППЗУ) (Electrically Erasable Programmable Read-Only Memory);

• Ethernet — для реализации сетевых взаимодействий;

• Firmata — стандартная библиотека для реализации взаимодействий через последовательный порт;

• LiquidCrystal — для работы с алфавитно-цифровыми жидкокристаллическими дисплеями;

• SD — для чтения и записи данных на карты флеш-памяти;

• Servo — для управления сервоприводами;

• SPI — для реализации взаимодействий по шине последовательного периферийного интерфейса;

• Software Serial — для реализации взаимодействий по последовательным линиям с использованием любых цифровых выходов;

Поделиться:
Популярные книги

Кодекс Крови. Книга Х

Борзых М.
10. РОС: Кодекс Крови
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга Х

Легат

Прокофьев Роман Юрьевич
6. Стеллар
Фантастика:
боевая фантастика
рпг
6.73
рейтинг книги
Легат

Защитник. Второй пояс

Игнатов Михаил Павлович
10. Путь
Фантастика:
фэнтези
5.25
рейтинг книги
Защитник. Второй пояс

Счастье быть нужным

Арниева Юлия
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Счастье быть нужным

Огненный князь 3

Машуков Тимур
3. Багряный восход
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Огненный князь 3

Гром над Академией Часть 3

Машуков Тимур
4. Гром над миром
Фантастика:
фэнтези
5.25
рейтинг книги
Гром над Академией Часть 3

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III

Не отпускаю

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
8.44
рейтинг книги
Не отпускаю

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Приручитель женщин-монстров. Том 4

Дорничев Дмитрий
4. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 4

Кодекс Охотника. Книга XVIII

Винокуров Юрий
18. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVIII

Польская партия

Ланцов Михаил Алексеевич
3. Фрунзе
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Польская партия

Курсант: Назад в СССР 7

Дамиров Рафаэль
7. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 7

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны