Ajuda em como fazer controle de servo valvula com pwm

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Ajuda em como fazer controle de servo valvula com pwm

Mensagempor rosiley » 14 Out 2008 08:38

Bom dia rapaziada, preciso da ajuda de voces em fazer um projeto que funcione da seguinte forma:

Controlar 8 válvulas proporcional com tensão de trabalho de 24v via pwm, sendo que este controle será feito atraves de um computador.
A parte mais fácil eu já fiz, que é a interface gráfica e a comunicação do pic com o computador, sendo que nesta fase utilizei o pic 16f648 junto com o ftd 232 que simula uma com virtual, mais só que no projeto definitivo eu pretendo utilizar o 16f877 e aproveitar o código do nosso amigo que está no link abaixo.

http://asm51.eng.br/phpBB/viewtopic.php?t=6168

Aqui está parte do código criado no c++ builder

//---------------------------------------------------------------------------
void __fastcall TFuncionamento::CheckBoxMostrar_ValvulaClick(TObject *Sender)
{
{
if (CheckBoxMostrar_Valvula->Checked)
{
CGauge1->Visible=true;CGauge2->Visible=true;CGauge3->Visible=true;
CGauge4->Visible=true;CGauge5->Visible=true;CGauge6->Visible=true;
CGauge7->Visible=true;CGauge8->Visible=true;
}
}
{
if (CheckBoxMostrar_Valvula->Checked==false)
{
CGauge1->Visible=false;CGauge2->Visible=false;CGauge3->Visible=false;
CGauge4->Visible=false;CGauge5->Visible=false;CGauge6->Visible=false;
CGauge7->Visible=false;CGauge8->Visible=false;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TFuncionamento::VrPowerButtonValve1Click(TObject *Sender)
{
{
if (VrPowerButtonValve1->Active){
CGauge1->Visible=true;CGauge1->Progress=0;
VrSlider1->Visible=true;VrSlider1->Position=0;
}
}{
if (VrPowerButtonValve1->Active==false){
CGauge1->Visible=false;
VrSlider1->Visible=false;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TFuncionamento::VrSlider1Change(TObject *Sender)
{
Edit1->Text=VrSlider1->Position;
static int i;
CGauge1->Kind=gkHorizontalBar;
CGauge1->Progress=i++;
if(i>=90)
CGauge1->ForeColor=clRed;
else
CGauge1->ForeColor=clGreen;
if(i>100)
i=0;
}
//---------------------------------------------------------------------------
rosiley
Nibble
 
Mensagens: 51
Registrado em: 01 Jul 2008 19:38
Localização: rio das ostras

Mensagempor MOR_AL » 15 Out 2008 12:27

Olá Rosiley. Tudo bem?

Para você controlar qualquer variável ("x" por exemplo), é necessário que você monitore esta variável, por meio de um sensor que converta a unidade física da variável x ( por exemplo, pressão , temperatura, vazão, posição, velocidade, aceleração, peso, etc) em uma variável elétrica (tensão, corrente, resistência, capacitância, indutância, etc). Com esta conversão você poderá trabalhar com esta e outras variáveis que aparecerão, no "meio elétrico", no qual já há diversas maneiras de se processar informações de modo rápido e prático.
Uma vez monitorada esta variável, você terá o seu Valor Obtido de x, ou xObtido.
O valor que você deseja para a variável x, eu vou chamar de xDesejado. Este valor é diferente de xObtido.
Na realidade você precisa conhecer esta diferença, ou erro obtido. A este erro vou chamar de xErro.
Então, você calculará:

xErro = xDesejado - xObtido

Haverão três situações e sua atitude deverá ser:

xErro < 0 (Negativo) --> xObtido é maior que xDesejado. Você deve atuar no delta do seu PWM (seu caso) para reduzir xObtido.
xErro = 0 --> xObtido é igual a xDesejado. Não altere nada.
xErro > 0 (Positivo) --> xObtido é menor que xDesejado. Você deve atuar no delta do seu PWM (seu caso) para aumentar xObtido.

Agora a pergunta mais imediata seria: QUANTO AUMENTAR OU DIMINUIR, para que o ajuste seja o melhor, ou mesmo o correto?

Isso que eu lhe mostrei é a essência da Teoria da Realimentação. Existem muitas técnicas e regras que regem esta teoria.
Procure algum livro que trata do assunto, que é tão vasto que certamente você encontrará um livro de acordo com seu grau de instrução.
Mais um detalhe. As três condições de xErro não são práticas, são teóricas e mostradas apenas para facilitar a compreensão como um todo.
Na realidade deve-se aceitar um valor mínimo de erro. Este valor mínimo poderá e deverá ser estipulado por você. Desta forma, ao invés de comparar xErro com zero, deve-se compará-lo com xErroMínimo.

Espero ter auxiliado de alguma forma.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor MOR_AL » 17 Out 2008 16:39

Olá novamente Rosiley.

A figura abaixo apresenta um fluxograma para um sistema de controle (via PWM) da velocidade de rotação de um motor (RPM).
Acredito que seja auto explicativo. Fica faltando quantificar os valores de Aumenta Delta e Diminui Delta.

Imagem

MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor rosiley » 23 Out 2008 19:59

Boa noite, Mor_al como voce já deve ter percebido sou novo na área de programação em pic e estou com um problema e acho que voces podem me ajudar. Estou lendo tudo que posso sobre pic na area de pwm para podser resolver o meu problema, a placa eletronica já está quase pronta.
Esta placa ira acionar 8 valvulas proporcional, tudo controlado pelo pic 16f877, sendo que o mesmo faça este controle por pwm e que ao mesmo tempo informe no computador via rs 232. Essa parte eu já fiz, mais a lógica do pic é que está me tirando o resto de cabelo que tenho, e estou travado no pic, agradeço quem puder ajudar.
Segue abaixo a placa que irá controlar tudo isso. Como ja falei na mensagem anterior estou tentando entender o código que o fabim postou para que eu possa andar com o meu.
Já comprei um kit de desenvolvimento da microgenios o pic entre outros materiais.[/img]
rosiley
Nibble
 
Mensagens: 51
Registrado em: 01 Jul 2008 19:38
Localização: rio das ostras


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x