Revisar el circuito, falla en protoboard

Buenas, pues aca aprendiendo a programar pics, quisiera pedirles si pueden echarle un ojo a este circuito que hice con leds, basicamente es para prender y apagar con diferentes tiempos, pero a la hora de montarlo en la protoboard no muestra nada en el lcd, tampoco pulsa, en la simulacion todo lo hace bien, espero que no equivocarme de hilo para el tema, gracias

Código:
#include <16F628A.h>

#FUSES INTRC_IO,NOWDT,MCLR,NOBROWNOUT,NOLVP,NOPROTECT,NOWDT
#use delay(clock=4000000)

#include <lcd.c>

#define use_portb_lcd TRUE

void main(){
SET_TRIS_A(0x0F);
output_a(0x00);[IMG]https://imageshack.com/i/p9FPuG69p[/IMG]
 

Adjuntos

  • 15-09-2014 11-32-36 a-m-.png
    15-09-2014 11-32-36 a-m-.png
    34.1 KB · Visitas: 30
El pin VEE de la pantalla no va hacia positivo, ese es el pin de contraste y se ajusta con voltaje negativo.

Coloca un preset de 5kΩ de ese pin hacia negativo, también puedes probar con resistencias alrededor de 1.2KΩ

Sobre el problema de los pulsadores, habría que ver más código, porque lo que pones no muestra nada.
 
gracias darkbytes, en si el problema es la conexión y configuración del lcd, por eso no puse todo el código, lo demás funciona bien, osea si enciende los leds sin el lcd, voy a probar con el preset a ver que tal funciona, gracias.

---------- Actualizado después de 2 horas ----------


Pues aún no lo puedo hacer funcionar, no se si es el oscilador o que onda, pero no funciona.

Hace rato que hice funcionar el pic fue con oscilador externo y parpadeo de un led, pero si intento con el oscilador interno y el lcd no funciona nada, no se si esté mal configurado el oscilador interno y no arranque el pic??
 
Última edición por un moderador:
ya iniciaste el modulo lcd?? una pregunta tal vez mal ubicada pero no lo veo en el programa, tal ves deberias ponerlo para ver tu codigo.

despues del main
lcd_init();

otra cosa es que veo que tienes el pin MCLR como entrada pero en la declaracion de fuses lo tienes activo asi el pic nunca funcionara, usa esto.

Código:
#FUSES INTRC_IO,NOWDT,NOMCLR,NOBROWNOUT,NOLVP,NOPROTECT

Saludos!
 
Última edición:
Creo recordar que hay que indicar en el Proteus la velocidad a la que va el microcontrolador. Y en el programa, indicar el valor correcto de los fusibles, en lo referente al tipo de cristal o reloj a usar.
 
buenas luis30, gracias por contestar, si inicio el lcd, y el mclr lo configure asi por que prentedo usarlo, pero ya hice pruebas de las dos maneras y nada.

JoaquinFerrero, gracias pero el problema no es en la simulacion, si no en la protoboard, y ya ni ahi por que ya hice una tablilla soldada para evitar fallos de la proto, gracias.


este es el codigo que estoy usando ahorita y ni asi emite el hola, tengo duda en la configuracion del lcd pues al poner el #define use_portb_lcd TRUE se supone cambio a puerto B y puse E en RB0 y RS en RB1, asi estan bien??


Código:
#include <16F628A.h>

#FUSES INTRC_IO,NOWDT,MCLR,NOBROWNOUT,NOLVP,NOPROTECT,NOWDT
#use delay(clock=4000000)

#include <lcd.c>

#define use_portb_lcd TRUE


void main(){

SET_TRIS_A(0x0F);
output_a(0x00);

lcd_init();
delay_ms (50);

lcd_putc("Hola");

}
 

Adjuntos

  • 16-09-2014 12-39-12 p-m-.png
    16-09-2014 12-39-12 p-m-.png
    34.7 KB · Visitas: 6
tengo duda en la configuracion del lcd pues al poner el #define use_portb_lcd TRUE se supone cambio a puerto B y puse E en RB0 y RS en RB1, asi estan bien??
No es necesario que hagas esa definición, pues cuando declaras que usarás el PIC16F628A, el compilador automáticamente direcciona las instrucciones hacia el puerto B.

Mira por aquí: 16F628A LCD 16x2
Estos son dos ejemplos funcionando para el PIC16F628A.
Cualquier otra duda sobre el funcionamiento de la pantalla, seguramente la encontrarás mirando ese tema.

Suerte.
 
Gracias, con estos ejemplos probé y si funciona el lcd, entonces es mi configuración, el esquema está bien.
Otra cosa, el R/w tuve que conectarlo al pic, en negativo no funciona el ejemplo que me diste

---------- Actualizado después de 1 hora ----------


Buenas, gracias, ya funcionó, y lo que salió sobrando fue INTRC_IO.

Se supone que es para el oscilador interno, pero no funcionó con él.
Gracias.
 
Última edición por un moderador:
Atrás
Arriba