Язык программирования Arduino: Развенчиваем мифы

Язык программирования Arduino: Развенчиваем мифы

Разбираемся, на каком языке на самом деле пишут для Arduino и ESP32. Чем Arduino C++ отличается от стандартного и почему это важно знать.

Основы

Вернуться в блог

Многие считают, что существует специальный «язык Arduino». На самом деле всё немного проще и интереснее: под капотом скрывается мощный C++, заботливо обернутый в удобную оболочку для новичков.

Arduino Programming Language
Основа

Какой язык использует Arduino?

Вокруг языка программирования Arduino или ESP32 существует много путаницы. Термины вроде «язык Arduino» часто вводят в заблуждение, заставляя думать, что это проприетарная разработка. На самом деле всё гораздо прозаичнее.

Факт: Arduino использует C++ в качестве основного языка программирования.

Программная основа Arduino базируется на C++, а не на уникальном языке. Однако есть важные нюансы того, как C++ реализован в среде Arduino, которые делают его отличным от стандартного программирования на C++ для ПК.

Отличия

Чем Arduino отличается от стандартного C++

Хотя код компилируется как C++, среда Arduino вносит несколько изменений, чтобы сделать процесс проще для новичков:

  1. Автоматическое включение библиотек: Файл Arduino.h автоматически подключается к каждому скетчу. Он дает доступ к функциям вроде digitalWrite() или pinMode().
  2. Упрощенная структура: Вместо функции main(), скетчи полагаются на setup() и loop().
  3. Ограниченные библиотеки: Из-за малой памяти микроконтроллеров многие тяжелые библиотеки C++ (вроде <iostream> или <thread>) недоступны.
Структура кода Arduino
Сравнение

С++ и C: понимание взаимосвязи

Код Arduino часто напоминает чистый C из-за своего процедурного стиля. Но важно понимать: C++ — это “суперсет” (надмножество) языка C. Почти любой код на C успешно скомпилируется компилятором C++.

Смесь стилей

В Arduino вы можете писать как в стиле C (функции и структуры), так и в стиле C++ (классы и объекты). Основные библиотеки Arduino сами являются примером этой смеси:

  • Стиль C: Функции digitalWrite(), analogRead().
  • Стиль C++: Объект Serial (экземпляр класса HardwareSerial).
Arduino Code Comparison
Компиляция

Как работает компилятор

Код, который вы пишете в Arduino IDE, перед отправкой на контроллер проходит процесс препроцессинга. IDE превращает ваш скетч в валидный файл на языке C++, добавляет необходимые заголовочные файлы и генерирует скрытую функцию main().

Поэтому, если вы захотите уйти от Arduino IDE в профессиональные среды (вроде VS Code + PlatformIO), вы обнаружите, что там уже нужно писать на “честном” C++ с явным подключением всех модулей.

Итог

Заключение

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

💡 Краткая шпаргалка

Основа
C++

Под капотом всегда компилируется C++ код.

Стиль
Гибрид

Можно писать просто как на C или сложно как на C++.