Ir ao conteúdo

Elevador com PIC 16F877A


AleffLima

Posts recomendados

Postado

Boa Tarde, é meu primeiro acesso aqui no clube, estou fazendo um tcc e meu projeto é um elevador de 3 andares e um térreo, queria alguma ajuda, por enquanto tenho somente um circuito e a programação apenas para o PIC 16f877a usando um L293D como ponte H para um motor de 12V.. Se alguém puder me ajudar com algo ficaria muito agradecido.. Valeu

Postado

como vou fazer para usar o sensor fim de curso, por exemplo, estou no térreo e quero ir para o 3º andar direto, porém a cabine vai passar pelos outros fim de cursos..

Postado
como vou fazer para usar o sensor fim de curso, por exemplo, estou no térreo e quero ir para o 3º andar direto, porém a cabine vai passar pelos outros fim de cursos..

Eu pensaria o seguinte, na programação quando apertar o botão para o terceiro andar você ignoraria as portas em que estão conectados os demais sensores.

Acho que basicamente isso.

Postado

Olá, qual linguagem você esta utilizando, assembly, C, etc? ja tem o software e/ou hardware em desenvolvimento, quanto a lógica dos sensores, concordo com a dica do RR1000!

Qualquer coisa pergunte!:D

Postado
Olá, qual linguagem você esta utilizando, assembly, C, etc? ja tem o software e/ou hardware em desenvolvimento, quanto a lógica dos sensores, concordo com a dica do RR1000!

Qualquer coisa pergunte!:D

Estou usando em C, estou com a programação em desenvolvimento, estou usando o comando switch com o case.. algo +/- assim..

   switch ( state ) {
case PARKED_0: // TÉRREO
if (BUTTON_1 | BUTTON_2 | BUTTON_3) {
state = UP_TO_1;
motor = MOVE_UP;
}
else {
motor = STOP;
}
break;

e no caso dos sensores algo em torno de ..:

case UP_TO_1:
if (SENSOR_2 | SENSOR_3){
error ();
}
if (BUTTON_2 | BUTTON_3){
state = UP_TO_2;
motor = MOVE_UP;
}
else if (SENSOR_1) {
state = PARKED_1;
motor = STOP;
}
else {
motor = MOVE_UP;
}
break;

Postado
Estou usando em C, estou com a programação em desenvolvimento, estou usando o comando switch com o case.. algo +/- assim..

switch ( state ) {

case PARKED_0: // TÉRREO

if (BUTTON_1 | BUTTON_2 | BUTTON_3) {

state = UP_TO_1;

motor = MOVE_UP;

}

else {

motor = STOP;

}

break;

e no caso dos sensores algo em torno de ..:

case UP_TO_1:

if (SENSOR_2 | SENSOR_3){

error ();

}

if (BUTTON_2 | BUTTON_3){

state = UP_TO_2;

motor = MOVE_UP;

}

else if (SENSOR_1) {

state = PARKED_1;

motor = STOP;

}

else {

motor = MOVE_UP;

}

break;

Caro AleffLima, desculpe não poder ajudá-lo, pois comecei a aprender Linguagem C a pouco tempo, não sendo esta a linguagem que eu tenho maior experiência, pois programo em assembly (pelo menos tento né rsrs), mas com certeza tem uma galera muito inteligente e que manja muito de linguagem C aqui no CDH, aguarde até que a galera do "C" responda ^_^!

Postado
Estou usando em C, estou com a programação em desenvolvimento, estou usando o comando switch com o case.. algo +/- assim..

Qual compilador esta usando? a lógica da programação vai ser sempre a mesma o que vai muda são algumas peculiaridades de cada compilador.

Vamos la falando por cima estou meio sem tempo, pois estou fazendo inglês agora rsrsrs.


If (button_1 == 1) //se pressionou botão primeiro andar
{
move motor
if (fimDeCurso1 == 1) // motor chegou no preimeiro andar
{
para o motor
}
fimDeCurso1 == 0; //volta a ficar liberado de novo
}

If (button_2 == 1) //se pressionou botão segundo andar
{
Desabilita fim de curso 1
move motor
if (fimDeCurso2 == 1) // motor chegou no segundo andar
{
para o motor
}
fimDecurso2 == 0; //volta a ficar liberado de novo
habilita fim de curso 1
}

If (button_3 == 1) //se pressionou botão terceiro andar
{
Desabilita fim de curso 1
Desabilita fim de curso 2
move motor
if (fimDeCurso3 == 1) // motor chegou no segundo andar
{
para o motor
}
fimDecurso3 == 0; //volta a ficar liberado de novo
habilita fim de curso 1
habilita fim de curso 2
}

Creio que deu para entender +/- o que eu quis dizer né, claro esta bem básico pois estou sem tempo mais já é uma ideia pra você implementar. Você terá que tratar algumas coisas em relação a projeto, por exemplo: se o elevador já estiver no terceiro, e quero voltar para o segundo? com uma ponte H terá que inverter a rotação do motor e assim vai.

Postado
Caro AleffLima, desculpe não poder ajudá-lo, pois comecei a aprender Linguagem C a pouco tempo, não sendo esta a linguagem que eu tenho maior experiência, pois programo em assembly (pelo menos tento né rsrs), mas com certeza tem uma galera muito inteligente e que manja muito de linguagem C aqui no CDH, aguarde até que a galera do "C" responda ^_^!

Obrigado mesmo assim Lipextreme!

Então RR1000, estou usando o CI L293D como ponte H, ja tenho a programação dele pronta..

Postado
Então RR1000, estou usando o CI L293D como ponte H, ja tenho a programação dele pronta..

Se tiver mais alguma dúvida, só postar.

Postado

O código da ponte H, está assim:

void main() {
CMCON = 0x07;
ADCON1 = 0x06;
TRISC = 0;
PORTC = 1;
do
{
//To turn motor clockwise
PORTC.F0 = 1;
Delay_ms(2000);//2 seconds delay

//To Stop motor
PORTC = 0; // or PORTC = 3
Delay_ms(2000);//2 seconds delay

//To turn motor anticlockwise direction
PORTC.F1 = 1;
Delay_ms(2000);//2 seconds delay

//To Stop motor
PORTC = 0; // or PORTC = 3 (3 = 0b00000011)
Delay_ms(2000); // 2 seconds delay

}while(1);
}

  • 3 semanas depois...
Postado

cara, ha alguns métodos para fazer a contagem dos andares de um elevador, os dois mais simples são. Um sensor diferente pra cada andar, ou seja, cada andar aciona um fim de curdo diferente, assim você sempre saberá em qual andar esta. O outro é fazer uma contagem dos sensores, exemplo, você esta no térreo e manda pro 3° andar e a cada sensor que passa acrescenta 1, até chegar no andar que você quer. Ha mais métodos de se contar andares mas esses são os mais simples e baratos

flowwww

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!