Vous êtes sur la page 1sur 7

CURSO TCNICO EM ELETRNICA MICROCONTROLADORES

PROJETO PRTICO DE ELETRNICA: ELEVADOR

Docente: Renata Imaculada Discentes: Antnio Valdemir Rodrigues Chagas Hildervan Fernandes Pereira Aldemisio de Moura Silva Amanda de Lima Duarte

FORTALEZA-CE 09/12/2013

MATERIAL UTILIZADO

4 sensores (1 emissor e 3 receptores); 3 botes mster 6 resistores de 2K2 1 resistor de 330 ohms 1 resistor de 150 ohms 2 rels 1 motor de mesa de CO 5.9 1 drive ULN 2803 1 placa SanUSB com 1 micro 18F2550 1 Cabo USB . 1 roldana 1 liga Estrutura de madeira

FUNCIONAMENTO No acionamento do elevador foi utilizado um motor de 5v. Para lig-lo empregou-se ponte H com rels. Isso permitiu controlar o sentido de giro do motor. Alm disso, um drive de potncia ULN 2803 foi ligado entre os rels e o microcontrolador, protegendo o PIC contra a corrente reversa do rel e aumentando a corrente que vem do micro (ganho de corrente). Assim, o micro e uma fonte externa de 5 v energizam as bobinas do rel fazendo o motor funcionar. Ao energizar a bobina do rel da esquerda, a corrente passa pelo motor no sentido da esquerda para direita determinando um sentido de rotao para o motor. Ao desligar o rel da esquerda e acionar o rel da direita o sentido de rotao do motor se inverte. Na ligao dos pinos temos: O pino b7 do microcontrolador conectado ao pino 1 do drive de potncia responsvel por fazer o elevador subir. O pino b0 do microcontrolador conectado ao pino 2 do drive de potncia responsvel por fazer o elevador descer. O pino b6 do microcontrolador conectado ao pino 10 do drive de potncia responsvel pelo receptor do 1 andar. O pino 9 do drive de potncia ligado no GND do PIC. O pino b6 do microcontrolador responsvel pelo receptor do 3 andar. O pino b5 do microcontrolador responsvel pelo receptor do 2 andar. O pino b4 do microcontrolador responsvel pelo receptor do 1 andar. O pino b3 do microcontrolador responsvel pelo boto do 3 andar. O pino b2 do microcontrolador responsvel pelo boto do 2 anda. O pino b1 do microcontrolador responsvel pelo boto do 1 andar. O pino 18 do drive de potncia alimenta a bobina do rel fazendo com que o motor rotacione no sentido horrio (elevador sobe). O pino 17 do drive de potncia alimenta a bobina do rel fazendo com que o motor gire no sentido anti-horrio (elevador desce). O motor cc est nos pinos comuns do rel. No prottipo, 3 receptores so fixados na posio referente ao 1, 2 e 3 andar da estrutura. O emissor preso no elevador. Resistores de 2K2 so inseridos nas ligaes dos botes e sensores com o PIC objetivando limitar a corrente que chega.

Caso o elevador esteja no primeiro andar, temos que ao apertar o boto correspondente ao 3 andar o rel responsvel por fazer o motor girar no sentido horrio acionado e o elevador segue trajetria ascendente. Ao chegar no 3 andar, um sinal de luz gerado pelo emissor incide no receptor com intensidade suficiente para faz-lo comutar a sada e ento cessa a alimentao do motor (elevador pra).

PROGRAMA #include <SanUSB.h> int32 tensao; main() { clock_int_4MHz(); while(1){ if (!input(pin_e3)){reset_cpu();}//Reset, pressionar o boto no pino 1 para gravao if(input(pin_b1)==0){ // Se parar fora do sensor desce para 1 andar while (input(pin_b1)==0){ output_low(pin_b7); // elevador desce output_high(pin_b0); // elevador desce delay_ms(50); }} if(input(pin_b3)==0){ // Se parar fora do sensor sobe para 3 andar while (input(pin_b3)==0){ output_high(pin_b7); // elevador sobe output_low(pin_b0); // elevador sobe delay_ms(100); }} while(input(pin_b4)==0){ //sensor 1 andar output_low(pin_b7); // pra motor output_low(pin_b0); // pra motor // ** Do 1 para 2 if(input(pin_b2)==0){ // estou no 1 andar, aperto boto para ir ao 2. while (input(pin_b2)==0){ output_high(pin_b7); // elevador sobe output_low(pin_b0); // elevador sobe

delay_ms(20); }} output_low(pin_b7); // pra motor // ** DO 1 para 3 if(input(pin_b3)==0){ // estou no 1 andar, aperto boto para ir ao 3. while (input(pin_b3)==0){ output_high(pin_b7); // elevador sobe output_low(pin_b0); // elevador sobe delay_ms(300); }} }//fim while sensor 1 while(input(pin_b5)==0){ // ** Do 2 para 1 if(input(pin_b1)==0){ // estou no 2 andar, aperto boto para ir ao 1. //sensor do 2 andar

while (input(pin_b1)==0){ output_low(pin_b7); // elevador desce output_high(pin_b0); // elevador desce delay_ms(50); }} // ** Do 2 para 3 if(input(pin_b3)==0){ // estou no 2 andar, aperto boto para ir ao 3. while (input(pin_b3)==0){ output_high(pin_b7); // elevador sobe output_low(pin_b0); // elevador sobe delay_ms(200); }} }//fim while do sensor 2

while(input(pin_b6)==0){ // sensor 3 andar output_low(pin_b7); // pra motor output_low(pin_b0); // pra motor // ** DO 3 para 1 if(input(pin_b1)==0){ // estou no 3 andar, aperto boto para ir ao 1. while (input(pin_b1)==0){ output_low(pin_b7); // elevador desce output_high(pin_b0); // elevador desce delay_ms(100); }} // ** DO 3 para 2 if(input(pin_b2)==0){ // estou no 3 andar, aperto boto para ir ao 2. while (input(pin_b2)==0){ output_low(pin_b7); // elevador desce output_high(pin_b0); // elevador desce delay_ms(4); }} output_low(pin_b0); // pra motor }//fim while do sensor 3 }}

Vous aimerez peut-être aussi