Autor Tema: Como prender un led con señal IR? (Pic16f628a) pbp  (Leído 3040 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Dareblix005

  • PIC10
  • *
  • Mensajes: 18
Como prender un led con señal IR? (Pic16f628a) pbp
« en: 17 de Marzo de 2016, 23:33:13 »
Hola Recien compre un control keyes con su respectivo módulo receptor , al hacer una prueba para identificar los códigos que envían cada tecla en arduino mediante el monitor serial, hice un código en picbasicpro  por ejemplo la tecla uno envía "Ff629d" y el dos "ff876f".
Include " modedefs.bas"
Cmcon=7
Led var byte portb.0
Datos var byte
Inicio:
Serin portb.0,N2400,datos
If datos="ff876f" then high led
If datos="ff629d" then low led
Goto inicio
Sin éxito trate con etiquetas gosub y endif pero nada, el error me lo indica en la condición if al poner varios caracteres como los que envía el control, si pongo un solo carácter como ejemplo "A" si funciona, espero una respuesta por favor! Y gracias por leer :)

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re:Como prender un led con señal IR? (Pic16f628a) pbp
« Respuesta #1 en: 18 de Marzo de 2016, 11:31:16 »
No uso tu lenguaje pero la variable Datos la declaras de longitud 1Byte = 8Bits = 1caracter.
Si intentas asignar o comparar una variable de longitud 1Byte con la cadena ff876f que tiene de longitud 6Bytes vas a obtener error (por el tema de tipos).
Imagino que se solucionará el problema declarando Data como cadena (string).
En mi lenguaje seria:
Dim Datos as String 'Declara Datos como cadena o string
Entoces si puedes hacer:
If Datos = "ff876f" then ........
« Última modificación: 18 de Marzo de 2016, 11:42:00 por dogflu66 »
Saludos desde Granada, España.

Desconectado Dareblix005

  • PIC10
  • *
  • Mensajes: 18
Re:Como prender un led con señal IR? (Pic16f628a) pbp
« Respuesta #2 en: 20 de Marzo de 2016, 18:25:11 »
En este lenguaje puedes declarar una variable como word que tiene un facttor de 2 a la 16 es el tipo de variable mas grande que conosco en lenguaje basic y aun declarandola en word no me compila  :(

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re:Como prender un led con señal IR? (Pic16f628a) pbp
« Respuesta #3 en: 20 de Marzo de 2016, 21:00:13 »
No uso PBP pero parece que no tiene variables tipo string.
Al parecer dispones de los siguientes tipos:
BIT, BYTE, WORD, LONG y ARRAY o VECTORES
De todas maneras prueba con un vector o array:
datos var byte[6]
« Última modificación: 21 de Marzo de 2016, 19:17:03 por dogflu66 »
Saludos desde Granada, España.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re:Como prender un led con señal IR? (Pic16f628a) pbp
« Respuesta #4 en: 20 de Marzo de 2016, 21:30:23 »
Podrias utilizar como dice dogflux un array para ir almacenando los bytes recibidos por el serial, y luego creas un lazo por ejemplo tipo for y vas preguntando si los bytes recibidos son iguales a uno u otra tecla en caso contrario regresas al inicio de la recedpcion de datos.  :mrgreen:

Saludos

Desconectado Dareblix005

  • PIC10
  • *
  • Mensajes: 18
Re:Como prender un led con señal IR? (Pic16f628a) pbp
« Respuesta #5 en: 20 de Marzo de 2016, 22:42:27 »
Ralf no puedo hacer una variable de tipo array en pic basic pro pero el lazo for podria funcionar tienes una idea mas concreta por favor?

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2062
Re:Como prender un led con señal IR? (Pic16f628a) pbp
« Respuesta #6 en: 21 de Marzo de 2016, 15:34:14 »
El pic basic pro posse arrays revisa el manual.

Guarda los caracteres recibidos utilizando un array, (dato var byte[6], en tu caso son 6 para cada letra pulsada).
luego utilizando un select case y dentro de este comparas cada byte recibido, dentro del array, con los codigos que activan los leds que quieras por ejemplo: "ff876f".

Esa sera mas o menos la idea.  :mrgreen:

Saludos


 

anything