Передача данных с датчиков по serial порту
- Войдите на сайт для отправки комментариев
Чт, 10/01/2019 - 22:30
Имеется две ардуино, соединённые по блютуз, несколько (восемь) фоторезисторов, подключённых к одной ардуино и светодиодная матрица на другой. Идея такова, что при изменении освещённости меняется количество зажённых диодов в ряду (каждый фоторезистор соответственно за строку отвечает). Но так как соединение происходит по последовательному порту, понятия не имею, как преобразовать данные с восьми штук и передать их на slave, потому что меняться освещение может одновременно
передавайте пачками по 8 байт, ну или 9 (девятый контрольная сумма). Маркер начала и конца пакета, например, будет пауза определённое количество мс. Только на передатчике предварительно функцией map перевести 10 битное значение фоторезистора в 8 битное (1 байт), чтобы не заморачиваться с парсингом двухбайтовых чисел.
Или уж сразу в "ищу исполнителя". Хотя, вроед Ковн сегодня добрый :)
Да ну смысл ищу исполнителя, я же для себя это делаю, не для кого-то, чисто научный интерес) Плюс не код ж требую, а так, направление верной мысли
"Направлеие верной мысли" состоит в том, что контроллер должен делать в точности то, что делал бы человек на его месте.
Представьте, что делали бы Вы, если бы перед Вами стояла задача, которую Вы хотите возложить на контроллер, и подробно опишите алгоритм своих действий.
направление верной мысли
Так оно в систематическом изучении матчасти, а не вопросах такого рода
передатчик будет примерно такой.
Заведите массив типа byte размером 9. Раз в n сек (смотри мигаем без delay) записываем в массив все значения ацп через функию map . Делаем через цикл фор, 9 итераций. В цикле фор сразу считаем чексумм. Просто складывая все 8 байт. На 9 итерации записываем чексумм в последний элемент массива. После цикла фор отправляем в уарт 9 байт Serial.write(array, sizeof(array))