Tag: sensor ultrassônico - Embarcados - Sua fonte de informações sobre Sistemas Embarcados
Home Fórum Tag: sensor ultrassônico
Geral arduino, sensor ultrassônico, PID
Olá amigos, estou fazendo um projeto e gostaria muito da ajuda de vocês se possível. Estou ainda estou aprendendo sobre o assunto mas acredito que saiba dos conceitos básicos para começar.
Estou realizando o controle da velocidade de uma bomba de água com um sensor ultrasom (HC-SR04): possuo um tanque de água que quero elevar essa água para um tanque superior e a variação da velocidade da bomba seria de acordo com o nível do tanque inferior. A bomba de água é de 12v então estou usando um driver Ponte H L298N para controlar. A variação simples dessa velocidade já realizei como teste, simples conversões dos valores do sensor para a bomba, mas agora gostaria de fazer isso com a biblioteca PID do Arduino, e encontrei alguns problemas. Segue a lógica que criei até agora, não está finalizada por só falta a parte do direcionamento do valor do sensor para o Input do PID:
PID Basic Example for 12V Pump – By Edes
Esse exemplo foi adaptado para funcionar com uma bomba 12V,
um driver L298N e um ultrassonico
include <PID_v1.h> //Carrega a biblioteca PID
include <Ultrasonic.h> //Carrega a biblioteca do sensor ultrassonico
define PIN_INPUT 0 //Define os pinos para Input e Output do PID
define PIN_OUTPUT 3
define pino_trigger 4 //Define os pinos para o trigger e echo do ultrasom
define pino_echo 5
int IN1 = 7; //Saídas digitais 3 e 4 ligadas à entrada da Ponte H
//int variacV_PonteH = 6; //Saída PWM ligada à entrada da Ponte H p/ variação de tensão do motor
int cmMsec, inMsec; //variáveis de conversão e visualização no monitor serial
//Inicializa o sensor nos pinos definidos
//Inicializa Pinos da bomba/motor e Ponte H
//pinMode(variacV_PonteH, OUTPUT);
//Inicia a serial com um baud rate de 9600
//Sentido Horario:
//Le as informaçoes do sensor, em cm e pol
int cmMsec, inMsec;
//imprimi os valores no monitor serial:
Meu problema: Já tentei de diversas maneiras realizar alguma conversão/adaptação/leitura do valor do sensor para injetar na porta analógica que o PID utiliza (PIN_INPUT – A0) , porém sem sucesso. Cogitei a possibilidade de ter feito leituras erradas porque não se trata de um valor PWM vindo do sensor e sim um pulso, realizei conversões com o comando "map" para ver se ajudava mas sem sucesso também. Acredito que posso ter feito algum erro bobo e não enxerguei o que realmente devo fazer. Pensei em utilizar o conversor D/A MCP4725, mas ainda da não tenho conhecimento para usá-lo. Se alguém puder me dar uma luz, agradecerei muito.
Desculpe ter prolongado demais o post mas queria tentar explicar o melhor possível, e desculpe se postei na categoria errada. Agradeço desde já!