InicioCiencia EducacionI Proyecto de Electrónica-Cortinas Inteligentes(propio)





Hola Amigos
 

 
Es un proyecto que tuve que realizar hace mucho, tengo que decir que ya me gradué de la universidad y ahora veo que para las tecnologías actuales está algo desactualizado el proyecto, pero sirve después de todo. Este post y su segunda parte los borré hace tiempo, pero decidí posterlos otra vez. Este es el post original que me pertenece, si ven otra copia es un repost. En resumen es una foto de como se ve el circuito funcionando en Proteus, y todo el código que irá en el microcontrolador, listo para después solo armar el circuito.
Son unas cortinas, activadas por 2 motores de imán permanente, las cuales se abren o cierran independientemente si existe la señal u orden. Tiene 2 formas de funcionamiento: manual o automática. La automática es mediante una fotoresistencia, la cual manda una señaL de abrir cuando hay luz, y cerrar cuando no la hay. Por defecto funciona automáticamente, pero si queremos cambiar a modo manual, osea cuando yo quiera abrirlas, se necesita utilizar un pulsador que indica al sistema que se cambió a manual, al dejar de pulsarlo regresa a automático con la fotoresistencia. Todas estas órdenes son mostradas en una pantalla, también utilicé un Choper en H, el cual me permite invertir el movimiento de los motores. También está un Potenciómetro para controlar la luz del LCD, En total son 2 circuitos uno de control a 5 V  y uno de potencia (motores) 9 V. Una de las partes mas difíciles es la programación en Micro-Codec, la cual es el motivo del post. Todos los elementos utilizados los podrán ver en la foto de proteus, excepto las resistencias que van antes de los leds son de 330 ohmios.
 

 
Coloqué junto a cada linea de código una explicación:
 
Cortinas Inteligentes - Código para el Micro-codec
 
define LCD_DREG PORTB     ;BITDE DATOS DEL LCD                      
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB   ;BIT DE REGISTRO DEL LCD
DEFINE LCD_RSBIT 5
DEFINE LCD_EREG PORTB    ;BIT DE ENABLE
DEFINE LCD_EBIT 4
 
define ADC_BITS 10        ;NUMERO DE BITTS DEL RESULTADO
DEFINE ADC_CLOCK 3       ;FIJA EL RELOJ
DEFINE ADC_SAMPLEUS 50   ;FIJA EL TIEMPO DE MUESTREO
 
TRISA=1                 ;DECLARO EL PUERTO A COMO ENTRADAS
TRISD=0                  ;DECLARO EL PUERTO D COMO SALIDAS
ADCON1=%1110         ;LOS PUERTOS A SON CONVERSORES
 
fot var byte             ;A0 PARA LA FOTORESISTENCIA
pad var PORTA.1          ;A1 PARA EL PULSADOR DE ABRIR DERECHA
pcd var PORTA.2          ;A2 PARA EL PULSADOR DE CERRAR DERECHA
pai var PORTA.3          ;A3 PARA EL PULSADOR DE ABRIR IZQUIERDA
pci var PORTA.4          ;A4 PARA EL PULSADOR DE CERRAR IZQUIERDA
manaut var PORTA.5       ;A5 PARA EL PULSADOR DE CAMBIO DE AUTOMATICO A MANUAL
 
PRESENTACION:
    LCDOUT$FE,1,
"ESPOCH"
    LCDOUT$FE,$C4,
"MECANICA"
    PAUSE 400
    LCDOUT$FE,1,
"REALIZADO POR:"
    PAUSE 300
    LCDOUT$FE,1,
"MI"
    LCDOUT $FE,$C1,
"STALINROMERO"
    PAUSE 300
    GOTO INICIO
 
INICIO:
     ADCIN 0,FOT
     IF FOT 
"gt; 0 and PAD=0 AND PCD=0 AND PAI=0 AND PCI=0 AND MANAUT=0 THEN GOSUB JUNTAS
     IF MANAUT=1 THEN GOSUB MENS
     IF PAD=1 AND PCD=0 AND PAI=0 AND PCI=0 ANDMANAUT=1 THEN GOSUB ABRIRDER
     IF PCD=1 AND PAD=0 AND PAI=0 AND PCI=0 ANDMANAUT=1 THEN GOSUB CERRARDER
     IF PAI=1 AND PAD=0 AND PCD=0 AND PCI=0 ANDMANAUT=1 THEN GOSUB ABRIRIZQ
     IF PCI=1 AND PAD=0 AND PCD=0 AND PAI=0 ANDMANAUT=1 THEN GOSUB CERRARIZQ
 
     IF PAD=0 AND PCD=0 AND PAI=0 AND PCI=0THEN ERROR
 
MENS:
    LCDOUT $FE,1,
"SE CAMBIO ELMODO"
    LCDOUT $FE,$C1,
"A MANUAL"
    PAUSE 300
    RETURN    
JUNTAS:
    IF(FOT 
"gt;= 70) THEN
        LCDOUT $FE,1,
" SE ABRIRAN"
        LCDOUT $FE,$C1,
"LASCORTINAS"
        PAUSE 400
        PORTD=%0000
        PAUSE 10
        PORTD=%1010
        PAUSE 1000
        PORTD=%0000
    ELSE
        LCDOUT $FE,1,
" SE CERRARAN"
        LCDOUT $FE,$C1,
"LASCORTINAS"
        PAUSE 400
        PORTD=%0000
        PAUSE 10
        PORTD=%0101
        PAUSE 1000
        PORTD=%0000
    ENDIF
    return
 
ABRIRDER:
    LCDOUT $FE,1,
"  SE ABRIRA"
    LCDOUT $FE,$C1,
"CORTINA DERECHA"
    PORTD=%0000
    PAUSE 10
    PORTD=%0010
    PAUSE 1000
    PORTD=%0000
    RETURN
   
CERRARDER:
    LCDOUT $FE,1,
" SE CERRARA"
    LCDOUT $FE,$C1,
"CORTINA DERECHA"
    PORTD=%0000
    PAUSE 10
    PORTD=%0001
    PAUSE 1000
    PORTD=%0000
    RETURN
   
ABRIRIZQ:
    LCDOUT $FE,1,
"SE ABRIRA"
    LCDOUT $FE,$C1,
"CORTINA IZQUIERDA"
    PORTD=%0000
    PAUSE 10
    PORTD=%1000
    PAUSE 1000
    PORTD=%0000
    RETURN
    
CERRARIZQ:
    LCDOUT $FE,1,
"SE CERRARA"
    LCDOUT $FE,$C1,
"CORTINA IZQUIERDA"
    PORTD=%0000
    PAUSE 10
    PORTD=%0100
    PAUSE 1000
    PORTD=%0000
    RETURN
 
ERROR:
    LCDOUT $FE,1,
"NINGUN PULSADOR"
    LCDOUT $FE,$C1,
"ESTA ACTIVO"
    PAUSE 250
    GOTO PRESENTACION
   
END

 
 
 

 
 
 




FIN DEL POST







Mis otros posts

(Click en la imagen para redireccionar)

La Verdadera Montaña Más Alta Del Mundo, en Sudamérica






El mejor atardecer que vi en la vida (volcán)





Exámenes Resueltos de Resistencia de Materiales





El día en que casi muero (Relato Propio)





¿Aprendiendo Alemán?. Esto te será muy útil!



Te ahorro tiempo con el Office Word




Hasta pronto!  
Datos archivados del Taringa! original
275puntos
864visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
12visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

S
StalinRM🇦🇷
Usuario
Puntos0
Posts24
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.