Elige tu idioma
Visitas
visitantes
Calendario Ideas&Tecnologia
Archivos
Meta
CATEGORIAS
- General (9)
- Ideas&Tecnología (1)
- Presentacion (8)
Entradas recientes
- Manual de Labview
- Manual de Proteus para diseno de PCB’S
- Radiocontrol con el TLP434 y RLP434
- FABRICACION DE UNA PCB POR TRANSFERENCIA TERMICA
- Reloj Ajedrez
Nube de Etiquetas
VIDEO
Ultimos comentarios
- Saludos.Interesante, no he usado este tipo de pape...
- Estimados, se que tienen un circuito de poder para...
- Tengo mucho interés en hacer poryectos con pics y ...
- hola victor como estas , estoy trabanjo sobre un p...
- buenisimo, sigue adelante a ver si te animas a hac...
- I uploaded a YouTube video -- Seguidor de linea I&T http://www.youtube.com/watch?v=ZX1CvsIn_2k&feature=autoshare_twitter
- I subscribed to mbenavidd1986's channel on YouTube http://www.youtube.com/user/mbenavidd1986?feature=autoshare_twitter
- Gracias robo3001!!!!! Un saludo para ti y para todo Peru (YouTube http://www.youtube.com/watch?v=UZMqlDsY9PU&feature=autoshare_twitter)
- I uploaded a YouTube video -- CER2006-Seguidor de linea http://www.youtube.com/watch?v=v0DpzrjGe58&feature=autoshare_twitter
- I uploaded a YouTube video -- Sistema de Seguridad Para un Laboratorio I&T http://bit.ly/Lr1TQ
- I uploaded a YouTube video -- CER2009, CIRAX CAMPEON Categoria Sumo Liviano http://bit.ly/c7miO
Enlaces
Count per Day
- 50Visitors per day:
- 3682Total visitors:
- 0Visitors currently online:
- 19 Noviembre 2009Counter starts on:
Directorios
Manual de Labview
12/01/10
Tutorial de Labview
Por: Ideas&Tecnologia

LabView es un programa para el desarrollo de aplicaciones de propositos generales, en la cual es utilizado por la mayoría de los estudiantes, ingenieros, investigadores, etc. Esto se debe por su amigable interface grafica y su facilidad de realizar grandes proyectos.
Labview abarca varios campos de ingeniería, como: Telecomunicaciones, Automatizacion, Estadistica, Programacion, Robotica, etc.
Instalación de Labview
Para la instalación de labview es realmente sencillo, solo seguir los pasos predeterminados que te indica el instalador y listo.
Lo que hay que tomar en cuenta es el ingreso de las licencias, para esto hay que irse a Programas -> National Instruments -> NI License Manager
Luego irse al menú Options y seleccionar Install License File, bueno aquí se debe buscar el archivo que aparece cuando crackeas, y listo, ya puedes darle uso al Labview.

Para el uso de bloques especiales en labview, como ejemplo: Rf Communications, PID, Filtros, Vision, Bases de Datos, USB, etc;. hace falta instalarlos a parte.
OJO!
Una de la formas de hacer proyectos en labview, bueno a criterio personal, es partiendo de los ejemplos que se encuentran en los archivos de instalación de labview, archivos que aparecen cuando instalas el labview y las librerías adicionales.
Estos archivos están direccionados en:
Archivos de Programas -> National Instruments -> Labview 8.5 -> Examples
Los temas que tratan los ejemplos son los siguientes:

Aquí lo que tienen que hacer es buscar lo que quieren hacer, por ejemplo: RF comunications, filtros, PID, Reconocimientos con visión, identificador de código de barras, etc. Y luego de lo buscado, partir como base para la realización de sus projectos.
Hay una inmensa gama de ejemplos de diferentes areas de ingeniería, algo que de seguro les va servir y de mucho.
Otras forma de buscar ejemplos es desde el mismo labview.

Luego debemos seleccionar la pestaña Search:

Y luego en Enter Keyword(s) poner lo que queremos realizar.
OBSERVACIONES
ü Labview es una herramienta que posee todas las facilidades para realizar diversas aplicaciones, lo ventajoso de trabajar con Labview es la utilización de diversas y diferentes opciones, ya que utiliza: base de datos, adquisición de imágenes, transmisión de datos, etc.
ü La modularización es una ventaja bien grande en LABVIEW, se puede analizar resultado por sub-bloques, dando una ubicación más fácil de donde se encuentra el error o percance en caso de que hubiere.
Hay gran cantidad de recursos de buena calidad en internet en enseñanza basica de labview, es por ese motivo que nos enfocaremos en Vision, ya que es escasa la información que existe.
Labview – Vision
Utilizacion de una Camara Web

Este es el diagrama de bloque para la utilizar la cámara web, ahora vamos a explicar paso a paso la realización de este diagrama de bloque.

Crea una lista de todas ls cámaras usb existentes en la computadora.

Con este matriz Index se selecciona cual cámara se desea utilizar pues poniendo el numero en la que se encuentra la cámara en la lista.
![]()
Crea una sesión IMAQ USB para la cámara especificada y luego realiza la adquisición.
![]()
Crea un memoria temporal para una imagen, en este caso, para la imágenes de la cámara web.

Aquí se obtiene imágenes durante la adquisición, se lo pone dentro de una while para que se mantega activado la visualización de imágenes, si deseamos finalizar solo aplastamos el botón STOP.
![]()
Cerramos la sesión de la cámara usb
![]()
Elimina o vacia la memoria temporal que se utilizo para obtención de imágenes.
![]()
Administra los errores que se pueden presentar.
Una vez explicado, haremos una demostración en el panel Frontal, que lo haremos a continuación:

RECOMENDACIÓN
1. En el manejo de las cámaras web, obligadamente tiene que conmutar una cámara a la vez en forma secuencial, en el caso de no hacerlo, ocasiona que el código en labview presente errores. Para solucionar este problema, debe de darse la inicialización de una cámara y la terminación de la misma, justo en el momento que se utilice la otra cámara, de esta manera se logrará manejar varias cámaras a la vez.
2. Cuando la cámara realiza el enfoque para obtener las imagenes, tratar de controlar la intensidad de luz por que afecta la adquisición de datos.
3. Para tener un margen de error pequeño en la toma de imágenes a través de una cámara web, es recomendable una cámara de alta fidelidad, mientras mayor sea la resolución, menor será el margen de error.
Manual de Proteus para diseno de PCB’S
Por: Ideas&Tecnologia

Proteus 7.4 es un programa que nos permite realizar simulaciones en tiempo real y diseño de PCB de nuestros prototipos electrónicos.
Instalación de Proteus 7.4
Abrimos la carpeta Proteus 7.4 SP3 y damos click 










Luego de haber finalizada la instalación, al tratar de ejecutar proteus 7.4 nos aparcera un mensaje que indica que el software no esta licenciado.

Crack de Proteus 7.4
En la carpeta de Proteus7.4 SP3 se encuentra un archivo cuyo icono es 
luego procedemos a copiarlo dentro de la carpeta que se crea al instalar proteus 7.4 en
C:\Archivos de programa\Labcenter Electronics\Proteus 7 Professional

Luego abrimos el archivo.exe doble click sobre




Listo, ahora si ya podemos utilizar Proteus 7.4 de manera normal.
Creando un nuevo Diseño
Hacemos click en el acceso directo que esta en el escritorio.![]()
Luego de abrir el programa aparecerá la siguiente ventana

Para crear un nuevo diseño nos dirigimos a la barra de herramientas y escogemos
Fileànew design…

Luego aparecerá otra ventana en donde nos dan algunos tipos de hojas para escoger para nuestro 1ee diseño escogeremos LandscapeA4.


Después procedemos a guardar nuestro diseño escogemos en la barra de herramientas File à save design… ponemos un nombre, luego damos clic en guardar.

Luego de haber guardado el diseño, el nombre que le pusimos debe aparecer en la parte superior izquierda de la ventana tal como se muestra

Procedemos a realizar el esquemático de nuestro diseño, para lo cual damos click en este icono
luego en,
una vez realizado esto aparecerá la sig ventana.

En donde podemos buscar el componente electrónico por su nombre, ingresándolo en la caja de texto “Keywords” o buscando en “Categoría” el elemento que queremos utilizar,
sin olvidar de asegurarnos que el elemento escogido tenga Footprint esto se muestra en la parte inferior derecha “PCB Preview:” que es importante al memento de realizar el PCB luego damos click en ok.


Una vez elegido los elementos necesarios para nuestro diseño estos deben aparecer en la parte izquierda dentro de “Devices ” tal como se muestra a continuación.

Para poner los elementos dentro del área del trabajo escogemos el elemento que se encuentra dentro de “Devices” damos click sobre el y luego click dentro del área de trabajo aparecerá el elemento en color rosado, esto nos da la libertad de moverlo en una ubicación que deseemos, una vez elegida la ubicación damos otro click y allí aparecerá el elemento en forma sólida, esto lo realizamos para cada uno de los componentes.


Una vez colocados los elementos dentro del área de trabajo procedemos a realizar las interconexiones entro ellos, para esto damos click en uno de los pines del 1er elemento a conectar y luego otro click en el otro pin del 2do elemento a conectar este procedimiento lo realizamos para todas la conexiones faltantes.


Ahora para elegir los terminales de VCC y GND damos click en “Terminal Mode” que es el icono ![]()
que se encuentra en la parte izquierda luego escogemos Power o GND y realizamos el mismo procedimiento empleado para colocar los elementos dentro del area de trabajo.

Para editar el elemento damos doble click sobre este y aparecerá la siguiente ventana donde “component Referente” es el nombre del elemento el cual podemos cambiar al que deseemos una vez realizado el cambio damos click en ok.

Una vez finalizado el esquemático procedemos a realizar el diseño de la PCB para lo cual damos click en el icono
![]()
esto realizara la ejecución de un programa llamado Ares encargado del diseño de PCB.


Damos click en el icono ![]()
para revisar visualizar que todos los elementos de nuestro diseño aparezcan en la parte de “Components”.

Luego tenemos que definir el tamaño de la PCB para lo cual damos click en ![]()
después escogemos el tipo de Layer para lo cual seleccionamos Board Edge.

Una vez escogido Board Edge damos click dentro del area de trabajo y movemos el puntero hacia otro extremo para definir el rectángulo y damos click.


Después de haber definido el tamaño del PCB escogemos ![]()
luego elegimos el elemento que deseemos dentro de Components de allí damos click dentro de la area que dibujamos y de la misma manera que realizamos nuestro esquemático en ISIS procedemos a colocar cada uno de los elemento de la forma que deseemos.

En la parte superior Izquierda se muestra el footprint del elemento seleccionado, si deseamos rotarlo utilizamos estas opciones
![]()
sin olvidar que al momento de rotar el elemento debe de mantener el color q se muestra verde y morado, esto q el elemento este en forma correcta visto desde arriba porque si toma el color rosado estaría mal.


Una vez colocados los elementos de la mejor manera damos click en
![]()
escogemos Net classes donde procedemos a editar, tanto para las líneas de Power y Signal y también podemos definir el tipo de placa ya sea de una cara o dos caras, esto lo hacemos Layer Assignment for Autorouting escogiendo en Par 1 ambos Bottom Copper para definir una placa de una cara y Bottom y Top Copper para placas de dos caras esto se lo realiza para cada Net Classes.



Después de haber realizado lo anterior damos click en ![]()
luego aparecerá una ventana y damos click en Begin Routing para iniciar el ruteo.

Listo ya hemos realizado nuestra PCB de forma exitosa.

Radiocontrol con el TLP434 y RLP434
Por: Ideas&Tecnologia
En esta oportunidad Ideas&Tecnologia les presenta este proyecto consiste en utilizar los módulos de radiofrecuencia de 434Mhz (TLP y RLP 434) para comunicar dos circuitos, en este caso un transmisor TX y un receptor RX.
Los módulos empleados solo nos permiten realizar una comunicación simplex, existes en el mercado mejores módulos que cuentan con modulación FSK (más inmune al ruido) y full dúplex.
En el transmisor esta una botonera que al momento de ser presionada hace que el micro en el transmisor envié un dato cuyo valor será validado en el receptor, esta comunicación se realiza gracias a los módulos de radio frecuencia mencionados. A continuación mostramos los datos de conexionado y polarización de los módulos empleados y el código utilizado para que el proyecto funcione.
DIAGRAMA DE CONECCION DE LOS MODULOS TLP-434
Y RLP-434
Estos módulos de radio frecuencia nos permiten hacer aplicaciones inalámbricas de radio control.
El rango de Vcc en el TLP-434 esta entre 2 – 12 V.
El TXD-PIC va conectado al pin TX del pic, para usar la comunicación UART.
La antena debe medir un cuarto de la longitud de onda (L/4)
L=c/f=300.000.000m/434.000.000Hz=0.69m
Long Ant = L/4 = 17cm


El rango de Vcc en el RLP-434 esta entre 4.5 – 5.5 V.
El TXD-PIC va conectado al pin RX del pic, para usar la comunicación UART.
Long Ant = L/4 = 17cm


SIMULACION DE LA COMUNICACIÓN ENTRE LOS MICROS
En la simulación basta con unir los micros (PIC’s) con un cable representando así la comunicación seria entre el PIC que transmite y el PIC que recibe.

En esta figura vemos como se transmite el dato cero (0X00) constantemente miestras no se presiona la botonera en el transmisor.
El receptor al recibir el dato 0×00 (hexadecimal) no enciende el led indicador.

En esta figura apreciamos que al momento de presionar la botonera, el transmisor envía el dato 23 (decimal), este dato lo recibe el receptor y lo valida encendiendo entonces el led indicador como se ve en la figura.
CODIGO EN PICC DEL MICRO TX
//#include “D:\Ideas&Tecnologia\tx.h”
#include <16F876A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPUT //No Power Up Timer
#FUSES PROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#use delay(clock=10000000)
#use rs232(baud=2400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
void main() {
set_tris_a (0b00000001);
set_tris_b (0b00000000);
set_tris_c (0b00000000);
setup_adc_ports(NO_ANALOGS);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_1,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
while(1){
if(input(PIN_A0)==1){
while(input(PIN_A0)==1){
}
putc(23);
}else{
putc(0);
}
}
}
CODIGO EN PICC DEL MICRO RX
//#include “E:\Ideas&Tecnologia\rx.h”
#include <16F876A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPUT //No Power Up Timer
#FUSES PROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#use delay(clock=10000000)
#use rs232(baud=2400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
int it;
void main() {
set_tris_a (0×00);
set_tris_b (0b00000000);
set_tris_c (0b10000000);
setup_adc_ports(NO_ANALOGS);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_1,255,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
while(1){
delay_ms(5);
if(getc()==23){
if(it==0){ it=1;
output_low(pin_B0);
}
else{ it=0;
output_high(pin_B0);
}
}
}
}
FABRICACION DE UNA PCB EN FORMA
CASERA
POR TRANSFERENCIA TERMICA
Por: Ideas&Tecnologia

DESCRIPCION
Realizar el circuito impreso de forma simple a manera profesional.
Una vez ya realizado el circuito pcb en ARES procedemos a pasar el circuito a la baquelita, con materiales que tenemos a disposición en nuestros hogares.
MATERIALES:
Baquelita
Hoja adhesiva A4
Plancha (las que se usan para planchar la ropa)
Lija fina o lustre para limpiar la película de protección que viene en la baquelita
Broca 1mm
Acido ferrico
Recipiente
MANOS A LA OBRA:
1. Despegamos las dos partes que conforman la hoja adesiva “esto es importante ya que debemos tomar una de las dos para hacer la impresión del circuito” y tomamos la hoja que no tiene el pegamento.
2. Imprimimos el circuito pcb en una impresora ´LASER´ (no se debe usar impresora a tinta) ya que el método a seguir se llama transferencia térmica.

3. Una vez impreso vamos a pasar nuestra imagen del circuito a la baquita.
4. Limpiamos la película de protección de la baquelita con un lustre hasta que quede brilloso.

5. Recortamos la baquelita a una medida un poco mayor a la del circuito impreso.
6. Sobreponemos el papel con la baquelita y sujetamos con cinta transparente.

7. Encendemos la plancha y la ponemos a la máxima temperatura.
8. Procedemos a planchar, en los primeros momentos mantenemos por unos 15 seg la pancha sobre el papel para asegurarnos que no se deslice luego de ello hacemos ligeros movimientos hasta estar seguros de haber cubierto todas las áreas hacemos esto por unos 5 min (el tiempo puede variar de acuerdo al tamaño del circuito).



9. Una vez planchado llevamos la baquelita a una tina de agua y la sumergimos (con esto hacemos que la hoja se empape y quede la impresión sobre la baquelita) esperamos unos minutos y vamos retirando el papel suavemente.

10. Podremos apreciar que la impresión va quedando el la baquelita y limpiamos con un cepillo los restos de papel que estén por ahí.



11. Si en el caso de que se llegue a perder una línea se puede arreglar con un marcador indeleble la falla.
12. Preparamos el acido férrico con agua hasta una medida donde pueda cubrir la baquelita en nuestro recipiente.

13. Sumergimos la baquelita en el acido, en nuestro caso tenemos una maquina que nos ayuda en hacer los movimientos para que el liquido este corriendo por todas partes.

14. Esperamos hasta que el acido se halla comido la parte que no es circuito.


15. Limpiamos, perforamos donde van los elementos y listo ya tienes tu pcb.



16. Con esto concluimos y a disfrutar de tu proyecto.
Reloj Ajedrez
06/01/10
Reloj Ajedrez
Por: Ideas&Tecnologia

Descripción
Este proyecto realizado en codigo assembler consiste en el diseño de un circuito de reloj digital cuya funcion es la de controlar el tiempo de una partida de ajedrez. Para realizar este proyecto utilizamos el PIC16F887 y la
técnica de múltiplexación para ahorrar el uso de pines del microcontrolador y a su vez el consumo de energía debido a que se utiliza 8 display cátodo común, un indicador Led para inicio y final del juego,3 button para el control de Jugador1,2 y Start/Finish.
Funcionamiento
Al energizar el circuito este empezara con el reloj seteado en cero, esperando a que el juez presione el button Start/Finish, al presionar este button el indicador led encenderá indicando que se a iniciado el juego, luego de esto se espera a que un jugador presione el button para dar inicio al arranque del reloj una vez iniciado el juego el juez podrá detenerlo en el momento que deseo y a la vez reanudarlo.
Código en ASM
;**********************************************************************************************
LIST P=16F877A
INCLUDE “P16F877A.INC”
ERRORLEVEL -302
__CONFIG (_CP_OFF & _PWRTE_OFF & _HS_OSC & _WDT_OFF & _LVP_OFF & _BODEN_OFF )
;************Equivalencias ******************************************
DISPDIG1 EQU 0X20 ;COD 7 SEG DE DIGITO 1
DISPDIG2 EQU 0X21 ;COD 7 SEG DE DIGITO 2
DISPDIG3 EQU 0X22 ;COD 7 SEG DE DIGITO 3
DISPDIG4 EQU 0X23 ;COD 7 SEG DE DIGITO 4
DISPDIG5 EQU 0X24 ;COD 7 SEG DE DIGITO 5
DISPDIG6 EQU 0X25 ;COD 7 SEG DE DIGITO 6
DISPDIG7 EQU 0X26 ;COD 7 SEG DE DIGITO 7
DISPDIG8 EQU 0X27 ;COD 7 SEG DE DIGITO 8
SELECT EQU 0X29 ;HABILITADOR PARA DISPLAYS
UNIDAD EQU 0X30
DECENA EQU 0X31
N1 EQU 0X32
N2 EQU 0X33
N3 EQU 0X34
CENTENA EQU 0X35
SEGJUGA1 EQU 0X36
SEGJUGA2 EQU 0X37
MINJUGA1 EQU 0X38
MINJUGA2 EQU 0X39
; CARGA_TMR0 SE USA PARA PROGRAMAR EL TMR0
CARGA_TMR0 EQU d’217′ ;217=>2ms
;*********************************************************************
ORG 0
GOTO INICIO
ORG 4 ;Int cada 5ms
GOTO INTERRUPTION
;#####################################################################
; PROGRAMA PRINCIPAL
INICIO
BSF STATUS,5 ; Seleccion del banco 1
CLRF TRISD
MOVLW 07H
MOVWF TRISC
CLRF TRISB
CLRF TRISE
MOVLW b’10000111′
MOVWF OPTION_REG ; PRE-ESCALER=256
MOVLW b’10100000′ ; Interrupci¢n por timer0
MOVWF INTCON
bcf STATUS,5 ; Seleccion banco 0
CLRF PORTB
CLRF PORTC
CLRF PORTD
CLRF PORTE
CLRF DISPDIG1
CLRF DISPDIG2
CLRF DISPDIG3
CLRF DISPDIG4
CLRF DISPDIG5
CLRF DISPDIG6
CLRF DISPDIG7
CLRF DISPDIG8
CLRF SELECT
CLRF UNIDAD
CLRF DECENA
CLRF CENTENA
CLRF SEGJUGA1
CLRF SEGJUGA2
CLRF MINJUGA1
CLRF MINJUGA2
CLRF N1
CLRF N2
CLRF N3
CLRWDT
MOVLW 0×01 ;Interrupción por timer0
MOVWF SELECT
MOVLW CARGA_TMR0 ;Valor a cargar en el Timer:
MOVWF TMR0
STARTPRESS
BCF PORTC,3
BTFSC PORTC,2 ;SI BIT=0 EJECUTA SIG INSTRUCCION
GOTO STARTSOLTAR
GOTO STARTPRESS
STARTSOLTAR BTFSC PORTC,2 ;SI BIT=0 EJECUTA SIG INSTRUCCION
GOTO STARTSOLTAR
BSF PORTC,3
PRESS BTFSC PORTC,0 ;SI BIT=0 EJECUTA SIG INSTRUCCION
GOTO SOLTARJUGADOR1
BTFSC PORTC,1
GOTO SOLTARJUGADOR2
GOTO PRESS
SOLTARJUGADOR1 BTFSC PORTC,0
GOTO SOLTARJUGADOR1
GOTO JUGADOR1
SOLTARJUGADOR2 BTFSC PORTC,1
GOTO SOLTARJUGADOR2
GOTO JUGADOR2
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
JUGADOR1
INCF SEGJUGA1,F
MOVF SEGJUGA1,W
SUBLW .60
BTFSC STATUS,2
GOTO MINUTOSJ1
GOTO SEGUNDOSJ1
MINUTOSJ1 CLRF SEGJUGA1
INCF MINJUGA1,F
BCF STATUS,2
CLRW
SEGUNDOSJ1
BTFSC PORTC,1
GOTO JUGADOR2
CALL TIMEJUGADOR1
CALL DELAY
BTFSC PORTC,2
GOTO STOP
GOTO JUGADOR1
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
JUGADOR2
INCF SEGJUGA2,F
MOVF SEGJUGA2,W
SUBLW .60
BTFSC STATUS,2
GOTO MINUTOSJ2
GOTO SEGUNDOSJ2
MINUTOSJ2 CLRF SEGJUGA2
INCF MINJUGA2,F
BCF STATUS,2
CLRW
SEGUNDOSJ2
BTFSC PORTC,0
GOTO JUGADOR1
CALL TIMEJUGADOR2
CALL DELAY
BTFSC PORTC,2
GOTO STOP
GOTO JUGADOR2
STOP BTFSC PORTC,2
GOTO STOP
GOTO STARTPRESS
;************************************************************************
TIMEJUGADOR1
MOVF SEGJUGA1,W
CALL BINBCD
MOVF UNIDAD,W
MOVWF DISPDIG4
MOVF DECENA,W
MOVWF DISPDIG3
MOVF MINJUGA1,W
CALL BINBCD
MOVF UNIDAD,W
MOVWF DISPDIG2
MOVF DECENA,W
MOVWF DISPDIG1
RETURN
;************************************************************************
TIMEJUGADOR2
MOVF SEGJUGA2,W
CALL BINBCD
MOVF UNIDAD,W
MOVWF DISPDIG8
MOVF DECENA,W
MOVWF DISPDIG7
MOVF MINJUGA2,W
CALL BINBCD
MOVF UNIDAD,W
MOVWF DISPDIG6
MOVF DECENA,W
MOVWF DISPDIG5
RETURN
;************************************************************************
;**********************************************************************
; SUBRUTINA INTERRUPT
INTERRUPTION
MOVLW b’10100000′ ;Limpiar bandera de TMR0
MOVWF INTCON
MOVLW CARGA_TMR0 ;Valor a cargar en el Timer:
MOVWF TMR0
CLRWDT
BCF ´ STATUS,C
BTFSC SELECT,0 ;SI BIT CODIGO_G0.0=1 EJECUTA SIG INSTRUCCION
GOTO DIG1
BTFSC SELECT,1 ;SI BIT CODIGO_G0.1=1 EJECUTA SIG INSTRUCCION
GOTO DIG2
BTFSC ´ SELECT,2 ;SI BIT CODIGO_G0.2=1 EJECUTA SIG INSTRUCCION
GOTO DIG3
BTFSC SELECT,3 ;SI BIT CODIGO_G0.3=1 EJECUTA SIG INSTRUCCION
GOTO DIG4
BTFSC SELECT,4 ;SI BIT CODIGO_G0.3=1 EJECUTA SIG INSTRUCCION
GOTO DIG5
BTFSC SELECT,5 ;SI BIT CODIGO_G0.3=1 EJECUTA SIG INSTRUCCION
GOTO DIG6
BTFSC SELECT,6 ;SI BIT CODIGO_G0.3=1 EJECUTA SIG INSTRUCCION
GOTO DIG7
BTFSC SELECT,7 ;SI BIT CODIGO_G0.3=1 EJECUTA SIG INSTRUCCION
GOTO DIG8
DIG1
CLRF PORTD
MOVF DISPDIG1,W
CALL TABLA
MOVWF PORTB ;Dato al display
MOVF SELECT,W
MOVWF PORTD
NOP
MOVLW 0×02
MOVWF SELECT
RETFIE
DIG2
CLRF PORTD
MOVF DISPDIG2,W
CALL TABLA
MOVWF PORTB ;Dato al display
MOVF SELECT,W
MOVWF PORTD
NOP
MOVLW 0×04
MOVWF SELECT
RETFIE
DIG3
CLRF PORTD
MOVF DISPDIG3,W
CALL TABLA
MOVWF PORTB ;Dato al display
MOVF SELECT,W
MOVWF PORTD
NOP
MOVLW 0×08
MOVWF SELECT
RETFIE
DIG4
CLRF PORTD
MOVF DISPDIG4,W
CALL TABLA
MOVWF PORTB ;Dato al display
MOVF SELECT,W
MOVWF PORTD
NOP
MOVLW 0×10
MOVWF SELECT
RETFIE
DIG5
CLRF PORTD
MOVF DISPDIG5,W
CALL TABLA
MOVWF PORTB ;Dato al display
MOVF SELECT,W
MOVWF PORTD
NOP
MOVLW 0×20
MOVWF SELECT
RETFIE
DIG6
CLRF PORTD
MOVF DISPDIG6,W
CALL TABLA
MOVWF PORTB ;Dato al display
MOVF SELECT,W
MOVWF PORTD
NOP
MOVLW 0×40
MOVWF SELECT
RETFIE
DIG7
CLRF PORTD
MOVF DISPDIG7,W
CALL TABLA
MOVWF PORTB ;Dato al display
MOVF SELECT,W
MOVWF PORTD
NOP
MOVLW 0×80
MOVWF SELECT
RETFIE
DIG8
CLRF PORTD
MOVF DISPDIG8,W
CALL TABLA
MOVWF PORTB ;Dato al display
MOVF SELECT,W
MOVWF PORTD
NOP
MOVLW 0×01
MOVWF SELECT
RETFIE
;***********************************************************
;SUBRUTINA DELAY=N1×20.556 MSEG.
;CON N1=25 SE TIENE UN RETARDO DE 0.5 SEG
;CON N1=50 SE TIENE UN RETARDO DE 1 SEG.
;CON N1=100 SE TIENE UN RETARDO DE 2 SEG.
DELAY MOVLW .50
MOVWF N1
LAZO1 MOVLW .67
MOVWF N2
NOP
LAZO2 MOVLW .255
MOVWF N3
LAZO3 NOP
NOP
NOP
DECFSZ N3,F
GOTO LAZO3
DECFSZ N2,F
GOTO LAZO2
DECFSZ N1,F
GOTO LAZO1
RETURN
;***********************************************************
;Tabla de códigos de 7 segmentos para un display de CATODO COMUN. Los leds
;se encienden con un cero
TABLA
addwf PCL,F
retlw 0×3F ;0
retlw 0×06 ;1
retlw 0×5B ;2
retlw 0X4F ;3
retlw 0X66 ;4
retlw 0X6D ;5
retlw 0X7D ;6
retlw 0X07 ;7
retlw 0X7F ;8
retlw 0X6F ;9
;************************************************************************
;SUBRUTINA BINARIO/BCD
BINBCD NOP
MOVWF UNIDAD;NUMERO A CONVERTIR
CLRF DECENA
CLRF CENTENA
RESTA10 MOVLW .10
SUBWF UNIDAD,W
BTFSS STATUS,C;SALTA SI W >=10, C=1
GOTO BINBCDFIN
MOVWF UNIDAD;ACTUALIZA UNIDAD
INCF DECENA,F
MOVLW .10
SUBWF DECENA,W
BTFSS STATUS,C;SALTA SI W>=10, C=1
GOTO RESTA10
CLRF DECENA
INCF CENTENA,F
GOTO RESTA10
BINBCDFIN RETURN
;************************************************************************
END
Diseño de PCB



Contador up/down de 3 dígitosc
05/01/10
Contador up/down de 3 dígitos
Por: Ideas&Tecnologia

Descripción
Este proyecto consiste en diseñar un circuito contador de 3digitos mediante el PIC16F887, esto se mostrara en Formato Decimal y Binario. Para aquello se emplea 3 display Cátodo Común y 16 Led, donde el bit LSB es el pin RB0 y el MSB pin RC7, el modo de conteo se controla mediante el button (up/down)
Para realizar este proyecto utilizamos la técnica de múltiplexación para ahorrar el uso de pines del microcontrolador y a su vez el consumo de energía.
Funcionamiento
Al energizar el circuito este mostrara el numero ‘000’, para iniciar el conteo se presionara el button ‘up/down’ y de esta manera se iniciara el conteo up, si se desea cambiar el modo de conteo se deberá presionar el button up/down para cambiar al modo opuesto es decir al modo down.
Este circuito llegara hasta el valor máximo de ‘999’ una vez llegado a este valor se detendrá el conteo y esperara que el usuario vuelva a presionar el button ‘up/down’ lo mismo ocurrirá la llegar al valor ‘000’.
Código en MicroBasic
program CodigoMicro
dim DIG1 as WORD
dim DIG2 as WORD
dim DIG3 as WORD
dim Cont as Byte
dim Cont2 as Byte
dim numero as Word
dim Sentido as Byte
dim Tiempo as Byte
dim numeroLSB as WORD
dim numeroMSB as WORD
dim Tecla as Byte
dim salto as byte
sub procedure ButtonA()
if PORTA.0=1 then
while(PORTA.0=1) wend
Tecla=1
if Sentido=0 then
Sentido=1
else
Sentido=0
END IF
end if
end sub
sub function CODIG7SEG(dim num as Word) as BYTE
select case num
case 0 result = $3F
case 1 result = $06
case 2 result = $5B
case 3 result = $4F
case 4 result = $66
case 5 result = $6D
case 6 result = $7D
case 7 result = $07
case 8 result = $7F
case 9 result = $6F
end select ‘case end
end sub
sub procedure interrupt ‘ Interrupt service routine
INTCON = $00 ’ Set T0IE, clear T0IF
Inc(CONT)
Inc(Cont2)
IF Cont=1 THEN
PORTE.2=0
PORTE.1=0
PORTE.0=1
DELAY_US(5)
PORTD=CODIG7SEG(DIG1)
END IF
IF Cont=2 THEN
PORTE.0=0
PORTE.2=0
PORTE.1=1
DELAY_US(5)
PORTD=CODIG7SEG(DIG2)
END IF
IF Cont=3 THEN
PORTE.0=0
PORTE.1=0
PORTE.2=1
DELAY_US(5)
PORTD=CODIG7SEG(DIG3)
Cont=0
END IF
If Cont2=100 then
Tiempo=1
Cont2=0
End If
‘ Increment value of cnt on every interrupt
TMR0 = 245
INTCON = $A0 ‘ Set T0IE, clear T0IF
end sub
main:
OPTION_REG = $07 ‘ Assign prescaler to TMR0
ANSEL = 0 ‘ Configure AN pins as digital I/O
ANSELH = 0
TRISB = 0 ‘ PORTB is output
TRISA=$01
TRISC = 0
TRISD = 0
TRISE=0
WPUB=$FF
TMR0 = 245 ‘ Timer0 initial value
INTCON = $A0 ‘ Enable TMRO interrupt
Cont=0
Cont2=0
DIG1=0
DIG2=0
DIG3=0
portA=0
PORTB=0
PORTC=0
PORTD=0
PORTE=0
numero=0
numeroLSB=0
numeroMSB=0
Sentido=0
Tiempo=0
Tecla=0
Salto=0
while(1) ‘ While there is no interrupt, program runs in endless loop:
INICIO:
ButtonA()
if Tecla=0 THEN
goto INICIO
END IF
REVISAR:
IF Tecla=1 THEN
IF ((Sentido=0 ) AND (Tecla=1) )then
goto Decrementa
END IF
IF ((Sentido=1 ) AND (Tecla=1) )then
goto Incrementa
end if
else if salto=0 then
goto incrementa
else goto decrementa
end if
end if
Incrementa:
salto=0
Tecla=0
if Tiempo=1 then
if numero <999 then
Inc(numero)
end if
numeroLSB= lo(numero)
portB=numeroLSB
numeroMSB=Hi(numero)
portC=numeroMSB
DIG1= (numero / 100 )
DIG2= (numero / 10) mod 10
DIG3= numero mod 10
Tiempo=0
End If
ButtonA()
GOTO REVISAR
Decrementa:
salto=1
Tecla=0
if Tiempo=1 then
if numero>0 then
Dec(numero)
end if
numeroLSB= lo(numero)
portB=numeroLSB
numeroMSB=Hi(numero)
portC=numeroMSB
DIG1= (numero / 100 )
DIG2= (numero / 10) mod 10
DIG3= numero mod 10
Tiempo=0
End If
ButtonA()
GOTO REVISAR
wend
end.
Diseño de PCB



ALTIUM DESIGNER
Por: Ideas&Tecnologia

ALTIUM DESIGNER es una Herramienta integrada para la implementación de sistemas electrónicos, este programa es capaz permitirnos llevar el diseño del hardware desde la concepción inicial hasta el producto final y por todas las etapas de desarrollo, en este tema nos vamos a centrar en la parte de diseño de PCBs (Printed Circuit Board).
CREACION DE UN NUEVO PROYECTO
Luego de tener Instalado el programa, en el escritorio tendrá el icono “Acceso directo a DXP” el mismo que le permite abrir el altium.
Luego de que abre el programa le aparecerá el “Home page” del Altium, en donde vamos a encontrar todas las herramientas necesarias para desarrollar los diseños de PCB.
Primero para crear un nuevo diseño de PCB (Printed Circuit Board) nos dirigimos a la barra de herramientas del altium, en FILE luego nos dirigimos a NEW, luego a PROYECT y finalmente seleccionamos PCB_PROYECT.
Luego nos aparecerá la siguiente ventana donde seleccionaremos Protel Pcb y hacemos clic en OK.
Ahora para ver el nuevo proyecto en blanco sobre el que trabajaremos, nos dirigimos a la parte inferior derecha en la barra de herramientas hacemos clic en SYSTEM, luego clic en Proyect.
Entonces nos aparecerá la ventana flotante , misma que la arrastraremos al lado izquierdo del HOME PAGE del altium.
COMO AGREGAR UN ESQUEMATICO AL PROYECTO
En la figura siguiente se muestra ya la ventana fija. Donde se muestra el proyecto PCB_Proyect1 que es el proyecto en blanco, luego le hacemos clic derecho y seleccionamos en ADD_New to Project -> Schematic con lo que estamos agregando al proyecto un esquemático en blanco donde trabajaremos nuestro diseño
llamado Sheet1.
Haciendo doble clic en el esquemático Sheet1, nos aparecerá el Work Space sobre la que trabajaremos nuestro diseño esquemático.
Para hacer un zoom in u out, se lo hace presionando la tecla CONTROL y moviendo el scrool del ratón, o con RePag para acercar y AvPag para alejar.
COMO USAR LAS LIBRERIAS DEL ALTIUM
Para usar la librería de los componentes para el diseño, nos vamos a la parte inferior derecha en system y hacemos clic en Libraries.
La pagina flotante de librerias aparece en el lado derecho.
Pero podemos arrastrarla al lado izquierdo para tener así mas espacio para poder trabajar en el work space.
El library nos permite buscar los componentes, para desarrollar el esquematico. La librería por defecto que tendremos es el Miscellaneous Devices, pero podemos agregar mas librerías, como se puede ver.
Si luego de escribir el nombre del componente, no aparece ningún nombre en la lista, entonces no existe ese componente en la actual lista (en este caso miscellaneous device), como se ve en la fig.

Para hallar la librería que contiene a nuestro componente, hacemos clic en search y nos aparecerá la ventana que vemos en la sig. figura.
Los asteriscos (*16f786*)que escribimos junto con el nombre, le indican al buscador que puede haber cualquier letra en el lugar de dichos asteriscos. En la misma ventana, en SCOPE seleccionemos Libraries on Path para que se busque el componente en todas las librerías del altium. Si seleccionamos Available Libraries son las librerías que ya tenemos agregadas, Ej. Miscellaneous device.
Una vez encontrada la librería que contiene nuestro componente, nos aparecerá una ventana preguntando si queremos agregarla a Libraries Path y hacemos clic en SI.
<!–[if !mso]> <! st1\:*{behavior:url(#ieooui) } –>
Ahora vemos en el Path de libraries la librería Microchip Microcontroller 8-Bit PIC 16f, que es la librería que en este caso tiene el componente que estábamos buscando.
Note que la librería del altium nos indica tanto el diagrama esquemático del componente como también la imagen en 3D del mismo. Luego hacemos clic en el nombre del componente y arrastramos sin soltar sobre Work Space del esquemático Sheet1.

De ahora en adelante cuando no sepamos en que librería esta el componente deseado, buscaremos su librería y la agregaremos al Path de Librerías.
COMO REALIZAR EL DIAGRAMA ESQUEMATICO
Con la herramienta
que esta en la barra de herramientas, podemos seleccionar la parte específica del work space donde trabajar.
En las herramientas de diseño eléctrico
de la barra de herramientas, seleccionamos Place Wire para realizar las conexiones eléctricas entre los componentes del esquemático.
El Net Label de la barra de herramientas le
permite poner nombre a los cables , para así evitar hacer mucho cableado que dificulta realizar un diagrama esquemático fácil de comprender.
Para hacer ROTAR a los componentes, mantenga un cilc sobre el componente y teclee la barra espaciadora.
COMO AGREGAR UN PCB.PcbDoc AL PROYECTO
Una vez ya realizado el diagrama esquemático, agregamos a nuestro proyecto un PCB en blanco, para eso nos dirigimos a la ventana flotante Projects, Cualquiera de las ventanas flotantes de System que necesitemos, podemos arrastrarlas ya sea a lado izquierdo o derecho del work space del altium, en este caso Proyect está en el lado derecho.

En la ventana flotante de Projects, hacemos clic derecho a nuestro proyecto luego Add New Project y hacemos clic en PCB
Entonces nos aparecerá en el work space la hoja para hacer el PCB. Y a nuestro proyecto se a agregado el archivo PCB1.PcbDoc.
Ahora antes de realizar el roteo del esquemático (Realizar el PCB), debemos importar los componentes desde esquemático al PCB.pcbDoc, Pero antes debemos poner nombre a todos los componentes para que el altium sepa diferenciarlos y se los aprecie por sus nombres en el PCB.
COMO HACER EL DESIGNE DE LOS COMPONENTES
Podemos nombrar a todos los componentes manualmente haciendo doble clic sobre el componente, entonces se abrirá la ventana.
En Designator, colocamos el nombre o designación del componente para diferenciarlo de otros componentes del mismo tipo, además en la ventana tenemos la posibilidad de hacer que el altium nos muestre la designación que hemos hecho al componente así como también la numeración de fábrica del mismo Ej. Pic16f876.
Para nombrar los componentes automáticamente, no dirigimos a la barra de herramientas en Tools y hacemos clic en Annotate…
Luego nos aparece la ventana que se muestra a continuación, en la sección que dice Order of Processing, podemos seleccionar el orden de numeración de los componentes

Ahora en la misma ventana, en la parte derecha, nos aparece la lista de los componentes que usamos en el esquemático, en la columna Sub, seleccionamos todos los componentes y hacemos clic en el botton Update Changes List.
Luego en la columna Designator aparecerá el nombramiento que hizo altium a los componentes.

Con ello hacemos clic en Accept changes (Create ECO) en la misma ventana.
Entonces aparecerá una nueva ventana con el reporte con el designator de los componentes del esquemático y hacemos clic en Execute Changes.
Cerramos esas ventanas y en el work space, tenemos nuestro diagrama esquemático con todos sus componentes ya designados.
COMO IMPORTAR LOS COMPONENTES DESDE EL ESQUEMATICO HACIA EL PCB
Luego de haber grabado el esquemático, nos dirigimos al PCB1.PcbDoc, haciendo clic al icono PCB1.PcbDoc que esta debajo de la barra de herramientas.
Ahora nos vamos a Design y hacemos clic en Import Changes From ………(Nombre del esquemático).
* Si realizamos algún cambio en el esquemático, podemos actualizar ese cambio en el archivo .PcbDoc haciendo clic en en Import Changes From PCB_Project1.PrjPCB

Entonces aparece una ventana con el reporte del designe de todos los componentes,
conexiones, etc.

Podemos primero validar que estén bien antes de importar los componentes, haciendo
clic en ![]()
Valídate Changes.
Luego ejecutamos los cambios con Execute Changes.

Luego de cerrar la ventana, en el work space del PCB.PcbDoc aparece a un lado del Borrad (Fondo negro de cuadriculas) los componentes del esquemático conexionados.

COMO DIMENCIONAR EL BOARD DEL PCB
Luego arrastramos los componentes hacia el board. Haciendo clic y arrastrando.

El área roja en el que están los componentes es el área de ruteo donde van a estar las pistas del PCB.
Si queremos la hacemos más grande, arrastramos haciendo clic sobre los cuadritos blancos.

El área negra BOARD representa la baquelita o placa que vamos a usar para nuestro PCB, por ello debemos dimensionarla con la misma área que la de ruteo.

Primero nos dirigimos a la barra de herramientas en Design luego en Borrad Shape y hacemos clic en Redefine Borrad Shape.

Ahora con el cursor haremos clic en las cuatro esquinas del nuevo tamaño del borrad, en este caso el tamaño del área de ruteo en donde ordenaremos los componentes.

Ahora el área del borrad es la misma que el área de ruteo, es decir la sobre el tamaño de nuestra baquelita o placa haremos el ruteo de las pistas.

COMO CAMBIAR LOS footprint DE LOS COMPONENTES
Note que ahora los componentes son representados en el PCB for su respectivo FOOTPRINT o HUELLA, que es la que veremos realmente al realizar la baquelita.
Para eso hacemos doble clic sobre el componente que queremos modificar el footprint, en este caso la huella que nos dio el altium para nuestro PIC es para un integrado de tecnología superficial. Para cambiar hacemos doble clic sobre el componente.

La ventana siguiente corresponde a las propiedades de del componente, también podemos acceder a la ventana haciendo clic derecho sobre el componente y en Properties.

En la ventana seleccionamos en Footprint y hacemos clic en name.

Entonces se abre la ventana de librerías de los footprint.

Note que los foot print corresponde a la librería Microchip, así como para cada componente existe una librería, en esa misma librería están algunos de sus footprint, en nuestro caso necesítanos el DIP-28.

Ahora el footprint del PIC se actualizo, el color verde en el borrad indica que un componente sale o toca la orilla del PCB.

COMO SETEAR LA UNIDAD METRICA
Pare esto hacemos clic derecho sobre el borrad y en Options hacemos clic en Board Options.

En la ventana que se abre, seleccionamos en UNIT a Metric, y luego OK.

COMO HACER EL ROUTE DEL PCB
Luego ordenamos los componentes de tal forma que sea más fácil para el programa el ruteo de las pistas.

Ahora vamos a la barra de herramientas en Auto Route y hacemos clic en ALL.

Nos aparece la ventana de configuración de ruteo para el PCB.

En el button Edit Layer Directions podemos setear (Current Setting) los parámetros de ruteo para el top layer (cara frontal de la baquelita o pcb) y del button layer (cara posterior del pcb), en caso de que queramos que el pcb sea de doble cara.

Si deseamos hace una baquelita de una sola cara, deshabilitamos el top layer y para el button layer le seteamos en any.

Para editar el tamaño de las pistas, hacemos clic en Routing Widths.

Luego haciendo clic en la opción Rule – width.

En la ventana podemos editar tanto el mínimo, máximo y preferible tamaño para el ruteo de las pistas.

Luego de hacer OK, en la ventana Principal de seteos de ruteo, hacemos clic en “RUTE ALL”
En el work space nos aparece el ruteo en tiempo real de la pista y una ventana flotante de mensajes de ruteo.

Si queremos deshacer el ruteo para editar algún parámetro de ruteo u ordenar algún componente para unas pistas más sencillas, nos vamos a tools -> Un Route y hacemos clic en ALL.

Ahora hemos cambiado el orden de unos componentes.

Y también el espesor de las pistas para el ruteo.

COMO CREAR EL 3D DEL PCB
Luego de ya realizado el ruteo de las pistas que deseamos, nos dirigimos a View y hacemos clic en Board in 3D.

En el work space tendremos ahora el PCB en 3D y una ventana flotante de mensajes.

Note que pese a cambiar el FootPrint de PIC, la imagen en 3D no a cambiado, esto es dado a que altium tiene definido una imagen 3D para cada componente.
Si hacemos clic en la parte inferior derecha en PCB 3D, abriremos la ventana flotante del 3D que nos indica la lista de componentes, esta ventana la podemos dejar en la parte izquierda para una mejor visión de work space.

Note que con el uso del orientador del PCB 3D podemos ver tanto la cara frontal (Top Layer) de nuestro PCB y también la cara posterior (Button Layer).

Top Layer

Button layer







