Разместить заказ
Вы будете перенаправлены на Автор24

Язык программирования Ардуино

8-800-775-03-30 support@author24.ru
Статья предоставлена специалистами сервиса Автор24
Автор24 - это сообщество учителей и преподавателей, к которым можно обратиться за помощью с выполнением учебных работ.
как работает сервис
Язык программирования Ардуино

Контроллеры Arduino

Определение 1

Arduino - семейство контроллеров (программируемых электронных плат) для домашнего технического творчества. С их помощью можно создавать элементы "умного дома", несложных роботов и другие автоматизированные устройства. Arduino активно используется и в образовательных целях как средство обучения основам программирования и робототехники.

Контроллеры Arduino выпускаются в различных конфигурациях, в зависимости от требуемых характеристик. Некоторые применяют для управления сложными системами (Arduino Mega), некоторые - для компактных устройств, вплоть до встраиваемых в одежду (Arduino Nano).

Помимо контроллеров, производители электроники предлагают на рынке множество дополнительных модулей, совместимых с Arduino: датчиков освещенности, влажности, инфракрасных считывателей и излучателей, реле, моторов, табло и т.п. Такие устройства подключаются к контроллеру через пины - выводы платы, к которым можно подсоединить провода. Пины могут работать в режиме входа (считывают показания датчиков) или выхода (например, для включения реле). Через аналоговые пины можно считывать диапазоны значений (например, при измерении температуры).

Помощь со студенческой работой на тему
Язык программирования Ардуино

Контроллер Arduino и подключаемые к нему устройства. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Контроллер Arduino и подключаемые к нему устройства. Автор24 — интернет-биржа студенческих работ

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

В Сети существует обширное комьюнити, поддерживающее разработчиков. Производители Arduino сопровождают свою продукцию подробной онлайн-документацией.

Arduino IDE

Для разработки программ, загружаемых в контроллеры Arduino, используется специальное программное обеспечение (IDE), которое можно скачать с сайта производителя.

Замечание 1

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

Arduino IDE написана на кроссплатформенном языке Java, поэтому ее легко установить на любую современную настольную операционную систему (Windows, Linux, MacOS). IDE комплектуется большим количеством примеров и программных библиотек. Недостающие библиотеки легко загрузить через Интернет.

Соединив свою плату-контроллер с компьютером с помощью USB-кабеля, можно загружать в нее скетчи. Перед загрузкой IDE проверяет скетчи на наличие ошибок. В отладочных целях она оснащена терминалом, позволяющим компьютеру обмениваться сообщениями с контроллером.

Скетч, открытый в Arduino IDE. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Скетч, открытый в Arduino IDE. Автор24 — интернет-биржа студенческих работ

Язык программирования для Arduino

Язык программирования, на котором пишутся скетчи для Arduino, с точки зрения синтаксиса принадлежит к классу Си-подобных.

Замечание 2

Некоторые компании, продающие платы Arduino, занимаются разработкой собственного ПО для создания скетчей. Так, российская компания Amperka предоставляет IDE для программирования Arduino на языке JavaScript.

Скетч состоит из следующих стандартных блоков:

  • объявление переменных и импорт необходимых библиотек;
  • блок начальной инициализации (функция setup);
  • повторяющийся блок (функция loop);
  • дополнительные функции, которые программист создает самостоятельно.

Переменные в Arduino обладают строгой типизацией, совместимой с некоторыми реализациями Си:

  • boolean - для логических значений true/false;
  • byte - 8 бит, целое число от 0 до 255;
  • char - 8 бит, целое в диапазоне от -128 до 127;
  • word - 2 байта, целое от 0 до 65535
  • int - 2 байта, целое от -32768 до 32767;
  • unsigned long - 32 бита, целое от 0 до 4294967295;
  • long - 32 бита, целое от -2,147,483,648 до 2,147,483,647;
  • float - 32 бита, дробное число (с плавающей точкой) в диапазоне от -3.4028235E38 до 3.4028235E38.

Кроме того, скетч может содержать комментарии, инструкции #define и т.п.

Функция setup выполняется один раз, в момент запуска программы. В ней обычно настраиваются режимы работы пинов, устанавливаются свойства библиотек. По окончании работы она передает управление функции loop, повторяющейся в бесконечном цикле до тех пор, пока контроллер не будет обесточен или не произойдет какая-нибудь авария. При каждой итерации этого цикла контроллер опрашивает пины по запрограммированному в скетче алгоритму, взаимодействует с устройствами по шинам I2C, RS-232 и т.п.

Рассмотрим некоторые наиболее распространенные встроенные функции Arduino:

  • pinMode() - устанавливает режим пина (INPUT/OUTPUT);
  • digitalWrite() - подает на пин высокий или низкий уровень напряжения;
  • digitalRead() - считывает с входа уровень сигнала (высокий или низкий);
  • analogRead() - считывает аналоговый сигнал в виде числа от 0 до 1024;
  • tone() - подает звуковой сигнал (предполагается, что к пину подключен динамик);
  • noTone() - прекращает звуковой сигнал;
  • millis() - возвращает время работы устройства в миллисекундах, прошедшее с момента включения устройства;
  • delay() - приостанавливает работу устройства;
  • Serial.print() - отправляет информацию в терминальное окно IDE.

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

Пример скетча для Arduino

int buzzer = 9; // К пину №9 будет подключен динамик-пищалка.
int smoke = A0; // К аналоговому пину A0 будет подключен датчик задымления.
int sensorThres = 100; // Порог срабатывания (при превышении этого значения подать звуковой сигнал).

void setup() {
 pinMode(buzzer, OUTPUT);
 pinMode(smoke, INPUT);
 tone(buzzer, 1000, 200); // Подаем звуковой сигнал в момент запуска программы.
 Serial.begin(9600); // Для отладки подготавливаем терминал IDE.
}

void loop() {
 int analogSensor = analogRead(smokeA0); // Считываем сигнал с датчика.
 Serial.print("Pin A0: ");
 Serial.println(analogSensor); // Отправляем данные на ПК.
 if (analogSensor > sensorThres) { // Если превышен порог:
 tone(buzzer, 1000, 500); // подаем звуковой сигнал.
 }
 else { // В противном случае
 noTone(buzzer); // выключаем звук.
 }
 delay(1000); // Приостанавливаем процесс на 1 секунду.
}