TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: pic_877a en 21 de Abril de 2023, 21:15:19
-
chicos estoy trabajando en código pbp fuente simétrica, adjunto imagen
adjunto circuito y imagen simulación Lcd 20x4
Utilizo pic 16f877a
amplificador operacional Lm358 en modo inversor
pero en la lcd 20x4 es un desastre lo que se muestra
:shock:
podría alguien ayudarme, gracias
-
mejor manda los archivos de proteus para checar mejor
-
mejor manda los archivos de proteus para checar mejor
gracias por responder amigo
-
pues en proteus esta bien ahorita checo tu código aver que pasa pero se ve que esta mal los analógicos o las posiciones o las lecturas
-
pues en proteus esta bien ahorita checo tu código aver que pasa pero se ve que esta mal los analógicos o las posiciones o las lecturas
muchas gracias por la ayuda, vale,
el código que hice esta un desastre jejejeje
gracias de nuevo por ayudarme
8)
-
amigo tu lo hiciste o de donde te basaste
'Config for 16F877A
#CONFIG
__config _XT_OSC & _WDT_OFF & _LVP_OFF & _CP_ON & _CPD_ON
#ENDCONFIG
define osc 4
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTE
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTE
DEFINE LCD_EBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_ SAMPLEUS 50
TRISC.6 = 0
TRISC.7 = 1
TRISA = 255
ADCON1 = %11000010
TRISB.6 = %0
LED VAR PORTB.6
B1 VAR WORD
B2 VAR WORD
VALOR1 VAR BYTE
VALOR2 VAR BYTE
STAR:
ADCIN 1, B1
ADCIN 2, B2
VALOR1=B1/9
VALOR2=B2 ** 32031
SEROUT2 PORTC.6,188,["$", "$", DEC4 B1,"$", "$",DEC4 B2,10,13]
LCDOUT $FE,2," SYMMETRIC FONT "
LCDOUT $FE,$C4," JOSE LUIS "
LCDOUT $FE,$90," VOLTAGE NEGATIVE:-",DEC2 VALOR1
LCDOUT $FE,$D0," VOLTAGE POSITIVE:+",DEC2 VALOR2
HIGH LED
GOTO STAR
-
amigo tu lo hiciste o de donde te basaste
'Config for 16F877A
#CONFIG
__config _XT_OSC & _WDT_OFF & _LVP_OFF & _CP_ON & _CPD_ON
#ENDCONFIG
define osc 4
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTE
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTE
DEFINE LCD_EBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_ SAMPLEUS 50
TRISC.6 = 0
TRISC.7 = 1
TRISA = 255
ADCON1 = %11000010
TRISB.6 = %0
LED VAR PORTB.6
B1 VAR WORD
B2 VAR WORD
VALOR1 VAR BYTE
VALOR2 VAR BYTE
STAR:
ADCIN 1, B1
ADCIN 2, B2
VALOR1=B1/9
VALOR2=B2 ** 32031
SEROUT2 PORTC.6,188,["$", "$", DEC4 B1,"$", "$",DEC4 B2,10,13]
LCDOUT $FE,2," SYMMETRIC FONT "
LCDOUT $FE,$C4," JOSE LUIS "
LCDOUT $FE,$90," VOLTAGE NEGATIVE:-",DEC2 VALOR1
LCDOUT $FE,$D0," VOLTAGE POSITIVE:+",DEC2 VALOR2
HIGH LED
GOTO STAR
Lo hice con lo poco que he aprendido en pbp y leyendo su manual amigo
:)
y el código esta mal cierto
-
pues un poco jeje no se si también vas a mandar por serie si no la línea SEROUT2 pues no y los analógicos el primero por que lo divides con 9 y el otro por que lo multiplicas por 32031??
-
pues un poco jeje no se si también vas a mandar por serie si no la línea SEROUT2 pues no y los analógicos el primero por que lo divides con 9 y el otro por que lo multiplicas por 32031??
lo he corregido un poco
VALOR1=B1/9
VALOR2=B2/12
aun me sigue quedando mal amigo, podrias ayudarme a corregir el codigo por favor y gracias
-
amigo no es de corregir el código, el código esta bien, aquí es corregir tus matemáticas jeje pon b1/26 y b2/29 y checate los valores casi daq un error de 0.1 solo es cosa de acercarse al valor que necesitas
-
De hecho se puede hacer que muestre dos decimales en el valor del voltage.
Lo primero es definir las variables VALOR1 y VALOR2 como WORD lugar de BYTE:
VALOR1 VAR WORD
VALOR2 VAR WORD
Luego entonces se realizan las siguiente ecuaciones:
VALOR1 = (B1 */ 3500)>>2 'Es lo mismo que (B1 * 3500)/1024
VALOR2 = (B2 */ 3500)>>2 'Es lo mismo que (B2 * 3500)/1024
Finalmente se imprime en la LCD como se muestra a continuación:
LCDOUT $FE,$80," SYMMETRIC FONT"
LCDOUT $FE,$C0," JOSE LUIS"
LCDOUT $FE,$94," VOLTAGE NEG:-",DEC2 (VALOR1/100), ".", DEC2 VALOR1
LCDOUT $FE,$D4," VOLTAGE POS:+",DEC2 (VALOR2/100), ".", DEC2 VALOR2
Una cosa más ue se tiene que realizar es hacer que el amplificador inversor tenga una ganancia de 1/7, colocando la resistencia de retroalimentación de 1K en lugar de 510 ohm, y 7 resistencias en serie de 1K en la terminal inversora en lugar de solo 4.
Espero esto te pueda ser de utilidad.
elreypic.
-
De hecho se puede hacer que muestre dos decimales en el valor del voltage.
Lo primero es definir las variables VALOR1 y VALOR2 como WORD lugar de BYTE:
VALOR1 VAR WORD
VALOR2 VAR WORD
Luego entonces se realizan las siguiente ecuaciones:
VALOR1 = (B1 */ 3500)>>2 'Es lo mismo que (B1 * 3500)/1024
VALOR2 = (B2 */ 3500)>>2 'Es lo mismo que (B2 * 3500)/1024
Finalmente se imprime en la LCD como se muestra a continuación:
LCDOUT $FE,$80," SYMMETRIC FONT"
LCDOUT $FE,$C0," JOSE LUIS"
LCDOUT $FE,$94," VOLTAGE NEG:-",DEC2 (VALOR1/100), ".", DEC2 VALOR1
LCDOUT $FE,$D4," VOLTAGE POS:+",DEC2 (VALOR2/100), ".", DEC2 VALOR2
Una cosa más ue se tiene que realizar es hacer que el amplificador inversor tenga una ganancia de 1/7, colocando la resistencia de retroalimentación de 1K en lugar de 510 ohm, y 7 resistencias en serie de 1K en la terminal inversora en lugar de solo 4.
Espero esto te pueda ser de utilidad.
elreypic.
muchas gracias reypic he corregido lo indicado y adjunto imagen
muchas gracias de nuevo vale 8)
-
ola de nuevo reypic, sabes he simulado el máximo potenciómetro de 5k el regulador lm337 solo registra máximo -26.28V y en la parte positiva registra 27.51V.
adjunto imagen.
será falla de mala conexión del regulador Lm337 :?:
gracias de nuevo
-
ola de nuevo reypic, sabes he simulado el máximo potenciómetro de 5k el regulador lm337 solo registra máximo -26.28V y en la parte positiva registra 27.51V.
adjunto imagen.
será falla de mala conexión del regulador Lm337 :?:
gracias de nuevo
He corregido el diseño de la fuente, me faltaba por colocar 7812 y 7912 para alimentar el amplificador operacional lm 358 con +12v y -12V.
adjunto imagen :-/