Страница 1 из 1

i2c между ардуино

Добавлено: 24 май 2016, 20:22
dee-vize
Всем привет!На днях попытался создать 2 пользовательских блока,один Master,другой Slave.Slave блок передаёт переменную integer в Master,но только до значения 255.Затем сбрасывается в 0.Может кто подскажет как исправить код?

i2c между ардуино

Добавлено: 24 май 2016, 20:36
support
Функция  Wire.write(data)  умеет отправлять только один байт (байт - число от 0 до 255). ДЛя отправки Integer необходимо его разбить на два байта
 
 

Код: Выделить всё

byte hB = highByte(data );
 byte lb = lowByte( data );
и отправлять их по очереди. На принимающей стороне собрать обратно

Код: Выделить всё

int data = word( lb,hb);
ну и естественно надо подумать как всё это синхронизировать. Вообще я думаю есть смысл попробывать перенести логику модбас на I2C, он так неплохо вроде вписывается, но это попозже

i2c между ардуино

Добавлено: 24 май 2016, 20:38
dee-vize
Спасибо!Попробую переделать.

i2c между ардуино

Добавлено: 24 май 2016, 23:40
Kocтик
Я, делал так.