Могу ли я вызывать функции из другого скетча?

Я новичок в программировании с Arduino и не уверен, как мне вызвать функции (например, getData()) для сенсорного ЖК-дисплея, чтобы отобразить эти данные. Цель моего устройства — прослушивать обмен данными между датчиками и контроллером, поэтому у меня есть одна плата RedBoard с шилдом CAN-BUS и скетчем dataComms.ino, который инициализирует функции получения данных из полученных пакетов данных и анализирует их.

Нужно ли мне создавать еще один скетч для отображения? Если да, то как мне вызывать функции из другого скетча, чтобы display.ino имел доступ к полученным значениям? Или есть какие-то лучшие способы отображения данных?

, 👍1


1 ответ


Лучший ответ:

1

Вы можете использовать только один скетч одновременно, то есть один скетч может быть сохранен внутри Arduino для выполнения.

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

Итак, в основном вам нужно сделать следующее:

  • Добавьте библиотеку для каждого устройства, которое вы хотите использовать.
  • Вызовите функции из этой библиотеки в вашем .ino-файле.
  • Если вы хотите добавить функции, которые не являются частью библиотеки, вы добавляете как код функции, так и вызов (там, где это необходимо) в свой файл .ino.

Кроме того, если вы новичок, не начинайте со всего одновременно.

  • Сначала найдите пример управления дисплеем (это, вероятно, проще, чем CAN shield).
  • Добавить библиотеку для отображения
  • Измените (или скопируйте из примера) код для отображения
  • Запустите и отладьте, пока не заработает.
  • Создайте новый эскиз для CAN-шилда.
  • Добавьте библиотеку для CAN-шилда.
  • Вызовите функции из этой библиотеки (или используйте пример, если он доступен).
  • Как только вы убедитесь, что знаете, как использовать оба устройства (дисплей + CAN), объедините эскизы (создайте новый эскиз, добавьте обе библиотеки, скопируйте код и сделайте его одним эскизом).
,