Я сделал довольно много проектов с Arduino, но никогда не делал ничего, кроме «Hello World» на C. Я пишу свою первую библиотеку, и многие объектно-ориентированные вещи идут мне на ум. В любом случае, моя библиотека работает так, как и должно быть, я передаю плавающее значение своей функции, и она форматирует ее должным образом и отправляет через последовательный порт. Однако я реализовал это неуклюже. В Arduino API Style Guide упоминается способ, который выглядит намного лучше:
При использовании последовательной связи разрешите пользователю указывать любой объект Stream, а не жестко кодировать «Serial». Это сделает вашу библиотеку совместимой со всеми последовательными портами на Mega и Due, а также может использовать альтернативные интерфейсы, такие как SoftwareSerial. Объект Stream может быть передан в конструктор вашей библиотеки или в функцию begin () (в качестве ссылки, а не указателя). См. Firmata 2.3 или XBee 0.4 для примеров каждого подхода.
Кто-нибудь может уточнить, как это сделать, или показать мне код?