Control de Motor por el puerto LPT con 8 velocidades Electrónica con Enigma Controla un motor en 8 velocidades por medio del puerto paralelo del PC Este circuito permite controlar la velocidad incrementando (aumentar) o decrementando (disminuir) la velocidad de un motor en 8 niveles por medio de un programa escrito en computadora, a través del puerto paralelo de cualquier PC. El aporte es fácil, es didáctico, este proyecto está basado en un decodificador demultiplexor que lo puedes modificar y adaptar a tu conveniencia, pude haber puesto un diagrama de bloques en vez del código fuente para que fuere más difícil y que solo quien conozca de programación y electrónica pueda realizarlo, mas lo que hice fue poner el código fuente y una explicación breve. Sólo se usan 4 pines de salida, la mitad de los bits de sauda del puerto paralelo. Obvio que si es lenguaje C funcionará en Linux o Windows porque el compilador tiene sus propias instrucciones que pueden adaptarse fácilmente, porque sólo son instrucciones básicas de ciclos FOR y condiciones While. Creo suponer que la potencia dependerá de los integrados NE555, pero supongo que pueden adaptar transistores de potencia como los clasicos TIP clase B o C y colocarle un Diodo que proteja contra corrientes inversas y evite destruir el Integrado. Además es recomendable poner un buen disipador al transistor como lo indica la imagen. También se puede usar un circuito tipo puente H para el motor en cuestión. Los potenciómetros VR(n) sólo son para variar la velocidad nada más, éstos se pueden ajustar a conveniencia o si quieres precisión pues usa entonces resistencias de 150 Ohmios con 2% de tolerancia. Se emplea para ello el puerto paralelo y el programa está escrito en lenguaje C que hace años compilé con Turbo C. Funcionamiento: Inicialmente cuando el motor está detenido ‘off,’ el programa te indica que presiones la tecla ENTER para que el motor empiece a funcionar. Cuando presionas la tecla ENTER, el motor empieza a correr a toda su velocidad. Segundos después el programa te pide que presiones cualquier tecla para entrar al programa de control. Esta pantalla te muestra el control del motor: aumentar o disminuir la velocidad del motor o salir del programa. Para aumentar la velocidad se presiona el número 1 Para disminuir la velocidad se presiona el número 2 Para confirmar se presiona la tecla ENTER Estas acciones modifican la velocidad un paso a la vez al tiempo que te muestra el mensaje apropiado acorde a la opción elegida "Aumentando la velocidad" o "Disminuyendo la velocidad" Diagrama: Código fuente del programa: //Enigmaelectronica //Control de motores en 8 velocidades //Enya Gata Hernandez (c) 2009 #include #include int a[7],i,c; void start(void); void main(void) { int P=0x0378,j,c=7,c1,x,y; clrscr(); outportb(P,0); textbackground(9); textcolor(3); for(x=0;x<=80;x++) for(j=0;j<=25;j++) { gotoxy(x,j); cprintf(" "); } for(i=0;i<8;i++) a=i; gotoxy(23,11); printf("Presiona la tecla ENTER para encender el Motor"); getch(); gotoxy(28,13); printf("Iniciando Motor, por favor espera..."); start(); gotoxy(25,15); printf("Motor iniciado correctamente"); gotoxy(22,17); printf("Presiona la tecla ENTER para iniciar"); getch(); while(1) { clrscr(); gotoxy(25,3); for(j=0;j<79;j++) { gotoxy(j+1,2); printf("*"); } gotoxy(23,3); printf("Control digita de motorrs DC by Enigma "); for(j=0;j<79;j++) { gotoxy(j+1,4); printf("*"); } printf("n"); printf("ttt1.Incrementar Velocidadnttt2.Decrementar Velocidadnttt3.Salir") ; for(j=0;j<79;j++) { gotoxy(j+1,8); printf("*"); } for(j=0;j<79;j++) { gotoxy(j+1,10); printf("*"); } gotoxy(1,9); printf("Selecciona tu opcion:"); scanf("%d",&c1); switch(c1) { case 1:if(c==7) { clrscr(); gotoxy(23,13); printf("El motor esta a su maxima velocidad"); getch(); } if(c<7) { clrscr(); c++; outport(P,a); gotoxy(33,13); printf("Velocidad incrementada un nivel"); getch(); } break; case 2: if(c==0) { clrscr(); gotoxy(23,13); printf("El motor esta a minima velocidad"); getch(); } if(c>0) { clrscr(); c--; outport(P,a); gotoxy(33,13); printf("Velocidad decrementada un nivel"); getch(); } break; case 3 : for(j=c;j>=0;j--) { outportb(0X0378,j); delay(100); } outportb(P,0); clrscr(); gotoxy(17,13); textcolor(2); cprintf("Control de velocidades de motor - Enigma"); getch(); exit(1); } } } void start() { outportb(0x0378,0); for(i=0;i<8;i++) { outportb(0X0378,i); delay(1000); } } Aqui tienen la descripción del Integrado 74LS138 y su tabla de verdad: Aqui tienen la captura del programa (lo tenía ahí y lo he compilado nuvamente) En la fuente está el programa completo, el código fuente y el Exe para que prueben
Control de Motor por puerto LPT de 8 velocidades
Datos archivados del Taringa! original
10puntos
66visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos: