Bom dia.

Gostaria de fazer um projeto de cisterna automatizada, com 1 válvula, 1 bomba, 2 sensores ultrasônicos. Mas não entendo muito na programação do arduino.

Estou dando uma olhada nos outros tópicos enquanto isso, aos poucos posso vocês poderiam ir me ajudando?

abraço

Exibições: 561

Responder esta

Respostas a este tópico

Bom dia , 

Porque Scada BR no título ? Pretende usar o Scada BR ?

Dê mais detalhes do seu projeto. Quanto mais detalhes, poderá receber mais ajuda. 

Dá uma olhada nisso:

http://labdegaragem.com/main/search/search?q=cisterna

Olá, José. Obrigado por responder. Eu gostaria de usar o Scada BR como supervisório, por MODBUS. Eu dei uma olhada em algumas programações mas não sei como bolar uma por modbus.

O projeto seria o seguinte:

Quando chover, o sensor de chuva iria abrir uma válvua e permitir a alimentação de uma cisterna. O controle de nível será por SR04. Assim que enche-lo, uma bomba irá repassar essa água para uma caixa d'agua tambpem com sensor de nível.

Eu estou tentando entender como jogar os dados para o modbus. Obrigado!

Boa tarde, coloquei um programa para rodar no scada BR, e o mesmo não consegue ler os dados do sensor ultrasônico. 

Há algum erro no sketch? Por gentileza...

#include <SimpleModbusSlave.h>

const int trigPin = 12; /*define pino 12 e pino 11 do senso ultrassonio*/
const int echoPin = 11;

enum {
VALOR_SENS,
HOLDING_REGS_SIZE
}; /*valor sens como registrador*/
unsigned int holdingRegs[HOLDING_REGS_SIZE];

void setup()
{

pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

modbus_configure(&Serial, 9600, SERIAL_8N1, 1, 2, HOLDING_REGS_SIZE, holdingRegs);
modbus_update_comms(9600, SERIAL_8N1, 1);

}

void loop()
{ Serial.begin(9600);
digitalWrite(trigPin, LOW); /*configuração básica do sensor*/
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long duracao = pulseIn(echoPin, HIGH);
int distancia = duracao / 58;

modbus_update();
holdingRegs[VALOR_SENS] = distancia;

}

Obrigado!

O problema esta na comunicação com o Scada, ele fica dando um alerta

18:13:32: 'Arduino': SENS: Illegal data value
Urgente17:54:21: 'Arduino': SENS: Illegal data value
Urgente17:46:25: 'Arduino': SENS: Illegal data value
Urgente17:38:17: 'Arduino': SENS: Illegal data value

o que poderia ser? Abraços para todos!

Com quantos escravos modbus vc vai trabalhar? 

te recomendo utilizar modbus TCP/IP

pois trabalhar com serial esbarramos na quantidade de porta do scadabr que ate o momento é somente uma, e pessoalmente acho preferivel trabalhar com modbus IP do que modbus RTU.

Olá, Adriano!

Somente 1 escravo modbus. Vou dar uma pesquisada nesse protocolo, muito obrigado!

se for somente um escravo nao tem problema para usar o modbus RTU, nao conheço essa biblioteca simpleModbus, cotumava usar a bilbioteca do jpzometa que é uma boa bilbioteca quando vc quer trabalhar com somente um ou dois slaves, o problema que eu me lembro é que ela é uma bilbioteca antiga que funcionava bem com uma versao antiga do arduino e funciona bem ate hoje, no topico  abaixo : 

http://labdegaragem.com/forum/topics/scadabr?commentId=6223006%3ACo...

vc encontrará muito boas informaçoes de como proceder com essa biblioteca. 

tb tem a do prof Sarmento:

https://github.com/andresarmento

Quanto ao simpleModbus nao conheço. 

Para ajuda-lo melhor post a image do seu datapoint e do seu datasource. 

Obrigado, Adriano! Consegui fazer meus testes, deu certo! rsrsrs

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço