Fecha actual Vie Mar 29, 2024 1:56 am

Todos los horarios son UTC - 3 horas



Reglas del Foro


Todos los comentarios y opiniones expresadas por los usuarios en los foros son de exclusiva responsabilidad de sus autores. Tecnicosaurios.com no acepta ningún tipo de responsabilidad por los comentarios de los usuarios en los foros que son de índole pública, ni por las consecuencias de utilizar la información recogida en los mismos. Está absolutamente prohibido por Reglamento General de Tecnicosaurios.com, la publicación de contenidos protegidos por las leyes de copyright sin mediar la autorización de los dueños de dicha propiedad intelectual.
Copyright 2008-2015 Todos los derechos reservados



Nuevo tema Responder al tema  [ 5 mensajes ] 
Autor Mensaje
NotaPublicado: Mié Oct 12, 2011 4:50 pm 
Desconectado
Usuario Avanzado
Usuario Avanzado

Registrado: Vie Oct 22, 2010 6:50 pm
Mensajes: 133
Ciudad: Cundinamarca, Colombia
Level: 10
HP: 0 / 230
0 / 230
MP: 110 / 110
110 / 110
EXP: 133 / 142
133 / 142
Hola colegas de la Electrónica os saludo.
Resulta que monte un circuito decodificador con PIC para el protocolo Sony, usado en los controles remoto de esta marca.
Claro el código fuente lo baje de Internet, pero lo modifique un poco de acuerdo a mi diseño.
El circuito funciona bien, ya que me decodifica perfecto la señal y obtengo la información que genera el control remoto. Me explico, si oprimo cualquier tecla del control, el circuito me muestra en 8 LEDs en binario la tecla correspondiente.
El problema es el siguiente: Con mi diseño lo que quiero es hacer algo parecido a lo que hace el control cuando maneja el tv, es decir si oprimo por ejemplo la tecla de power en el control, el circuito me encienda un LED y se quede en ese estado, así siga oprimiendo la tecla y cambie de estado solo hasta que suelte la tecla y vuelva nuevamente a pulsarla y ahí si apagar el LED y repetir este proceso con cualquier tecla.
Es decir la idea es diseñar un código que detecte cuando la tecla sigue pulsada y así no volver a recibir la misma información que ya almaceno, sino que esta se actualice solo hasta que la tecla sea soltada y vuelva a pulsarse.
El protocolo Sony trabaja así: Se inicia con un pulso de arranque de nivel positivo, con una duración de 2,4 mili segundos, seguido de un nivel bajo con una duración de 600 mili segundos.
A partir de aquí se reciben 12 bits de información. El valor 1 se forma con un nivel alto positivo de 1,2 mili segundos y un nivel bajo de 600 mili segundos el valor 0 con un nivel alto positivo de 600 mili segundos y un nivel bajo de 600 mili segundos.
Luego de trasmitir estos bits de información se genera un nivel bajo con duración de 45 mili segundos, luego de esto se repite esta trama si la tecla del control sigue oprimida.
Ojala me hallan entendido.
Espero sus sugerencias. Hasta luego.

Texto editado.


Arriba
 Perfil Enviar mensaje privado  
 
NotaPublicado: Lun Oct 17, 2011 11:10 am 
Desconectado
Admin Tecnicosaurios
Admin Tecnicosaurios
Avatar de Usuario

Registrado: Sab Oct 04, 2008 3:56 pm
Mensajes: 16703
Ubicación: "Mirando" TV
Ciudad: Santa Fe, Capital
Pais: Argentina
Level: 76
HP: 10694 / 36878
10694 / 36878
MP: 17608 / 17608
17608 / 17608
EXP: 16703 / 17211
16703 / 17211
Si entendí bien lo que deseas es que el sistema no solo identifique la tecla pulsada (lo que hace ahora), sino que también retenga o memorice el estado de la misma. Si esta pulsada alguna tecla, la salida correspondiente enciende el LED y éste permanece encendido, si se deja de pulsar esa Tecla el LED se apaga.

Deberías hacer que el sistema, una vez que detecta la tecla pulsada y enciende el LED, guarde en un registro (puedes llamara a ese registro Memoria)el estado de esa salida, hasta que se reinicie la transmisión de la señal, es decir almacena en un registro que salida esta activa y la muestra (el LED queda encendido aunque ya no pulses la tecla).
Cuando se recibe la nueva señal IR (con nueva información) deberías borrar ese registro y cargar la nueva información recibida (otra tecla, otra salida activa o la misma tecla que la anterior).
Al menos eso es lo que entendí.

Es algo difícil hacerlo en el programa, al menos para mí.


Arriba
 Perfil Enviar mensaje privado  
 
NotaPublicado: Lun Oct 17, 2011 3:22 pm 
Desconectado
Usuario Avanzado
Usuario Avanzado

Registrado: Vie Oct 22, 2010 6:50 pm
Mensajes: 133
Ciudad: Cundinamarca, Colombia
Level: 10
HP: 0 / 230
0 / 230
MP: 110 / 110
110 / 110
EXP: 133 / 142
133 / 142
Hola colegas del mundo de la electrónica os saludo.

Que tal Dardo70 como te encuentras, espero que bien. Oye gracias por la respuesta. Esa es la idea general.
¿Sabes cual es el intríngulis?. Cuando oprimo una tecla, digamos por ejemplo el power, el sistema (PIC) me detecta el valor de esta y la almacena, ademas me muestra en un LED que el comando fue recibido bien, y encienda o se apague según su ultimo estado (es decir si estaba on entonces se apaga y viceversa), claro, ya he programado de antemano que este código correspondiente al power sea el que haga esta acción de toogle con el LED.
Bueno no enredemos más esto, luego que el LED testigo, se ha iluminado o apagado según el caso, y con la tecla del control aun oprimida (power), el LED debería quedar fijo en alguno de los dos estados pero no, sino que oscila entre on y off (enciende y apaga como si fuera un oscilador).
Es decir como tengo la tecla aun oprimida, luego de detectarla por primera vez, vuelve nuevamente a recibir casi inmediatamente el código y claro el LED vuelve a cambiar de estado nuevamente y así se repite el ciclo.
El detalle es evitar que el sistema vuelva a detectar el código si la tecla se encuentra aun pulsada. El punto es que quiero que el LED permanezca en un solo estado (latch) así siga oprimiendo la misma tecla.
Y solo cambie después que haya soltado la tecla y vuelva nuevamente a pulsarla (así sea la misma).
Más sencillo, oprimo tecla, cambia de estado el LED y sigue así mientras tenga tecla pulsada.
Luego suelto tecla y sigue LED en el mismo estado, finalmente vuelvo a pulsar nuevamente la misma tecla y el LED vuelve nuevamente a cambiar de estado. Sencillo.


Arriba
 Perfil Enviar mensaje privado  
 
NotaPublicado: Mar Oct 18, 2011 4:51 pm 
Desconectado
Admin Tecnicosaurios
Admin Tecnicosaurios
Avatar de Usuario

Registrado: Sab Oct 04, 2008 3:56 pm
Mensajes: 16703
Ubicación: "Mirando" TV
Ciudad: Santa Fe, Capital
Pais: Argentina
Level: 76
HP: 10694 / 36878
10694 / 36878
MP: 17608 / 17608
17608 / 17608
EXP: 16703 / 17211
16703 / 17211
Si el programa logra identificar la secuencia (para identificar que tecla/función fue presionada), debes ver allí como alterarlo para que solo responda una vez a la secuencia, es decir el sistema detecta la tecla oprimida, enciende el LED (activa la salida) en cuestión y queda "cerrado" a las otras señales similares.
Sí responde cuando se corta la transmisión y entonces todo señal posterior (aunque sea la misma tecla oprimida), es considerada como nueva y la salida cambia de estado (bascula).
El software del PIC creo que debe "leer" tres veces la señal para confirmar que se trata de una función (tecla) y no de otra (con firma mediante información redundante). Entonces una vez que confirma que se debe activar la salida 3, por ejemplo, se debería guardar esa información en un registro, al mismo tiempo que se realiza esto se debe ordenar ignorar el siguiente tren de pulsos (eso evita que el sistema actué como oscilador), si el receptor IR no recibió una información en un periodo mínimo ("x" mili segundos) se da por terminada la transmisión anterior y se habilita a que tome y decodifique la nueva señal que ingresa.
El tiempo "x" debería ser tal que no se confunda con los tiempos mínimos de transmisión de la ráfaga de información, teniendo en cuenta lo que mencionas del modo de codificación de la señal, debería ser una ventana de 1 segundo. Es decir se trasmite la señal, el sistema confirma el código trasmitido (por redundancia) y se habilita la salida correspondiente, se guarda ese nivel en el registro y también se bloquea la recepción al sector que decodifica la señal, durante dos segundos. Algo así.
Hay que pensarlo un poco más y tal vez no sea tan complejo para los programadores con experiencia (lo que pasa es que debo dejar de pensar el problema desde el modo hardware y empezar a pensar como resolverlo desde el software).

Saludos.


Arriba
 Perfil Enviar mensaje privado  
 
NotaPublicado: Vie Mar 02, 2012 11:01 am 
Desconectado
Usuario Habitual
Usuario Habitual
Avatar de Usuario

Registrado: Dom Nov 15, 2009 12:37 am
Mensajes: 23
Ciudad: buenos aires
Level: 3
HP: 0 / 44
0 / 44
MP: 21 / 21
21 / 21
EXP: 23 / 27
23 / 27
¿Qué tal una demora en la lectura? una vez que se detecta un cambio de estado se genera una demora en la lectura...


Arriba
 Perfil Enviar mensaje privado  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 5 mensajes ] 

Todos los horarios son UTC - 3 horas


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados


No podés abrir nuevos temas en este Foro
No podés responder a temas en este Foro
No podés editar tus mensajes en este Foro
No podés borrar tus mensajes en este Foro
No podés enviar adjuntos en este Foro

Buscar:
Saltar a:  
Web Button Image by Free-Web-Buttons.com v2.0 Powered by phpBB® Forum Software © phpBB Group
Traducción al español argentino por xirox con la colaboración de phpBB-Es.com
Traducción actualizada por nextgen