проблемы с wire и ttl485
- Войдите на сайт для отправки комментариев
Пнд, 21/12/2015 - 07:38
Здрасте форумчени.. сильно не ругайте.. я новичок
задача заключается в следуюшем
опрос датчиков по шине 1-wire
и передача по rs485 по протоколу модбас
было использован http://www.amazon.com/MAX485-RS485-Converter-Module-Arduino/dp/B00KMMF4S4
проблема заключается в следующем
при инициализации шины 1-wire uart отказывается работать
есть ли способ инициализировать 1-wire по зопросу а дальше закрыть этот порт
что бы она не мешала работе uart
не должна мешать. давай код и схему
Сам скечь
#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 работает
как ток опрос датчик произошел все связь теряется
скорее всего проблема не в 1wire, а в том что опрос датчика занимает время, изза этого и не отправляются данные
у тебя софтварный uart? к чему скрываешь используемые библиотеки?
всем спосиб проблема решена
дело было в разрыва tx
в библиотеке