проблемы с wire и ttl485

uJluac
Offline
Зарегистрирован: 02.09.2015

Здрасте форумчени.. сильно не ругайте.. я новичок

задача заключается в следуюшем 

опрос датчиков по шине 1-wire

и передача по rs485 по протоколу модбас

было использован http://www.amazon.com/MAX485-RS485-Converter-Module-Arduino/dp/B00KMMF4S4

проблема заключается в следующем

при инициализации шины 1-wire uart отказывается работать

есть ли способ инициализировать 1-wire по зопросу а дальше закрыть этот порт

что бы она не мешала работе uart

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

не должна мешать. давай код и схему

uJluac
Offline
Зарегистрирован: 02.09.2015

Сам скечь
#include
#include
#include

#define TXEN 4
Modbus slave(8,1,TXEN); // адрес и порт устройсва

void setup() {
slave.begin( 9600 ); // скорость опроса
Wire.begin();
}
int8_t state ;
int ti,hi,x1,x2;
float tt,hh,t,h;

void loop() {
x1++;
if (x1>200) {
x1=0;
//Считываем влажность
h = SHT2x.GetHumidity();
// Считываем температуру
t = SHT2x.GetTemperature();
x2++;
Wire.endTransmission(true);
slave.begin(9600);
}
hh=h*10;
if(hh<950){hi=hh; }
if(hh>950){hi=950;}
tt=t*10;
ti=tt;
// массивы модбас
uint16_t au16data[3]={ ti,hi,x2};
// обработка сообщений
state = slave.poll( au16data, 6 ) ;
delay(10);
}

плата uno

в данном скече как мы вилем перед опросом датчик отчитывает до 200
и обновляется

проблема в том что что пока не производит опрос датчик
uart работает
как ток опрос датчик произошел все связь теряется

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

скорее всего проблема не в 1wire, а в том что опрос датчика занимает время, изза этого и не отправляются данные

у тебя софтварный uart? к чему скрываешь используемые библиотеки?

uJluac
Offline
Зарегистрирован: 02.09.2015

всем спосиб проблема решена

дело было в  разрыва tx

в библиотеке