Elige tu idioma

Google-Translate-Spanish to English Google-Translate-Chinese (Simplified) BETA Google-Translate-Spanish to French Google-Translate-Spanish to German Google-Translate-Spanish to Italian Google-Translate-Spanish to Japanese BETA Google-Translate-Spanish to Korean BETA Google-Translate-Spanish to Russian BETA
Usa este widget!

Visitas

Contador Web
Contador Web WAU_classic('65kdjd2sjoxp')

visitantes

Calendario Ideas&Tecnologia

Marzo 2010
L M X J V S D
« Ene    
1234567
891011121314
15161718192021
22232425262728
293031  

Archivos

Meta

CATEGORIAS

Entradas recientes

Nube de Etiquetas

VIDEO

Ultimos comentarios

Enlaces

Count per Day

Directorios

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

112

tx

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

214

rx

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.

313

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.


413


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);

}

}

}

}

Reloj Ajedrez

Por: Ideas&Tecnologia


110

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

211

311

411

GRUPO I&T

logo4

¿Quiénes somos?

Somos un Grupo de ingenieros que ofrece a sus clientes los siguientes SERVICIOS:



Además somos un grupo que se dedica a la INVESTIGACION:



OBJETIVO

Aportar con nuestros conocimientos a la sociedad brindando soluciones tecnológicamente eficientes acorde a las necesidades de nuestros clientes. Colaborar con el desarrollo de la tecnología mediante una constante capacitación y aportes de nuestras experiencias tanto en nuestro sitio electrónico como en charlas personalizadas a personas que la requieran.


Escríbenos o llámanos gustosos te responderemos

Correo: ideastecnology@gmail.com

Teléfono: 082659680

GUAYAQUIL - ECUADOR