C++
C++ — это стандартный язык, используемый для программирования Arduino IDE. Большая часть кода Arduino в Интернете написана на этом языке.
C++ — один из самых популярных доступных языков кодирования, поскольку он является кроссплатформенным. Однако перенести код Arduino в код ПК (и наоборот) очень сложно, даже если игнорировать тот факт, что ваш компьютер не может запустить двигатель. Например, в коде C++ первым вызывается main
. В Arduino C++ по-прежнему вызывается main
, однако вызываются библиотеки Arduino, а не ваш скетч. Эти библиотеки затем вызывают setup
, а затем несколько раз loop
после завершения всех задач инициализации, которые они должны выполнить, прежде чем Arduino сможет запустить код вашего скетча.
Произносится как "С плюс плюс".
Вопросы, связанные с [c++]:
- Полностью ли поддерживается C++ STL на Arduino? У меня пока нет платы Arduino для запуска кода, и, как следует из заголовка, мне интересно, поддерживается ли C++ STL полностью на Arduino и является ли он частью Arduino IDE. STL, вероятно,…
- Отображение двоичных данных на светодиодах Я написал программу для Arduino UNO и 3 светодиодных лампочек. Программа должна преобразовывать введенное число в двоичное, а затем отображать его на светодиодах, вкл. - 1, выкл. - 0. Я просматривал…
- Значения частных переменных класса недоступны в публичной функции Я экспериментирую с классами в коде Arduino. У меня есть следующий небольшой фрагмент кода: #include "Motor.h" #include "Arduino.h" Motor::Motor() { } void…
- Как работает последовательная связь на Arduino? Относительно плат Arduino Uno, Mega2560, Leonardo и аналогичных: Как работает последовательная связь? Насколько быстр последовательный порт? Как установить связь между отправителем и…
- Датчики TFmini с Arduino У меня есть три датчика TFmini, и мне нужно, чтобы все они были обнаружены. У меня на работе только один , контакт 4,5 . Моя информация в области кодирования является базовой . Я действительно ценю…
- Проблема с переменной char* malloc/free. Пустое содержимое в переменной получателя после использования free Я работаю над пользовательским регистратором данных SD-карты, используя следующую функцию и структуру: char *filenameCreator(const char *prefix, const char *num, bool addExtension) { char…
- Проблема с чтением данных из ELM327 Идея заключалась в создании устройства Bluetooth на базе Arduino для считывания данных с машины (ELM327 v2.1) с использованием модуля Bluetooth HC-05. В этом коде модуль bluetooth переключается в…
- deserializeJson() не удалось: NoMemory при отправке последовательного json с использованием ArduinoJson Привет всем! У меня есть скетч, который занимает 99% места на моем диске, так как я использую Arduino Nano. Хотя все в моем коде подходит как есть, похоже, есть проблема с отправкой строки json…
- Как отправить несколько декодированных ИК-сигналов в одном скрипте? Моя конечная цель — использовать мой микроконтроллер Arduino в качестве «автоматического пульта дистанционного управления». Сейчас я хотел бы узнать, как отправлять декодированные протоколы NEC…
- Как определить, было ли нажато более одной кнопки Я проектирую велосипедный указатель поворота, использующий в качестве входных данных две кнопки, по одной с каждой стороны, с соответствующей подсветкой для каждой кнопки. Идея такова: Нажатие…
- Почему функция server.on() из "ESPAsyncWebServer.h" выполняется на стороне setup(), а не на стороне loop()? Я реализую пример, в котором 2 ESP32 обмениваются данными друг с другом, используя протокол HTTP. Один действует как Сервер, другой - как Клиент. В приведенных примерах мне интересно узнать об…
- Объявленная переменная внутри void setup не видится в void loop Если я объявлю переменную в void setup() и попытаюсь что-то с ней сделать в void loop(), он просто скажет, что переменная не объявлена. вот код: #include "Servo.h" void setup() { Servo…
- Ввести идентификатор чипа ESP32 в строковую переменную (новичок в Arduino/C++) Прошло всего несколько дней с тех пор, как я начал использовать Arduino IDE ( программирование ESP32 ). По мере того, как я учусь, я пытаюсь написать несколько фрагментов. Я хотел сохранить…
- Перечисление классов не было объявлено в этой области Я программирую Arduino. В том же файле .ino , что и setup() и loop () , я определил следующее: void setup() { // код настройки } enum class CYCLE { TypeA, TypeB }; String cycleToString…
- Куда должны идти модульные тесты в Arduino IDE У меня есть проект Arduino, файловая структура которого выглядит так myProject/ myProject.ino ImportantClass1.hpp ImportantClass1.cpp ImportantClass2.hpp ImportantClass2…
- Ошибка: expected unqualified-id before 'if' Это мой эскиз или код: const int EchoPin = 5; const int TriggerPin = 6; const int LedPin = 13; void setup() { Serial.begin(9600); pinMode(LedPin, OUTPUT); pinMode(TriggerPin, OUTPUT); …
- Избегайте математических вычислений с плавающей запятой, чтобы ускорить Arduino Я читал и слышал, что математические вычисления с плавающей запятой выполняются намного медленнее, чем математические вычисления с целыми числами. И я видел здесь процесс конвертации от чисел с…
- Альтернатива опросу флага прерывания из основного цикла? Я использую ISR, который написан как можно более минимальным: volatile bool interrupt1{}; void ISR1() { interrupt1 = true; } Прерывание обрабатывается путем опроса переменной прерывания1…
- Использование Adafruit RTClib без фрагментации кучи Я готовлюсь добавить поддержку DS1307 в свое приложение Arduino и был в ужасе , когда посмотрел на исходный код класса RTC_DS1307 в библиотеке RTClib от Adafruit... DateTime RTC_DS1307::now() { …
- Как использовать два пьезоэлемента одновременно? Я пытаюсь воспроизвести короткий музыкальный клип с двумя пьезоэлементами и хочу, чтобы они воспроизводились одновременно. Пока играет правый пьезо, я хочу, чтобы левый продолжал зацикливаться.…
- Условие «если» проблема/вопрос Я новичок в Arduino, и мой вопрос скорее теоретический. У меня есть плата Arduino Nano (процессор Atmega168), кнопка, дисплей. Я написал обработчик кнопки, который не останавливает выполнение кода.…
- Как написать эффективные функции обратного вызова на Teensy 4.0? Я рассматриваю возможность рефакторинга своего кода путем реализации функций обратного вызова, чтобы иметь возможность повторно использовать абстрактную логику других функций/классов. Однако я…
- Правильное использование * и & при передаче объектов в методах. В C# указатели несколько незнакомы, хотя я понимаю эту концепцию. Правильно ли создавать методы следующим образом и передавать объект (в качестве параметра), созданный по ссылке? Если нет, то…
- Клиент ESP32 SocketIO не подключается к серверу Flask-SocketIO Я пытаюсь подключить клиент ESP32 с помощью SocketIO к серверу Flask-SocketIO , но он не подключается. Сервер использует SSL. Адрес локального сервера: https://192.168.1.137:3000 . Является ли …
- 6-контактный BME280 не дает сигнала 12C Я создаю пакет телеметрии для модели моей мамы с MPU6050, BME280 и устройство чтения/записи SD. Весь код, который я нашел для BME, не считывает никакой информации. Когда я загружаю средство…
- Почему char «расширяется» до int? Я знаю, что упускаю что-то очень простое, но не могу этого понять. Если я сделаю char Letter = 'A'; , то letter = Letter << 8 , буква = 0, как и следовало ожидать, поскольку мы…
- Как работать с аналоговыми контактами в цикле? Я хочу сделать что-то в духе for (int i = 0; i < 4; i++) { analogRead(i); } Что, по-видимому, работает, но следующее-нет: for (int i = 0; i < 4; i++) { pinMode(i, INPUT); …
- Как восстановить числовые данные, отправленные Arduino в двоичном виде Я разработчик C#, и эти преобразования данных C++ меня убивают. У меня есть Arduino, отправляющий двоичные данные через LoRaWAN в AzureIOT. Я пытаюсь декодировать полезные данные Temp/Humid/Bat,…
- преобразовать строку, представляющую двоичное число, в двоичное У меня есть последовательный вход "1111111" и я хотел бы преобразовать это в двоичный файл B1111111, который я могу отправить в светодиодную матрицу. Я пытался выполнить поиск, но все результаты…
- Считывание данных нескольких датчиков из текстового файла, расположенного на SD-карте в Arduino/ESP32 Я работаю над небольшим домашним проектом "глюкометр" с помощью неинвазивных методов. Я использую четыре датчика, таких как цветовой датчик RGB, два многоволновых фотодиода (A & B) и датчик…
- ESP32 не предоставляет IP-адрес шлюза в точке доступа У меня есть esp32-cam-модуль m5stack Wide Сейчас Я веду поток с камеры в режиме точки доступа. в Linux он получает IP-адрес шлюза, но на моем Mac или любом другом устройстве это не работает …
- Недопустимое использование нестатической функции-члена Чтобы объяснить мою проблему, я использовал 3 класса: Actions , Triggers и Combine . Действия имитирует функцию действия, определенную извне. Триггеры имеют ту функцию, которую…
- C++ против языка Arduino? Каковы преимущества каждого языка при использовании Arduino? Я думаю, что это хороший общий вопрос, но я добавлю немного о том, почему я спрашиваю, не хочет ли кто-нибудь дать мне совет. У…
- Чтение двоичного файла на SD-карте Почему я не могу прочитать последний байт файла, когда использую код Arduino ide? Код в cpp работает без ошибок. Это мой код в Arduino ide: vector<unsigned char> text; unsigned char…
- Накладные расходы на использование «нового» для создания объекта в динамической памяти по сравнению с автоматическим созданием в стеке Предположим, у меня есть класс с именем Foo , а размер sizeof(Foo) составляет 10 байт. Насколько я понимаю, создание Foo с «автоматической» областью действия (в стеке) не имеет накладных…
- Использование без паузы с ультразвуковым датчиком HR-S04 Как я могу измерить расстояние ультразвукового датчика HR-S04 с помощью миллиметров и микросекунд?
- Понимание глобальных переменных на Arduino Я переписываю набор функций манипулирования светодиодами, чтобы они были более объектно-ориентированными, и обнаружил, что каким-то загадочным образом пространство моей памяти для глобальных…
- Попытка разрешить недопустимое преобразование из «байта» {он же «беззнаковый символ»} в Я пытаюсь использовать существующую библиотеку Arduino на Raspberry Pi Pico. Библиотека находится здесь: https://github.com/j-bellavance/EdgeDebounce/tree/master Это основано на интересной…
- Сколько читаемого текста может поместиться в ATTINY85? Возможность прокрутки буклета на 0,91-дюймовом OLED-дисплее Я новичок, поэтому обсуждал с Chatgpt возможности микроконтроллера Attiny85 . Но ИИ будет часто галлюцинировать и давать лишь частично правильные ответы (потому что он полагается на закономерности…
- Являются ли переменные, объявленные в main.cpp, статическими, экземплярами или...? Предположим, вы только что создали новый проект Arduino, используя PlatformIO или IDE, например Sloeber. Теперь у вас есть файл с именем «main.cpp». с двумя функциями (методами?): void setup() …
- Как объединить время в переменную У меня есть проект Arduino Uno, который записывает посещаемость учащихся с помощью датчика отпечатков пальцев. Поэтому, когда датчик найдет совпадение, последовательный монитор будет распечатывать…
- Настройка регистров на плате Arduino на базе Samd Я пытаюсь настроить BOD33 для микроконтроллера Samd51 в файле .ino в первую очередь, даже до строк #include в .ino // Определяем базовый адрес для t_SUPC #define T_SUPC_BASE 0x40001800UL //…
- Как вы принимаете Простейшее непрерывное считывание с Garmin Lidar Lite V4 с использованием I2C на Particle Boron v4.1.0? Привет, сообщество Stack. Я работаю с Particle Boron v4.1.0. Я подключаю Garmin Lidar Lite V4 по I2C. Я использую заголовочный файл LIDARLite_v4LED.h, найденный в библиотеке для этого устройства,…
- Где определить функции обратного вызова веб-сервера, чтобы они могли получить доступ к объекту сервера? (библиотека ESP8266WebServer) Я хочу, чтобы мое устройство на базе ESP8266 создало точку доступа, позволяющую пользователю вводить свой домашний ssid и пароль. Существует объект устройства, который содержит большую часть данных,…
- Хорошая практика одновременного назначения контактов сдвигового регистра? Я новичок в работе с битовыми регистрами и пытаюсь установить входные и выходные значения некоторых контактов. Пример кода, который у меня есть, делает это следующим образом:: DDRD |= (1 <<…
- Создание форматированной строки (включая числа с плавающей запятой) в Arduino-совместимом C++ Я использую Mega2560 и универсальный OLED-дисплей SSD1306 с библиотекой Adafruit_SSD1306 (и, соответственно, Adafruit_gfx). Мне нужно вывести на дисплей набор значений с плавающей запятой (от 30…
- Функция, объявленная в другом файле, не распознана (undefined reference to) Я создаю проект arduino с несколькими файлами, но компилятор не может распознать функцию. Я использую arduino-cli версии 0.10.0 Это ошибка, которую я получил неопределенная ссылка на pin_init()…
- Как использовать SPI на Arduino? Со ссылкой на Arduino Uno, Mega2560, Leonardo и аналогичные платы: Как работает SPI? Как быстро работает SPI? Как установить связь между master и slave? Как сделать SPI ведомым? …
- оператор if не работает с дробью, но работает с десятичным эквивалентом Я пытаюсь решить проблему с моим кодом и сузил ее до моего оператора if, который не работает с дробью. Приведенный ниже код не работает и возвращает 0 for(float i=0; i <= 1; i += .0001){ t…
- Работает ли конструкция int array[100] = {0} на Arduino? Я компилирую свой код в Arduino IDE. У меня есть массив, который я хочу инициализировать 0. Я знаю, что memset работает на Arduino, но я привык к этому из моей практики программирования на C++ для…