desktop

Curso de programación de PIC en PICBasic Pro

Si no puedes aquí está:

Gracias MrCarlos por echarme la mano a convertirlo a versión 7.X por que yo ya la borre y solo tengo instalada la 8.0, pero me parece que en un mensaje de D@rkbytes dijo que se podia tener instalado las 2 versión esto es correcto??
Gracias
 
Hola jussi

La verdad no sé si se puede tener las 2 versiones; es muy probable que sí.
Habría que experimentar un poco.

Pero es muy creible lo que dice D@rkbytes.

saludos
a sus ordenes
 
Gracias MrCarlos por echarme la mano a convertirlo a versión 7.X por que yo ya la borre y solo tengo instalada la 8.0, pero me parece que en un mensaje de D@rkbytes dijo que se podia tener instalado las 2 versión esto es correcto??
Gracias

Hola...yo en particular tengo instalada las dos versiones dado que tengo infinidad de trabajos en la versión 7xx y funcionan perfectamente las dos.

Saludos.

Ric.
 
hola a todos, les cuento que ando haciendo un dimmer para la sala de TV a control remoto y tengo estos 2 códigos:
para el transmisor el código es:
Código:
;***************************************
;transmisor 16f84a con potenciometro   *
;***************************************
include "modedefs.bas"
trisb=0
portb=0
pos var byte		
dim1 var portb.1           
mainloop: 
Pot porta.0,127,pos
pos = pos / 2 + 100
        serout dim1,T2400,[6,6,"ok",#pos]        
 Goto mainloop		
        End

y para el receptor el código es:
Código:
'*******************************************************
'receptor 16f84a serie                                 *
'*******************************************************
include "modedefs.bas"
trisa=1
porta=1
trisb=0
portb=0
pos var byte  'aquí guardamos el valor de la posición
dimin var porta.0
dim   var portb.0
pulsout servo,150
principal:
serin dimin,T2400,100,reset,#pos 'función serin en porta.0
pos = pos 
pulsout dim,pos
serout portb.1,T2400,[6,6,"ok",#pos]
goto principal
reset:
pulsout dim,150 ; aquí sera el punto medio de iluminación   
goto principal
la verdad son códigos creados por el compañero D@rio pero con algunas reformas pero no me quieren funcionar, a ver sí me pueden ayudar y les encuentran los errores:confused: además quisiera saber sí puedo enviar la información de varios potenciometros al mismo receptor y como lo puedo hacer como seria la reforma del código emisor y como seria la reforma del código receptor pues me gustaría controlar tambien por ejemplo las cortinas y el ventilador; les agradezco de antemano(y)
 
Última edición:
Saludos amigos ando con un problema, estoy tratando de hacer un proyecto que cuenta los pulsos de un medidor de flujo y los luego los transformo en PWM para poder variar la velocidad de un motor y todo lo muestro en un LCD, pero al utilizar el comando COUNT, se daña to porque como es un comando que demora un tiempo realizando la lectura de los pulsos, se demora bastante, y eso que le baje el tiempo de lectura de COUNT PORTC.1,1000,dato a COUNT PORTC.1,125,dato ; y al momento de generar el PWM, es como si al momento de leer los pulsos se apagara por un instante y vuelve a retornar provocando que el motor esta como que se quiere apagar y de nuevo toma velocidad, me aconsejaron realizarlo con interrupciones pero no tengo claro como setar el OPTION_REG y el INTCON, porque quiero hacerle que lea interrupciones externas y no sew que habilitar ya que segun el datasheet se tiene que habilitar el T0CKI que es el pin RA4 pero de ahi no se que mas habilitar, osea OPTION_REG=%???????? y INTCON=%???????? no se si me puden ayudar con el programa, AQUI ENVIO EL PROGRAMA con COUNT.

El programa consiste solo en que el motor varie su velocidad en un rango de caudal o sea entre 0 y 5lt/s baja un 40%, entre 6 y 10 lt/s se mantiene en el voltaje seteado y > 10lt/s sube.

Un dato más, hice el programa leyendo en vez de pulsos una señal analogica en vez de pulsos usando el conversor AD y me salio mucho mejor, asi que he estado tratando de consegir un acondicionador de señal de frecuencia a voltaje, pero son muy costosos, por favor necesito de su ayuda. Gracias


Código:
PROGRAMA CONTADOR DE PULSOS DE UN MEDIDOR DE FLUJO
DEFINE  LCD_BITS    4
Define	LCD_DREG	PORTC        
Define	LCD_DBIT	4
Define	LCD_RWREG	PORTD         
Define	LCD_RWBIT	6               
Define	LCD_RSREG	PORTD         
Define	LCD_RSBIT	5             
Define	LCD_EREG	PORTD         
Define	LCD_EBIT	7            
DEFINE  ADC_BITS 8
define  OSC 4
define ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 30
;TRISD = %00000000 
TRISB = %01001111
TRISA = 255
ADCON1 = 2
caubaj var byte
caumini var byte
volt var byte
oxbajo var byte
x  var byte
dato var word
;pulsos var byte
datoE var byte
datoS var byte
botsubir var portb.1
botbajar var portb.2
enter  var portb.3
led var portd.3
alerta var PORTD.2
Qnormal var PORTD.0
Qbaja var PORTD.1
sensor1 var portb.6
frec var byte            
bandera var bit
frec = 10
eeprom 0,[5,10,1,90]         ;contenido inicial de la EEPROM

inicio:                ;3 parpadeos del led indica que funciona
for x =1 to 3
    HIGH led
    pause 200
    low led
    pause 200
next
READ 0, caubaj             ;lee la EEPROM 0 y lo guarda en tempbaj
READ 1, caumini            ;lee la EEPROM 1 y lo guarda en tempalt
read 2, volt
read 3, oxbajo
medir:
    pwm PORTC.2,FREC,100
    low led 
    bandera = 0
    count PORTC.1,125,dato 
    adcin 1, datoE
    adcin 2, datoS
	Lcdout $fe, 1 ,"Q.mi Q.lt/m Q.ma"
    dato = dato*2 
    datoE = datoE/2
    datoS = datoS/2              
    Lcdout $fe,$c6,DEC dato	
    Lcdout $fe,$c0,DEC caubaj	
    Lcdout $fe,$cc,DEC caumini 
    lcdout $fe,$d5,dec oxbajo,"%"
    lcdout $fe,$9f,"V"
    lcdout $fe,$90,"Oent":lcdout $fe,$95,"Oref":lcdout $fe,$9a,"Osal"
    lcdout $fe,$d0,DEc datoE,"%":Lcdout $fe,$da,dec datoS,"%"
    lcdout $fe,$de,dec volt
    if sensor1 = 1 then medir
    for x = 1 to 3             
    if enter = 0 then grabar1a
    pause 10
    next  
    if botsubir = 0 then SUBIR
    if botbajar = 0 then BAJAR
    if datoS < Oxbajo then high alerta
    if datoS > oxbajo then low alerta
    if caubaj > dato then disminuir  
    if caumini > dato > caubaj then mantener
    goto medir
aviso:
   high led
    goto medir
mantener:
    low Qbaja: high Qnormal  
    if frec > (volt*10) then medir
    if bandera = 1 then medir
    high led
    bandera = 1
    frec = frec + 10
    goto medir    
disminuir:
    low Qnormal:  high Qbaja
    if botsubir = 0 then SUBIR
    if frec < (volt*7) then medir
    if bandera = 1 then medir
    high led
    bandera = 1
    frec = frec - 10
    goto medir
SUBIR:
    if frec > 249 then aviso
    if bandera = 1 then medir
    high led
    bandera = 1
    frec = frec+10
    goto medir
BAJAR:
    if frec < 11 then aviso
    if bandera = 1 then medir
    high led
    bandera = 1 
    frec = frec - 10
    goto medir
grabar1a:
    gosub soltar 

grabar1:
    Lcdout $fe, 1 ,"Programar Q."
    lcdout $fe,$c0,"bajo= ",dec caubaj ,"lt/m"
    pause 100
    if botbajar = 0 then restar1
    if botsubir = 0 then sumar1
    if enter = 0 then grabarA
goto grabar1

restar1:
    gosub soltar                  ;programa antirrebote de tecla
    if caubaj < 1 then grabar1
    caubaj = caubaj - 1
goto grabar1

sumar1:
    gosub soltar
    if caubaj > 24 then grabar1
    caubaj = caubaj + 1
goto grabar1

grabarA:
    gosub soltar
    write 0, caubaj       ;escribir en la dirección 0 de la EEPROM

grabar2:   
    Lcdout $fe, 1 ,"Programar Q."
    lcdout $fe,$c0,"alto= ",dec caumini ,"lt/m"
    pause 100
    if botbajar = 0 then restar2
    if botsubir = 0 then sumar2
    if enter = 0 then grabarB
goto grabar2

restar2:
    gosub soltar
    if caumini < 5 then grabar2
    caumini = caumini - 1
goto grabar2

sumar2:
    gosub soltar
    if caumini > 24 then grabar2
    caumini = caumini + 1
goto grabar2 

grabarB:
    gosub soltar
    write 1, caumini          ;escribir en la dirección 1 de la EEPROM
grabar3:
    Lcdout $fe, 1 ,"Programar Volt."
    lcdout $fe,$c0,"Volt= ",dec vOLT ,"V"
    pause 100
    if botbajar = 0 then restar3
    if botsubir = 0 then sumar3
    if enter = 0 then grabarC
goto grabar3

restar3:
    gosub soltar                  ;programa antirrebote de tecla
    if Volt < 1 then grabar3
    Volt = Volt - 1
goto grabar3

sumar3:
    gosub soltar
    if Volt > 23 then grabar3
    Volt = Volt + 1
goto grabar3

grabarC:
    gosub soltar
    write 2,Volt 

grabar4:
    Lcdout $fe, 1 ,"Programar O."
    lcdout $fe,$c0,"O.bajo= ",dec oxbajo,"%"
    pause 100
    if botbajar = 0 then restar4
    if botsubir = 0 then sumar4
    if enter = 0 then grabarD
goto grabar4

restar4:
    gosub soltar                  ;programa antirrebote de tecla
    if oxbajo < 1 then grabar4
    oxbajo = oxbajo - 1
goto grabar4

sumar4:
    gosub soltar
    if oxbajo > 99 then grabar4
    oxbajo = oxbajo + 1
goto grabar4

grabarD:
    gosub soltar
    write 3,oxbajo   
goto inicio

soltar:                       ;programa antirrebote de tecla
    high led
    pause 150
    low led
soltar2:
    if botbajar = 0 then soltar2
    if botsubir = 0 then soltar2
    if enter = 0 then soltar2
    pause 100
    return
end
 

Adjuntos

  • contador pulsos a pwm2.doc
    39.5 KB · Visitas: 48
Última edición:
Un dato más, hice el programa leyendo en vez de pulsos una señal analogica en vez de pulsos usando el conversor AD y me salio mucho mejor, asi que he estado tratando de consegir un acondicionador de señal de frecuencia a voltaje, pero son muy costosos, por favor necesito de su ayuda. Gracias

Hola, hay muchos integrados que cumplen esa funcion y no todos son de costos elevados... leete pdf sobre la familia el LM39xx y LM29xx ... Un CI especificos para esto y economico es el LM2907N... hay muchos en mercado (AD650, VFC32, XR4151)
de que tension estamos hablando? 0 a 5Vcc? por que con un sencillo capacitor y una resistencia (se lo llama filtro) en la salida del pic, se puede hacer la salida analogica con el pwm...
Ahi te subo el pcb y el diagrama basico de un proyecto que arme donde enero una señal analogica a la salida del PIC a partir de un pwm que trabaja similar a lo que vos estas haciendo (segun una señal analogica entrante, tenemos una señal analogica proporcional a la salida)...

PD: te agrego algunpos datos para que tengas en cuenta
Código:
;*****************************************************
; NOTAS COMPLEMENTARIAS:
; PARTIENDO DE LA BASE PARA UN DAC R-C, TENEMOS QUE:
;Variable nivel PWM - nivel = (Vout * 255) / V.Fuente
;para 1100mV nivel = 55
;para 1000mV nivel = 50
;para 900mV nivel = 45
;para 800mV nivel = 40
;para 700mV nivel = 35
;para 600mV nivel = 30
;para 500mV nivel = 25
;para 400mV nivel = 20
;para 300mV nivel = 15  
;para 200mV nivel = 10
;para 100mV nivel = 5
;******************************************************
 

Adjuntos

  • pwm_Vcc.rar
    282.1 KB · Visitas: 105
Última edición:
Hola, hay muchos integrados que cumplen esa funcion y no todos son de costos elevados... leete pdf sobre la familia el LM39xx y LM29xx ... Un CI especificos para esto y economico es el LM2907N... hay muchos en mercado (AD650, VFC32, XR4151)
de que tension estamos hablando? 0 a 5Vcc? por que con un sencillo capacitor y una resistencia (se lo llama filtro) en la salida del pic, se puede hacer la salida analogica con el pwm...
Ahi te subo el pcb y el diagrama basico de un proyecto que arme donde enero una señal analogica a la salida del PIC a partir de un pwm que trabaja similar a lo que vos estas haciendo (segun una señal analogica entrante, tenemos una señal analogica proporcional a la salida)...

PD1: te agrego algunpos datos para que tengas en cuenta
Código:
;*****************************************************
; NOTAS COMPLEMENTARIAS:
; PARTIENDO DE LA BASE PARA UN DAC R-C, TENEMOS QUE:
;Variable nivel PWM - nivel = (Vout * 255) / V.Fuente
;para 1100mV nivel = 55
;para 1000mV nivel = 50
;para 900mV nivel = 45
;para 800mV nivel = 40
;para 700mV nivel = 35
;para 600mV nivel = 30
;para 500mV nivel = 25
;para 400mV nivel = 20
;para 300mV nivel = 15  
;para 200mV nivel = 10
;para 100mV nivel = 5
;******************************************************

PD2: encontraste por lo que veo parte de mi codigo... me resulta familiar parte de tu programa... solo queria mencionarte que la escritura de la eeprom, tiene un numero limitado... es grande el numero, pero solo queria mencionarte que si lo vas a usar en otro proyecto y hay escrituras de eeprom muy continuas (por decir 150 escrituras por hora)... al año te vas a quedar sin micro :unsure:
 
Disculpa creo que me esplique mal o te confundiste, TorresElectronico, yo necesito sacar PWM de salida metiendo pulsos al pic, lo que no puedo es leer los pulsos, ya lo hice con el comando COUNT pero es demasiado lento, y me dijeron que le haga con interrupciones pero no puedo setear el OPTION_REG Y EL INTCON para logra que lea una interrupcion externa po medio del RA4 T0CKI, ya que deseo controlar un motor de 24V y lo hago disparando unos SCRs

Necesito obtener voltaje DC variable el cual sea proporcional al numero de pulsos (frecuencia) que me da un medidor de flujo.
Yo lo realice mediante un Pic al cual le envio a un pin los pulsos del medidor de flujo y saco por otro pin PWM y de ahi voy controlando un voltaje mas alto con el disparo de un Tip o un SCR, pero no me sale un voltaje optimo, tambien le puse una pantalla LCD para que me vaya mostrando los litros/seg que mide el medidor de flujo, es decir a 4 pulsos por segundo es 1 litro, y al ser mi rango de control entre 5 lt/s y 10lt/s, o sea si vaja de 5lt/s me reduce un 40% el voltaje de entrega y si sobrepasa los 10 lt/s sube un 20% de voltaje, todo facil hasta ahi, pero cuando arme el circuito y al hacerlo funcionar, se nota que al monento que esta leyendo los pulsos se demora el programa y el voltaje de salida baja notablemente, y se apaga y se enciende.
Hice un cambio y en vez de leer pulsos medi el voltaje analogico de un poten, el voltaje PWM me salio perfento reduciendo un 40% al baja de 5lt/seg y sube un 20% al subir de 10lt/seg, sin demorarse perceptiblemente nada.
Intente convertir los pulsos mediante un Lm2907N, para enviarle un voltaje analogico al PIC, pero el LM2907N no me convierte de frecuencia a voltaje, teniendo en cuenta que estoy utilizando 5 VCD de alimentacion.
Que solucion puede haber?
 
Última edición:
hola...relee tu consulta inicial...relee mi resspuesta... luego,relee tu nueva consulta y fijate lo que respondo.... o sea, si lees,vas a interpretar como generar con un pwm y un filtro a la salida esa señal analogica de cero a cincol volts son prescindir de cualquier otro IC. lamentablemente te estoy reapondiendo desde el telefono y se complica ayudarte,pero pon un poco xe voluntad y trata de interpretar lo que te digo.... no hay mucha ciencia
 
Perfecto hola...darkbyte, te agradezco la correccion, ya que soy nuevo en el foro, tengo cosas que aprender aun.
en fin pasando a lo que me conpete como dije necesito hacer un reloj decreciente de 24 a 0 segundos para basquet, esto incluye que se detenga en cualquier segundo y poder volver a 24 con un pulsador de reset, y cuando pase los 14 segundo en descuento y se pause el reloj, luego al reanudar debe volver a 14 y descontar desde ahi hasta 0.
espero se entienda a lo que me refiero.
estuve investigando un poco pero me vuelve loco la programacion en PicBasic Pro, tengo hecho el contador pero nose como agregar los pulsadores.-
les envio una imagen de como seria a grandes razgos el diagrama de flujo de lo que necesito, y como va el programa en basic. seguro con error por eso acudo a uds a por una ayuda. gracias.
mas o menos las conexiones las tengo. ya lo voy a diagramar y lo subo para que lo vean.

enserio muchas gracias cualquier aporte! saludos
 

Adjuntos

  • Sin título.jpg
    Sin título.jpg
    26.9 KB · Visitas: 38
  • cont.txt
    406 bytes · Visitas: 25
Última edición:
Si, te entiendo Torres Electronico, pero el pwm si me sale, lo que no puedo es leer los pulsos del medidor de flujo los cuales son 4pulsos/segundo = un litro/s, y tambien tengo que mostrar los litros por segundo en un LDC, pero con el comando COUNT es muy lento porque se demora 1 segundo hasta leer los pulsos,y por eso se me estropea el pwm de salida, y me aconsejaron leer los pulsos con interrupcione y eso es lo que no comprendo bien para setear el OPTION_REG y el INTCON, porfa si puedes ayudarme con eso porque segun estuve leyendo en el dataSheet toca habilitar el T0CKI en el pin RA4
 
Hola PauJef,

Pues este es un ejemplo donde se captura por toki usando el timer1, ya te toca seguir mirando para agregar el pwm, espero te sea de ayuda.
Código:
'PICBASIC PRO program to demonstrate using Timer1 gate in single-pulse mode to capture single pulse event times.
' Description : PICBASIC PRO program to demonstrate using Timer1 gate
' in single-pulse mode to capture single pulse event times.

Device = 16F877A
Xtal = 20

All_Digital true
'Declaration for LCD 
       Declare LCD_Type = 0         ;LCD is Alpha
       Declare LCD_DTPin = PORTD.4  ;LCD data line starting port.pin
       Declare LCD_ENPin = PORTD.1  ;LCD EN line
       Declare LCD_RSPin = PORTD.0  ;LCD RS line
       Declare LCD_Interface = 4    ;LCD 4 line interface
       Declare LCD_Lines = 2
	 
  Dim	Pval As Word    ' Holds pulse time from Timer1
  
  GoSub Init    ' Hardware initialization routine  
	    
'Clear
   
	mainloop:
	   PORTB.4 = 1   ' Toggle RB4 on Timer1 gate pin high
       PORTB.4 = 0   ' Toggle Timer1 gate pin low to stop Timer1	    
	   Pval.LowByte = TMR1L  ' Read Timer1 value
	   Pval.HighByte = TMR1H	    
	   Print At 2,1, "pulsos",Dec Pval	    
	  ' GoSub Reset1   ' Clear Timer1 count & reset T1 gate
	   DelayMS 500   
	   GoTo mainloop ' Do it forever
	    
	Reset1:
	   TMR1H = 0    
	   TMR1L = 0
	   Return
	    
	Init:
       TRISC.0=1	    
	   TRISB = %00100000  ' RB5 = input for T1 gate, RB4 = output to gate
	   PORTB = 0          ' Hold T1 gate low at start	    
	   T1CON = %00000011  ' Timer1 on, incremento por tocki   
       Return
	   End
 
hola expertos, estoy practicando un conteo en un display de 7 segmentos, pero no se como acceder y manejar la eeprom del 16f628a, lo que intento es conservar el conteo, cuando desenergize el chip, y cuando retorne la alimentación, que el conteo siga desde donde quedo antes de que la alimentación se interrumpiera, también me interesa como y cuando emplear y acceder a una memoria externa, pero ya posteare mis inquietudes cuando mis practicas lleguen a ese punto. espero me puedan colaborar y gracias por su tiempo.


di var byte
dat VAR BYTE
TRISB = 0

prog:
for di=0 to 15
lookup di,[64,121,36,48,25,18,2,120,0,16,8,3,70,33,6,14],dat
portb=dat
pause 500
next di
goto prog
END



bien, podria alguien explicarme como usar las declaraciones EEPROM, READ Y WRITE para tratar de usarlas en el ejemplo anterior, o al menos con un ejercicio basico, ya que desconociendo como usarlas, es imposible hacer avances en el codigo...ojala alguien tenga la voluntad de orientarme ya que mi duda es clara, y es lo que pretendo aprender en este CURSO PROGRAMACION EN PBP...gracias.
 
Última edición:
hola expertos, estoy practicando un conteo en un display de 7 segmentos, pero no se como acceder y manejar la eeprom del 16f628a, lo que intento es conservar el conteo, cuando desenergize el chip, y cuando retorne la alimentación, que el conteo siga desde donde quedo antes de que la alimentación se interrumpiera, también me interesa como y cuando emplear y acceder a una memoria externa, pero ya posteare mis inquietudes cuando mis practicas lleguen a ese punto. espero me puedan colaborar y gracias por su tiempo.


di var byte
dat VAR BYTE
TRISB = 0

prog:
for di=0 to 15
lookup di,[64,121,36,48,25,18,2,120,0,16,8,3,70,33,6,14],dat
portb=dat
pause 500
next di
goto prog
END



bien, podria alguien explicarme como usar las declaraciones EEPROM, READ Y WRITE para tratar de usarlas en el ejemplo anterior, o al menos con un ejercicio basico, ya que desconociendo como usarlas, es imposible hacer avances en el codigo...ojala alguien tenga la voluntad de orientarme ya que mi duda es clara, y es lo que pretendo aprender en este CURSO PROGRAMACION EN PBP...gracias.
Aquí adjunto un proyecto con lo que deseas hacer.
El sistema está basado en la interrupción por RB0 cuando se produce un corte eléctrico.
Se mantiene alimentado al PIC por medio de un capacitor y un diodo que separa la fuente principal.
El capacitor debe ser de un valor tal, que lo mentenga alimentado durante un breve período.
(Tiempo suficiente para poder escribir en la EEPROM interna), usé uno de 2200µF.

Las recomendaciones a tener en cuenta para que funcione bien, son:
.- Configurar el fuse BOREN (Brown Out Reset) en OFF
.- Procurar evitar carga excesiva del PIC en los periféricos.
En este ejemplo usé un display de ánodo común para tal efecto.
El proyecto funciona tanto en la simulación, como físicamente.
Se incluyen programa, esquema y simulación.

Espero les sirva como referencia. Suerte
 

Adjuntos

  • 16F628A Blackout.rar
    97.5 KB · Visitas: 172
hola a todos, les cuento que ando haciendo un dimmer para la sala de TV a control remoto y tengo estos 2 códigos:
para el transmisor el código es:
Código:
;***************************************
;transmisor 16f84a con potenciometro   *
;***************************************
include "modedefs.bas"
trisb=0
portb=0
pos var byte		
dim1 var portb.1           
mainloop: 
Pot porta.0,127,pos
pos = pos / 2 + 100
        serout dim1,T2400,[6,6,"ok",#pos]        
 Goto mainloop		
        End

y para el receptor el código es:
Código:
'*******************************************************
'receptor 16f84a serie                                 *
'*******************************************************
include "modedefs.bas"
trisa=1
porta=1
trisb=0
portb=0
pos var byte  'aquí guardamos el valor de la posición
dimin var porta.0
dim   var portb.0
pulsout servo,150
principal:
serin dimin,T2400,100,reset,#pos 'función serin en porta.0
pos = pos 
pulsout dim,pos
serout portb.1,T2400,[6,6,"ok",#pos]
goto principal
reset:
pulsout dim,150 ; aquí sera el punto medio de iluminación   
goto principal
la verdad son códigos creados por el compañero D@rio pero con algunas reformas pero no me quieren funcionar, a ver sí me pueden ayudar y les encuentran los errores:confused: además quisiera saber sí puedo enviar la información de varios potenciometros al mismo receptor y como lo puedo hacer como seria la reforma del código emisor y como seria la reforma del código receptor pues me gustaría controlar tambien por ejemplo las cortinas y el ventilador; les agradezco de antemano(y)

definitivamente no le he podido hallar donde estará el error que no permite que funcione el código
 
Hola muy buenas, vuelvo después de un tiempo por acá de nuevo un saludos a todos los compañeros. Voy a retornar aportando soluciones en lo que pueda por acá.
Empiezo con el amigo ferdy575, Amigo he trabajado con modulos RF un tiempo incluso llegue a trabajarlos bidireccionamente y no es nada sencillo, lo primero que noto en tu codigo es la configuración de los fuses no se si la haces de forma manual y por eso lo menciono. Aparte algo que me ayudo a solucionar problemas con los módulos RF es ver si trasmitian y recibian la información los microcontroladoes y para eso me hice un pequeño cable con un conector rs-232 y utilizando únicamente el pin 5 GND y el pin2 RX y con ayuda del virtual terminal del PBP podía ver si efectivamente estaba enviando la información y el microcontrolador y si el receptor la estaba recibiendo, esto conectando el cable de gnd a l gnd del circuito y el cable de rx al tx del circuito o a la salida del RX del modulo RF. Por el momento esto el dia de mañana te adjunto una imagen del cable que hice y si me da chance un vídeo de como lo uso. Por otro lado que módulos estas usando?
 
Hola compañeros, y siempre gracias por todo lo aquì aprendido.
El tema es que pese a que todavía estoy en pañales en programación, me animé a hacerme un simulador amanecer-anochecer para el acuario por pwm, modificando un poco el programa de rtc ds1307 con pic 16f628a del libro de Carlos Reyes. En la simulacíon todo anda correcto pero en la práctica la posición 16 de la segunda linea parpadea y nada mas. Si se les ocurre alguna idea les estarìa muy agradecido (estoy a poco de quedarme calvo de pensar).
 

Adjuntos

  • PbP-y-Simulacion.rar
    19 KB · Visitas: 105
Última edición:
Hola! estoy entrando al mundo de los conversores A/D, en este caso utilizo un PIC 16F877A para covertir y enviar una señal por puerto serie y visualizar en labview. El problema es el siguiente cuando lo simulo en el proteus puedo observar desde el virtual terminal que hay una conversión y envío de datos, sin embargo al cnectarlo virtualmente con el labview o el serial comunicator del PBP (por medio del programa virtual serial port driver) no logro transferir nada. No logro encontrar donde esta el error.

el programa es el siguiente:

include "modedefs.bas"
@ device XT_OSC
define osc 4
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50
dato var byte
adcon1=%1110
inicio:
pause 300
ADCON0=%1000001
pauseus 50
ADCON0.2=1
pauseus 50
dato=ADRESH
pause 300
serout portc.7,N9600,[dato]
pause 300
goto inicio
end
 
Hola muy buenas, vuelvo después de un tiempo por acá de nuevo un saludos a todos los compañeros. Voy a retornar aportando soluciones en lo que pueda por acá.
Empiezo con el amigo ferdy575, Amigo he trabajado con modulos RF un tiempo incluso llegue a trabajarlos bidireccionamente y no es nada sencillo, lo primero que noto en tu codigo es la configuración de los fuses no se si la haces de forma manual y por eso lo menciono. Aparte algo que me ayudo a solucionar problemas con los módulos RF es ver si trasmitian y recibian la información los microcontroladoes y para eso me hice un pequeño cable con un conector rs-232 y utilizando únicamente el pin 5 GND y el pin2 RX y con ayuda del virtual terminal del PBP podía ver si efectivamente estaba enviando la información y el microcontrolador y si el receptor la estaba recibiendo, esto conectando el cable de gnd a l gnd del circuito y el cable de rx al tx del circuito o a la salida del RX del modulo RF. Por el momento esto el dia de mañana te adjunto una imagen del cable que hice y si me da chance un vídeo de como lo uso. Por otro lado que módulos estas usando?
Hola Rey
Gracias por mirar mi código, a ver tecuento lo de los fuses los configuro manualmente y los módulos usados son el TXR434 y el RXR434 la verdad ya he probado los módulos con los HT12D y Ht12E y me funcionaron bien sin embargo voy a hacer la prueba del cable como me dices te agradezco mucho tu ayuda(y)
 
Atrás
Arriba