InicioCiencia EducacionProyecto de Electrónica-Cortinas Inteligentes(propio)
Hola Amigos

Proyecto de Electrónica-Cortinas Inteligentes(propio)

En pocas palabras es un proyecto que tuve que hacer algún momento, en resumen es una foto de como se ve el circuito funcionando en Proteus(Progama que estará disponible en mis posts), y todo el código que irá en el microcontrolador, listo para después solo armar el circuito.
En resumen son unas cortinas, activadas por 2 motores de imán permanente, Las cortinas se abren o cierran independientemente si existe la señal u orden. Tiene 2 formas de funcionamiento: manual o automática. La manual es activando las cortinas manualmente, y la automática es mediante una fotoresistencia, la cual manda una señar 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 dice al sistema que se cambió a manual, al dejar de pulsarlo regresa a automatico 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óltios y uno de pontencia(motores) 9 vóltios. Una de las partes mas difíciles es la programación en Micro - Codec(programa que estará disponible en mis posts), 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 ;BIT DE 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 XD"
LCDOUT $FE,$C1,"STALIN ROMERO"
PAUSE 300
GOTO INICIO

INICIO:
ADCIN 0,FOT
IF FOT <> 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 AND MANAUT=1 THEN GOSUB ABRIRDER
IF PCD=1 AND PAD=0 AND PAI=0 AND PCI=0 AND MANAUT=1 THEN GOSUB CERRARDER
IF PAI=1 AND PAD=0 AND PCD=0 AND PCI=0 AND MANAUT=1 THEN GOSUB ABRIRIZQ
IF PCI=1 AND PAD=0 AND PCD=0 AND PAI=0 AND MANAUT=1 THEN GOSUB CERRARIZQ

IF PAD=0 AND PCD=0 AND PAI=0 AND PCI=0 THEN ERROR

MENS:
LCDOUT $FE,1,"SE CAMBIO EL MODO"
LCDOUT $FE,$C1,"A MANUAL"
PAUSE 300
RETURN
JUNTAS:
IF(FOT >= 70) THEN
LCDOUT $FE,1," SE ABRIRAN"
LCDOUT $FE,$C1,"LAS CORTINAS"
PAUSE 400
PORTD=%0000
PAUSE 10
PORTD=%1010
PAUSE 1000
PORTD=%0000
ELSE
LCDOUT $FE,1," SE CERRARAN"
LCDOUT $FE,$C1,"LAS CORTINAS"
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




Proyecto


Que les sea util!

Datos archivados del Taringa! original
138puntos
1,014visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
10visitas
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.