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
Tags:
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:
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;
}
Boa noite,
Sugestão para estudo:
http://blog.eletrogate.com/sensor-ultrassonico-hc-sr04-com-arduino/
Obrigado!
O problema esta na comunicação com o Scada, ele fica dando um alerta
18:13:32: 'Arduino': SENS: Illegal data value
|
17:54:21: 'Arduino': SENS: Illegal data value
|
17:46:25: 'Arduino': SENS: Illegal data value
|
17: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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por