Ir ao conteúdo
  • Cadastre-se
fabiano aladin

Acionar motor AC com pic

Recommended Posts

Tenho que fazer um motor ac ser acionado nos dois sentidos , parando em altura especificada pelo pc , fiz através de porta serial , a parte de eletrônica /elétrica também está completa, meu problema é com o código do pic 16f877A.

Só q não faço ideia de como conseguir trabalhar pegando opções diferentes , isto é , trabalhar com variáveis para subir e descer motor , e também váriaveis para altura.Tô quebrando a cabeça mas nem compila com css,procurei na internet mas não conseguir ter nenhuma ideia .Também gostaria de saber se os pinos 11,12,31 e 32 devem estar todos ligados em vcc e gnd , ou só 11,12 ou 31,32?

Sou iniciante , tive aula de coisas bem básicas ,conseguir montar o circuito para porta serial mas travei no código.

Não precisam me passar nenhum código, quero só um lugar onde consiga entender um pouco mais de como fazer isso.

Resumindo:

-O motor subirá ou descerá até a altura especificada pelo pc, sendo parado pelos sensores fim de curso.

-criei 2 váriaveis : uma para subir ou descer o motor , e outra para altura através do comando getc , onde eu consiga usar a altura no switch, sendo q coloquei a altura assim 1 metro =10; 1,60=16 e assim por diante até 2,10m.

Agradeço desde já!

pensei em fazer da seguinte maneira:

recebe altura;

recebe subir ou descer;

set_tris_x(0b00000000);

set_tris_y(0b00000000);

se(subir){

se(input(pin_xx==0)&&(pin_yy==0)){

switch(altura){

case 'altura':

faça{output_high(PIN_xx);output_low(PIN_yy);}

enquanto(input(pin_z1==0);

escreva("se encontra na altura ...");

break;

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include<16f877A.h>

#use delay (clock=4000000)

#fuses xt , nowdt , brownout ,noput , noprotect , nocpd , nolvp

#use rs232(baud=9600,parity=N,xmit=Pin_C6,rcv=Pin_C7)

#use fast_io(B)

#use fast_io(D)

#define subir PIN_B0

#define descer PIN_B1

unsigned char altura[4];

void main(){

delay_ms(100);

set_tris_B(0b00000011);

set_tris_D(0b00000000);

printf("Colocar a altura desejada em centímetros. ");

while(true){

gets(altura); //colocar a string altura em uma váriavel altura

if(altura==100){

if(input(PIN_D7)==0){ // para colocar em 1m,

while(input(PIN_D7==0)){

output_high(PIN_B1);

output_low(PIN_B0);

} //fim while para descer até 1m

} else if(input(PIN_D7)==1){

output_low(PIN_B0);

output_low(PIN_B1);

} //fim de else if

} //fim de if altura 1m

if(altura==110){

if(input(PIN_D6==0)&&(PIN_D7==0)){

while(PIN_D6==0){// desce

output_high(PIN_B1);

output_low(PIN_B0);

}//fim de while d6=0

}//fim de if d6=0,d7=0

if(input(PIN_D6==0)&&(PIN_D7==1){//sobe

while(input(PIN_D6==0)){

output_high(PIN_B0);

output_low(PIN_B1);

} //fim de while d6=0

} //fim de if d6=0,d7=1

if(input(PIN_D6==1)){ //se já estiver na posição

output_low(PIN_B0);

output_low(PIN_B1);

} //fim de if d6=1

} //fim de if 1,10m

if(altura==120){ //recebe altura

if(input(PIN_D5==0)){ //verifica altura

if(input(PIN_D6==0)&&(PIN_D7==0)){ //senão estiver abaixo da altura vai subir

while(input(PIN_D5==0)){

output_high(PIN_B1);

output_low(PIN_B0);

} //fim de while d5=0

} //fim de if d6,d7==0

if(input(PIN_D6==1)||(PIN_D7==1)){

while(input(PIN_D5==0)){

output_high(PIN_B1);

output_low(PIN_B0);

} //fim 2º while d5=0

} //fim de if d6 ou d7=0

} //fim de if d5=0

if(input(PIN_D5==1){//se estiver na altura

output_low(PIN_B0);

output_low(PIN_B1);

} //fim de if d5=1

} //fim de if 1,20m

} //fim de while true

} //fim de void

Vou usar motor ppa pivotante de portão de garagem para pecorrer uma distância e com sensores fim de curso ao longo do caminho , ele deverá ignorar todos os sensores e só parar no especificado pelo usúario através do computador ou manualmente.

Utilizarei ponte H com transistores para fazer a reversão do motor , já que esse motor tem baixo consumo de corrente .

Ao todo utilizarei 12 sensores , mais 12 portas para ficar na altura desejada manualmente , 2 sensores de fim de curso de segurança , mais 1 porta com um botão para parada de emergência.

Estou utilizando o ccs compiler .

Agradeço a todos desde já.

tenho alguns problemas :

1- O código não compila ;

2-Preciso controlar a velocidade por pwm (já que é um motor Ac ) , deve ter uma velocidade bem baixa .

3-Como fazer um código para colocar botões para acionar o motor manualmente , e bloquear o comando feito pelo pc quando for feito manualmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×