Ir ao conteúdo
  • Cadastre-se

Acionar motor AC com pic


fabiano aladin

Posts recomendados

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;

}

}

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!