Передача данных с датчиков по serial порту

cezarus
Offline
Зарегистрирован: 07.01.2019

Имеется две ардуино, соединённые по блютуз, несколько (восемь) фоторезисторов, подключённых к одной ардуино и светодиодная матрица на другой. Идея такова, что при изменении освещённости меняется количество зажённых диодов в ряду (каждый фоторезистор соответственно за строку отвечает). Но так как соединение происходит по последовательному порту, понятия не имею, как преобразовать данные с восьми штук и передать их на slave, потому что меняться освещение может одновременно

MaksVV
Offline
Зарегистрирован: 06.08.2015

передавайте пачками по 8 байт, ну или 9 (девятый контрольная сумма). Маркер начала и конца пакета, например, будет пауза определённое количество мс. Только на передатчике предварительно функцией map перевести 10 битное значение фоторезистора в 8 битное (1 байт), чтобы не заморачиваться с парсингом двухбайтовых чисел. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Или уж сразу в "ищу исполнителя". Хотя, вроед Ковн сегодня добрый :)

cezarus
Offline
Зарегистрирован: 07.01.2019

Да ну смысл ищу исполнителя, я же для себя это делаю, не для кого-то, чисто научный интерес) Плюс не код ж требую, а так, направление верной мысли

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

"Направлеие верной мысли" состоит в том, что контроллер должен делать в точности то, что делал бы человек на его месте.

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

cezarus пишет:

направление верной мысли

Так оно в систематическом изучении матчасти, а не вопросах такого рода

MaksVV
Offline
Зарегистрирован: 06.08.2015

передатчик будет примерно такой.
Заведите массив типа byte размером 9. Раз в n сек (смотри мигаем без delay) записываем в массив все значения ацп через функию map . Делаем через цикл фор, 9 итераций. В цикле фор сразу считаем чексумм. Просто складывая все 8 байт. На 9 итерации записываем чексумм в последний элемент массива. После цикла фор отправляем в уарт 9 байт Serial.write(array, sizeof(array))