Могу ли я вызывать функции из другого скетча?
Я новичок в программировании с Arduino и не уверен, как мне вызвать функции (например, getData()) для сенсорного ЖК-дисплея, чтобы отобразить эти данные. Цель моего устройства — прослушивать обмен данными между датчиками и контроллером, поэтому у меня есть одна плата RedBoard с шилдом CAN-BUS и скетчем dataComms.ino, который инициализирует функции получения данных из полученных пакетов данных и анализирует их.
Нужно ли мне создавать еще один скетч для отображения? Если да, то как мне вызывать функции из другого скетча, чтобы display.ino имел доступ к полученным значениям? Или есть какие-то лучшие способы отображения данных?
@Henrikas, 👍1
1 ответ
Лучший ответ:
Вы можете использовать только один скетч одновременно, то есть один скетч может быть сохранен внутри Arduino для выполнения.
Это означает, что весь ваш код (и функциональность для всех устройств, к которым вы хотите получить доступ) должны находиться в пределах одного эскиза.
Итак, в основном вам нужно сделать следующее:
- Добавьте библиотеку для каждого устройства, которое вы хотите использовать.
- Вызовите функции из этой библиотеки в вашем .ino-файле.
- Если вы хотите добавить функции, которые не являются частью библиотеки, вы добавляете как код функции, так и вызов (там, где это необходимо) в свой файл .ino.
Кроме того, если вы новичок, не начинайте со всего одновременно.
- Сначала найдите пример управления дисплеем (это, вероятно, проще, чем CAN shield).
- Добавить библиотеку для отображения
- Измените (или скопируйте из примера) код для отображения
- Запустите и отладьте, пока не заработает.
- Создайте новый эскиз для CAN-шилда.
- Добавьте библиотеку для CAN-шилда.
- Вызовите функции из этой библиотеки (или используйте пример, если он доступен).
- Как только вы убедитесь, что знаете, как использовать оба устройства (дисплей + CAN), объедините эскизы (создайте новый эскиз, добавьте обе библиотеки, скопируйте код и сделайте его одним эскизом).
- Controllino Mega и ЧМИ Fatek
- Есть ли какой-нибудь способ загрузить скетч с ардуино?
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Асинхронные вызовы функций в скетче ардуино
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?
- Как отобразить символ º на ЖК-дисплее?
- Проблема с загрузкой моего скетча на Ардуино
- Путаница между SPI и I2C для SSD1306 OLED
Спасибо огромное! Означает ли это, что мой .ino файл выступает в качестве основного, через который мне нужно настроить CAN Shield и LCD? Также, полагаю, мне нужно будет создать .cpp и .h файлы для создания библиотек для обоих устройств, не так ли? (Для прототипов и объявлений переменных), @Henrikas
Надеюсь, у вас уже есть библиотеки (или они существуют).. Создание библиотеки для новичка — задача не из легких. Arduino IDE уже имеет механизм для добавления библиотек (Manage/Add libraries или что-то в этом роде, у меня нет IDE под рукой). Ваш файл .ino имеет две функции: setup (инициализация) и loop (непрерывный запуск). Main скрыта в фреймворке, который генерирует Arduino IDE, и он вызывает setup и loop. Проверьте наличие некоторых базовых примеров., @Michel Keijzers