[Aporte] Control remoto infrarrojo de 4 canales con pic

Que tal miborbolla! Ya probe el codigo con varios controles remoto TV SONY,lcd,en el protoboard y estos fueron mis resultados: al oprimir las teclas 0,1,2,3,4,5,6,7,8,9 me aparecen los valores en LCD= 9,0,1,2,3,4,5,6,7,8 respectivamente hasta aqui todo correcto,conforme a tu tablavalorSony.Pero al apretar Mute,Power,Reset,Jump,Enter,Menu,Power,...etc.,no me aparecen los valores de la tabla me aparecen 1,5,3,4 osea valores en unidades nada que ver con estos valores:

[/I][/I][/B]

Francamente no se que sucede, es obvio que ya estas decodificando el infrarojo, pues me comentas que del 0 al 9 todo OK, yo este código lo he probado infinidad de veces y siempre he obtenido los mismos resultados independientemente del control o el microcontrolador.

Asegúrate que en el display LCD tengas espacio suficiente para desplegar el resultado, y toma en cuenta que en mi codigo tengo un display de 4 lineas, asi que verifica la linea que imprime en el display:

Print At 2,1,"Valor recibido=",Dec SONY_COMMAND.

Por lo demás no se como ayudarte mas.

Saludos
 
Que tal miborbolla!!! Pues con la novedad que ya eche andar este proyecto los numeros que no me aparecen completos es por que use un LCD 16X2 y como tu mencionas que utilizaste un LCD X4 lineas yo creo que es por eso que no se despliega completamente,luego conseguire un lcd x4.para ver bien los valores de las otras funciones que traen los otros controles remotos de mi autoestereo por ejemplo.
Bueno pues independientemente del LCD que no es el adecuado forzozamente tiene que entrar la señal del TSOP1238 por el PIN RB.0 y suministrar informacion al pic para procesar las instrucciones con base en esto y al codigo del mensaje #2 del post le coloque los valores del comando 2,3,4,jump,enter,reset,menu y a fuerzas me tiene que activar los leds y efectivamente ejecuta las instrucciones.
Resumiendo: los valores que aparecen despues de presionar los comandos pueden estar en cualquier formato,binario,hexadecimal,decimal,etc.que mas que nada depende del programador en que formato quiere que se le devuelva la informacion en tu caso los devuelve en decimales por eso era la duda con respecto a tu post que pegaste en el mensaje#2.
Bueno gracias por la ayuda miborbolla ya logre hacer los 2 ejercisios decodificar con lcd y ejecutar acciones con el codigo.

Por aqui un video:





Tocando este tema de los infrarrojos ayer encontre un post tuyo que se me hizo interesante,voy a darle una leida y luego si no te molesta voy a consultarte para algunas dudas o en si para ver que es lo que hace exactamente este codigo/circuito,es este post del que te hablo:


Sensor de presencia con infrarojos
Hola Compañeros de foro:

Estoy practicando con transmisores/receptores infrarojos y en particular con un sensor de presencia, con la finalidad de tener otra opción a los sensores de calor PIR.

¿Por que? como sabemos los sensores PIR aun cuando son muy efectivos como sensor de movimiento, no se desempeñan muy bien cuando en su campo de acción un objeto se queda fijo y simplemente ya no sensan nada a menos que se mueva de nuevo el objeto.

Viendo por el foro los diferentes circuitos, en la que la mayoría, están basados en el 555 y el 567 que son analógicos y por tanto dependen de temperatura y tolerancia de los componentes o que mas bien están pensados como sensores de proximidad de poco alcance, me decidi a usar un microcontrolador para este propósito.

dejo aquí el código, diagrama y archivo en proteus (dentro del archivo .rar)...aunque debo advertir que el archivo en proteus no simula para nada la sección del infrarojo, ya que no encontré ningún receptor para poderlo simular


Por cierto deberias de postear algo sobre modulos RF 434 Mhz encoder,decoder,usando un pic mas que nada para aumentar o expandir a 6 u 8 canales de salida por ejemplo yo los he armado pero con el clasico que ya traen por default,osea 4 canales,me gustaria armar uno pero con pic programado en proton o pic basicpro tambien por ahi he leido que se puede colocar un HTdecoder en paralelo con el otro HTdecoder a la salida pero no he encontrado mucha informacion que digamos bueno de cualquier forma cualquiera de las dos formas seria bueno...Gracias.
 
interesante amigo y gracias por el aporte yo también estoy leyendo sobre este tema con el control SONY :) el archivo q nos muestras es una tabla y con esos valores ya podria pogramar mi pic y hacer tal función por ejemplo controlar un carrito con las funciones adelante , atras , derecha , izqueirda ? desearía una ayuda a esa duda Saludos :)


Hola Cosmico74:

Los valores los obtuve presentando en un display LCD, el contenido de la variable "SONY_COMMAND", este display lo conecte al pic y obtuve la tabla que te anexo en el archivo adjunto y el programa que utilize es el siguiente:



Con respecto a tu segunda pregunta, si puedes usar cualquier pin, si te fijas en este codigo, utilizo un PIC diferente, con un PIN diferente...

En un una oportunidad te comparto un código que envié por el puerto serial del pic el valor de "SONY_COMMAND" espero no tardarme en hacerlo.

Espero te aclare tus dudas, entre tanto recibe un cordial saludo.
 
Estoy haciendo este mismo circuito para mandos de sony pero no tengo lcd tengo 74hc595 y 74ls164 que los he utilizado para una bobinadora.¿Me podrian ayudar para en vez de usar lcd use leds de segmentos, serian 3?
Muchas gracias
 
un saludo para dario y el aporte que as echo. estas teniendo un buen enfoque para estructurar los programas.

no esta mal usar el comando seriel para la trasmision de datos por infrarrojo. pero ya podrias mandar datos a mayor escala (mayor. lo que se puede conun infrarrojo.. no mucho)

tenias que crear la rutina para leer el codigo de mandos nec o rc5, lo que me deja pillado..

un dia seme dio por ver el codigo de un mando de panasoni vamos lo clasico del receptor de infrerrojo conectado al micro del pc para poder grabar su espectro.. y la verdad que me parecio muy vardo el tema no creo que todos los mandos sony tengan la misma codificacion.
este en particular era un rejistro de 12bif que daba el addess y las veces que se repetia era el numero del boton (me parecio una burrada)

ese mando soni que usais podiais pasar un mp3 en el que vayas pulsando distintos botones. por ejemplo 1 pulso algo largo, un espacio sin pulsar, 2 pulso algo largo asi asta el 5 por ejemplo

esque llevo preguntandome donde esta el programa que lee reconoce acess y lee el boton pulsado.

aun asi creo que tengo suvito por electronicafacil un probrama solo el hex la verdad que me uviera gustado ver el codigo sin compilar seguro era no muy depurado (era de ace años)
con un 16f84 para encender 8 dispositivos porlomenos, pulsas la tecla enciede pulsas denuevo apaga.
el programa constaba de una parte donde programabas el mando valido para nec o rc5. entonces pulsaba una tecla donde entraba en modo programacion alguna del puerto a.x algo pulsaba una tecla del mando y si reconocia bien el cogigo (codigo compatible) almacenaba los 16bit de acess y el ultimo byte de los 32bit lo guardo como la tencla pulsada, (bueno realmente sumaba el tercero y cuerto byte si el resultado era 255 era correcto y almacenaba la tecla) asi una tras otra si solo queria 4 teclas tansolo era pulsar el resto de veces la ultima tecla despues miraba si dos cogigos eran iguales seguidos y inutlizaba el resto (bueno eso es una cosa que agusto)
cosa cuando te reconocia el codigo adess y verifica la suma de los dos ultimos bytes 255 correctas parpadea 2 veces si ya esta almacenando los botones y no reconoce el acess o la suma de los dos ultimos bytes del boton parpadea rapidamente 8 beces o algo asi (eso segun te apetezca programarlo)

pongamos que era un accionador de reles por infrerrojos programable para mandos a distancia por infrerrojos con codificacion nec rc5 y panasonic

panasonic solo se diferencia porque la informacion serial que manda el mando es mas rapida y manda 48bit = 5bytes donde los primeras 24bit son el acess y los ultimos 16bit o 2 bytes son el boton pulsado para verificar que es correcto un byte es inverso al otro asi cuando los sumas dan 255 o los superpones (en una operacion logica que solo come 2 procesos de comando una suma son 5)

un saludo ala comunidad y aunque tardio el aporte y muy mal esplicado (yo como siempre) espero que os sirva de ayuda. tengo que acer otro codigo como ese si lo ago igual lo suvo, que porcierto tambien trabajo mucho con el micro studio picbasic
 
Saludos a todos.!!

mi gente a quien le compila sin errores el codigo del Control remoto infrarrojo de 4 canales con pic Pic12f629 ?

me manda siempre un error al compilar los codigos de receptor y emisor, informado q se excedio la capacidad de memoria

'configuracion de fuses (fusibles)
@ DEVICE pic12F629, intrc_osc_noclkout, wdt_off, pwrt_off, mclr_off, bod_off, protect_off

'includes
include "modedefs.bas"
DEFINE OSCCAL_1K 1
DEFINE OSC 4 'óscilador interno a 4mhz

CMCON=7 'COMPARADOR OFF
'configuracion de puertos
TRISIO=%00110011
GPIO=%00110011
'declaracion de variables
bot1 var GPIO.0
bot2 var GPIO.1
bot3 var GPIO.4
bot4 var GPIO.5
pulso var GPIO.2
'loop de inicio
inicio:
if bot1=0 then pres1
if bot2=0 then pres2
if bot3=0 then pres3
if bot4=0 then pres4
goto inicio
'acciones
pres1:
serout pulso,N2400,["A"]
pause 10
goto inicio

pres2:
serout pulso,N2400,["B"]
pause 10
goto inicio

pres3:
serout pulso,N2400,["C"]
pause 10
goto inicio

pres4:
serout pulso,N2400,["D"]
pause 10
goto inicio

end

GRACIAS.. Por la ayuda a quien hayga tenido el mismo problema me ayude..!!
 
No creo que sea eso mi estimado torres, porque el código es para un PIC12F629 y en dado caso ese código es muy pequeño para que pueda ocurrir un cambio de página.
Aparte, "Crossing page boundary" es una advertencia y no un error.
 
Última edición:
Saludos.. siempre eh compuilado en WIN7 32bBist.. uso microcode 3.0.0.6 y compilador pbp 2.60a.. pero no me da esos errores con otros pic.. por ejemplo con los mismos compilo para el 16f628a y son muuuchas líneas de código q lleva y no manda nunca manda ese error.. también vi ejemplos de códigos cuyo "HEX" pesa mas de 2Kb pero el pbp me dice que eccedi la memoria con ese codigo

ps el error solo es al compila (F9).

mensaje del error: Address limit of 3FFh exceeded
 
Última edición:
buenas compañeros, yo he tenido algo experiencia con ese mensaje de 3FFH con el 16F877/A y los 12F, y sucede que al pasar la capacidad de memoria del micro nos envié ese mensaje y no compila, lo único que se me ocurre por ahora es que se haya seleccionado en el microcodeestudio otro microcontrolador de menos capacidad pero igual de ser así el mismo compilador indica un error al no coincidir pero puede ser el caso pero es bien extraño de que así sea, realice pruebas y no tuve problemas al compilar el codigo.
Por otra parte lo lleve a su máxima capacidad copiando una linea de serout con varios caracteres ascii unas 10 veces mas o menos para desjarles el mensaje de error.

Cualquier cosa seria ver que versión de microcode y como esta configurado etc. para determinar que esta sucediendo. Mi version es 3.0.0.5 y del PBP es la 2.47
 

Adjuntos

  • ERROR PBP 3FFH.png
    ERROR PBP 3FFH.png
    4.9 KB · Visitas: 9
Si, ese error ocurre cuando ya se alcanzó el máximo de ROM.
Pero también se puede dar por lo que yo le llamo "El error invisible"
Sucede cuando se copia y se pega algún código hacia un archivo de texto.
Y cuando ese archivo se llega a ejecutar y compilar, se produce ese error.

En esos casos lo que he notado, es que algunos espacios en blanco confunden al compilador.
Pueden ser falsas tabulaciones mal interpretadas por el compilador.

La solución cuando el código es muy extenso, es limpiarlo manualmente.
En este caso como el código es muy corto, se puede volver a escribir el código directamente en el editor MicroCode Studio y compilar.

Eso me ha resuelto ese problema.
 
Última edición:
Ok mis amogos gracias por la segerencias..

hechare manos a la obra con la reeescritura.. EXITOS para Todos..!!



Ok mis amogos gracias por la segerencias..

hechare manos a la obra con la reeescritura.. EXITOS para Todos..!!
 
Última edición:
SALUDOS..

ya encontré la falla mi gente..!!

fue que cabié la sentencia: DEFINE OSCCAL_1K 1 ..por.. DEFINE OSCCAL_2K 1

asi que los que tengan el mismo mensaje q yo... deben buscar en los fuses mala sintaxis.. suerte mis chamacos..!!
 
Hola gente, tanto tiempo ;) (y) les comento que yo nunca he podido compilar ese codigo utilizando microcode en win7, sin embargo, no tengo ningun problema al compilarlo con microcode corriendo en win xp. por ahi no recuerdo donde, leí que pic basic pro ya esta obsoleto y no existen versiones que funcionen bien en win7. lamentablemente de mi parte, he descargado varias versiones de microcode incluyendo la ultima y no puedo hacerlo funcionar, asi que parami por lo menos, es verdad ... :oops::oops::oops: y por eso estoy tratando de aprender el odioso ccs...
 
Hola gente, tanto tiempo ;) (y) les comento que yo nunca he podido compilar ese codigo utilizando microcode en win7, sin embargo, no tengo ningun problema al compilarlo con microcode corriendo en win xp. por ahi no recuerdo donde, leí que pic basic pro ya esta obsoleto y no existen versiones que funcionen bien en win7. lamentablemente de mi parte, he descargado varias versiones de microcode incluyendo la ultima y no puedo hacerlo funcionar, asi que parami por lo menos, es verdad ... :oops::oops::oops: y por eso estoy tratando de aprender el odioso ccs...

:confused:
Yo en lo notebook con win7, conpilo perfecto...yo creo que te referis a los win de 64bits...
 
Saludos...

Totalmente de acuerdo con torres.electronico.. EN Win7 32 Anda todo bn.. EN 64 no Compila, y hay Pc donde si compila, pero manda errores de sisntaxis donde no los hay..

Ps.. versiones alternativas recomiendo mucho el Proton IDE 1.0.4.6 actualizado para Win7 32Bits y se parece mucho al PBP.. solo q éste tiene todo encuanto a nuevos dispositivos y todo lo que uno imagine hacer con los pic's.. ;)

Suerte a todos..!!
 
Última edición:
... lo probe, y lo unico que me gusta, son las librerias de control de glcd... me comentsron que viene integrada librerias para fp, pero como lo desinstale,me quede con la duda...
Yo creo que a cualquier basic, solo le faltaria este ultimo punto para hacerlo mas interesante :unsure:
Perdon por el offtopic :LOL:
 
Atrás
Arriba