Un despertador muy perspicaz


circuito_funcionando

Realmente la electrónica evoluciona a un ritmo  frenético y la verdad es que lo queramos o no, la electrónica del siglo XXI es difícil de entender sin la ayuda de los elementos programables, ocupando sin  duda un lugar crucial  en este apartado, los microcontroladores, por su gran flexibilidad, bajo precio y altísimas prestaciones, por lo que cada vez mas, dispositivos corrientes  (incluso  de relativa sencillez), integran en gran parte de su electrónica un microcontrolador  o un microprocesador, siendo cada vez mayor la lista de dispositivos y aparatos  que  utilizan esta tecnología: electrodomésticos, periféricos para ordenadores, teléfonos móviles, etc.

La verdad es que si bien la electrónica en general se ha visto muy mejorada por la simplificación de los componentes necesarios  en cualquier proyecto complejo ( piénsese que  un microcontrolador  integra prácticamente todo lo necesario: CPU, memoria, timers, puertos de E/S, controladores de LCD, etc. ), no lo ha sido  así  el software requerido para  que estos  cumplan con el cometido deseado, pues tradicionalmente este  se creaba   basándose en   ensamblador, el cual es  un lenguaje  muy  potente  por ser muy cercano a la maquina, si bien como contrapartida, es muy dependiente de esta, y además es  de relativa  dificultad  para todos los aficionados que desean empezar en este mundo y no poseen los conocimientos de programación que se requieren.

Afortunadamente  en el mundo de los dispositivos programables recientemente han aparecido nuevos lenguajes más próximos al lenguaje natural (en C  o en Basic)   que nos pueden ayudar  en el desarrollo del software de estos dispositivos: precisamente   desde estas líneas intentaremos demostrar la gran sencillez  para realizar un proyecto electrónico medianamente  complejo basándonos en un simple y barato microcontrolador (en esta ocasión usaremos el PIC16F84A)   desde cero usando el sencillísimo   lenguaje  PIC-BASIC-PRO (en adelante PBP).

A  continuación intentaremos  transmitir los conocimientos mínimos para que cualquiera que no haya programado  ningún PIC, simplemente  estudiando  las explicaciones siguientes, junto con los ejemplos  de porciones del proyecto, pueda iniciarse progresivamente  en la comprensión  de la programación de estos dispositivos tan potentes, de modo que  al final como colofón pueda comprender  el programa definitivo, el cual es plenamente funcional, y será encargado de gestionar por completo el proyecto  del reloj-temporizador semanal con salida a LCD que se  propone.

Tal  y como se ha adelantado, el proyecto versara sobre  un  reloj con display LCD de dos líneas en el que mostraremos información de la hora actual  ,el día de la semana y el modo de temporización  seleccionado) contando para su control de  varios pulsadores ( para ajustes de  día de semana, hora y día actual, ajuste de hora  de activación y ajuste de modalidad de activación) y dos salidas independientes ( una para la luz de fondo del display y otra para usos varios:  buzzer, relé, etc.).

El corazón del circuito tal y como hemos expuesto Serra un PIC16F84 el cual programemos con el código en PBP   que más adelante  citaremos (aunque la mayoría de las partes de este ya han sido comentadas.

A este conectaremos por un lado  los cinco pulsadores, las dos salidas  y por otro lado el display LCD.

Respecto a las entradas utilizaremos pulsadores normalmente abiertos  conectados  a su vez a resistencias de 10k para asegurar que en  reposo hay un valor alto.

En cuanto al display, para esta ocasión utilizaremos cualquier LCD de dos líneas compatible con Hitachi 44780, el cual conectaremos al PIC  en modo 4 bits (utilizando los 4 bits altos) .El resto de  las conexiones del LCD lo haremos según la recomendación de PBP:

Pin 1àgnd

Pin2à+5V

Pin3  à+5v

Pin4(RS) àRA4

Pin5 àN.C.

Pin6(EN) àRB3

Pines7,8,9.10 àN.C.

Pin 11àRA0

Pin 12à RA1

Pin 13à RA2

Pin 14àRA3

Por ultimo, todo el circuito podemos  alimentarlo o bien con alimentador filtrado  a cuya salida conectaremos un regulador tipo 78L05  y dos condensadores de filtro  tanto en la entrada como en la salida de este o bien en su lugar una económica fuente conmutada de 5V ya montada( en cuyo caso no necesitaremos el citado  regulador y el circuito será aun más compacto.

El circuito se completa con un diodo de protección a la entrada  para evitar  cambios de polaridad dado que  el circuito lo alimentaremos con un simple alimentador externo  reciclado  que  entregue  5V.
diseño despertador

Lista de componentes

R1=47K

R2,R3,R4 ,R5 y R8=10K

R6,R7=470ohm

C1,C2=10Mf/16v

C3,C4=10nF

C5,C6=27pf

Q1=XTAL 4Mhz

U1=78L05

IC1= PIC16F84A

DIS2=display 16 caracteres y 2 lineas (POWERTIP PC1602F)

Varios:

Bloque Diodos leds tricolor( se puede reciclar  de una economica lamparita decorativa alimentada con pilas de botón fácilmente localizable en tiendas de decoración) .

S1, S2, S3, S4, S5= pulsadores miniatura normalmente abiertos.

Un zumbador de 5V.

Fuente conmutada de 5v 100mA( por  ejemplo se puede recuperar de un cargador de teléfono móvil en desuso).

Caja: usaremos una vieja caja de plástico de disquetes de 3 ½” .

Circuitos Impresos

Dada la sencillez del circuito este circuito puede realizarse muy  fácilmente sobre una placa  de puntos, o bien sobre una placa de prototipos o si lo desea sobre una simple  placa de una cara cuyo diseño se adjunta:

circuito_impreso

Diseño  a doble cara

Dada la extrema sencillez del circuito no se aconseja  realizar un circuito impreso de doble cara, pero para el lector que le interese se presenta a continuación junto con las conexiones de este con el resto de componentes.

Conexiones placa doble cara

Conector FUNCIÓN CONEXIÓN A
1 GND  
2 +5V  
3 +5V  
4 RA0 PIN 11 LCD
5 RA1 PIN12 LCD
6 RA2 PIN13 LCD
7 RA3 PIN14 LCD
8 RA4 PIN 4 LCD
9 RB0 SALIDA 1
10 RB1 SALIDA2
11 RB2 PULSADOR1
12 RB3 PIN6 LCD
13 RB4 PULSADOR2
14 RB5 PULSADOR3
15 RB6 PULSADOR4
16 RB7 PULSADOR5
17 N.C.  
18 N.C.  
19 +5V  
20 GND  

Pasos para la construcción del prototipo

Paso 1: Compilación del código fuente

El código  generado en PBP  por si mismo  no es apto para ser  cargado en el PIC,  ya que este solo  entiende su propio lenguaje máquina, para lo cual deberemos convertir  con un complilador nuestro código escrito en PBP a un código que el micro pueda procesar.

Existe una versión gratuita  limitada de  PIC Basic Pro  en su web oficial http://www.melabs.com/pbpdemo.htm

Como el lector adivinara el  entorno del compilador   PIC-BASIC-PRO es algo austero (requiere trabajar en línea de comandos y un editor de texto),  por lo que por lo general lo normal será usar un entorno de desarrollo Grafico (IDE) donde el editor, grabador, compilador,  etc. estén  integrados  como por ejemplo el MicroCode Studio  de la casa Mecanique ,el cual se puede descargar de la siguiente url: http://www.mecanique.co.uk/products/compiler/pbp.html

NOTA: Para aquellos lectores que  deseen adquirir directamente el código del proyecto ya compilado y no deseen compilarlos por ellos  mismos pueden solicitarlo gratuitamente a: [email protected]

Paso 2: Simulación del código fuente

Con objeto de no estar continuamente programando  el PIC, existen simuladores para no tener que realiza ningún  prototipo  físicamente y de esta manera evaluar  el comportamiento global de este  antes de estudiar su realización real.

Existen muchos simuladoras, por software (por ejemplo Proteus es el más famoso),  pero existe uno especifico para PIC’s: el PIC Simulator de  OshonSoft (se puede descargar una versión limitada en http://www.oshonsoft.com/downloads.html )

Suponiendo  instalado el software para la simulación del código,  realizaremos los siguientes pasos:

  1. FileàLoad Programà .hex
  2. ToolsàLCD ModuleàChange LCD Module Color SchemeàLCDtype 2x:2×16,data lines:portA.interface 4 bits Low,RS:A4,E line=B3,r/W:no used
  1. Tools àMicrocontroller View
  2. RateàFast
  3. SimulationàStart

Paso 3: Grabación del PIC

Una vez obtenido el código ensamblado y simulado necesitaremos  un simple circuito llamado programador  para salvar el .hex en la flash del PIC. Normalmente los programadores más simples están   basados  en el diseño JDM, siendo el más usual el TE20 (  se puede conseguir fácilmente    en http://todoelectronica.com ).

Para poder emplear nuestro grabador, necesitaremos un software grabador que lo permita. Uno de los programas para grabación de PIC’s mas conocidos es  el Ic-Prog, el cual se puede descargar gratuitamente de http://www.ic-prog.com/index1.htm

Proceso de Grabación  a través  del ICPROG  con el TE20

Ponemos en marcha en ICPROG 1.06b, si lo iniciamos por primera vez, nos saldrá una pantalla de configuración, si no es el caso, pulsamos la tecla F3 (settingsàHardware), una vez en ella, colocaremos las siguientes opciones:

·        Programmer: JDM Programmer

·        Ports: Com1 o Com2 dependiendo de donde hallamos colocado el TE20

·        I/O Delay: Normalmente, tiene que estar a 5, pero si nos da problemas al programar la eeprom, lo colocaremos en 4.

·        Interface: Direct I/O

·        Communication: Todas sin activar

Ahora nos vamos a SettingsàOptions, y chequearemos las pestañas:

·        I²C: Ambas tienen que estar desactivadas

·        Misc: Desactivar la opción de “Enable Vcc control for JDM”

·        Programming: Tiene relación con el fuse “CP”   (Code Protection) para la protección del PIC tendremos que desactivar ambas casillas, pero si queremos verificar que nuestro PIC o eeprom ha sido bien grabado tendremos que desactivar el fuse “CP” y activaremos cualquiera de la dos casillas, la primera lo verifica al acabar de programar y la segunda mientras programa (se aconseja dejar la primera opción). Si activamos el verificado y el fuse “CP” nos dará el 0000h.

Seguidamente en la parte izquierda de la pantalla  seleccionamos los  fuses y Oscilator:

FUSES

·        “WDT” :Perro Guardián. Cuando el programa entra en un bucle infinito, el WDT se desborda y resetea el PIC

·        “PWRT”:Power on Reset. Hasta que el PIC no alcance una tensión de funcionamiento correcta lo mantiene en reset

·        “CP”: Code Protection. Protege el código contra lectura.

OSCILATOR

·        “LP”:Oscilador de bajo consumo, de frecuencia de 35 a 200Khz.

·        “XT”:Oscilador para frecuencias estándar, de 100Khz a 4Mhz

·        “HS”:Oscilador de alta velocidad de 4Mhz a 10Mhz (Cristal de Cuarzo) àlo seleccionaremos

·        “RC”:Oscilador de bajo coste formado por condensador y resistencia

Finalmente, una vez llegado ha este punto, vamos a comenzar la programación del PIC en nuestro TE20 que debe de estas desenchufado del cable ext. RS232, con las muescas del chip que coincida con las muescas del  zócalo de 18 pines. Una vez colocado, enchufamos el TE20 al cable, elegimos el chip (en nuestro caso  PIC 16F84) en el menú superior   abrimos el archivo compilado (.hex), el oscillator debe de estar en XT y los fuses todos desactivados, el CP lo podemos activar o no, dependiendo de las necesidades.

Ya sólo nos queda cruzar los dedos y darle a Commandà Program all o al icono que tiene un chip con un rayo…

Si tuviéramos algún problema en la grabación del chip  bajaríamos la velocidad del puerto donde estuviera enchufado el TE20 a 2400 bits por segundo, pero si persiste el problema consultar  en esta URL: https://soloelectronicos.wordpress.com/2008/07/24/como-grabar-un-PIC16fxx-desde-un-portatil-con-el-te20jdm/).

Paso4: Realización del circuito

Como el lector  habrá comprobado a lo largo de todos los apartados anteriores, tras el  paso de  grabación del PIC, ya solo  nos queda alimentar este  y  conexionar  todos sus periféricos para que nuestro proyecto cobre vida

En este proyecto, la realización práctica incluye  tres  partes:

  • La placa de control en la que incluiremos los siguientes elementos:

–          El circuito del resonador formado por el cristal de cuarzo de 4Mhz  y los dos condensadores cerámicos conectados a este .

–          La fuente de alimentación  de 5voltios 50mA(opcional si o se cuenta con una fuente externa de estas características ), formada por un regulador  tipo 75L05(de baja potencia) y lo respectivos condensadores de desacople .

–          El zumbador  ( que conectaremos a B1).

–          Las resistencias de 10K  que nos aseguran en valor alto en las entradas asociadas a los pulsadores.

–          El microcontrolador programado con el programa descrito.

  • La placa del display LCD de dos líneas que  se conectara a la  placa de control de la siguiente forma:

Pin 1àgnd

Pin2à+5V

Pin3  à+5v

Pin4(RS) àRA4

Pin5 àN.C.

Pin6(EN) àRB3

Pines7,8,9.10 àN.C.

Pin 11àRA0

Pin 12à RA1

Pin 13à RA2

Pin 14àRA3

  • La placa de entradas: tal y como se ha descrito en nuestro caso estará constituido por  cinco  pulsadores normalmente abiertos, los cuales conectaremos directamente a la placa de control   a B7, B6, B5, B4, B2, B3 ( recuerde que en esta ya hemos incluido las resistencias de 10K.

Paso 5: Comprobación de resultados

Normalmente si el  micro está bien grabado y las conexiones de éste a sus periféricos son correctas el circuito debiera funcionar a  la primera sin problemas.

Un buen indicador de funcionamiento es el display LCD, de modo que si este no visualiza nada en su pantalla  lo más normal es que sea por  de falta de alimentación, en cuyo caso  comprobaremos   con un polímetro si la tensión de alimentación llega tanto  al micro como al LCD.

Si aún llegando alimentación al LCD, en el display de este  aparecen solos unos bloques oscuros en las primeras columnas  de la primera fila es señal de que o el micro no esta funcionando o las conexiones de este no son correctas, para lo cual comprobaremos  en primer lugar que las  conexiones del LCD a la placa de control son las correctas: echo esto deberían ya verse caracteres correctos en el LCD.

Si persiste aún el mensaje en el LCD es señal que las conexiones internas son incorrectas por lo que comprobaremos  que la resistencia de 47k esta correctamente conectada al pin 6 así como el cristal y los dos condensadores lo están  a los pines 15 y 16 del micro.

Una vez el circuito este funcionando ya solo cabe ajustar el reloj interno a la hora actual por lo que en primer lugar ajustaremos el día de semana y  la hora  actual  pulsando sobre el pulsador de  días/horas (al pasar 24 horas automáticamente se cambia al día de la semana siguiente hasta llegar al domingo que se vuelve a repetir el ciclo) y  después ajustaremos  los minutos pulsando directamente sobre el botón de  minutos ( al pulsar se va incrementando su valor hasta llegar a 60,momento en el cual vuelve a empezar desde 1.

Seguidamente ajustaremos  la hora de alarma pulsando el botón  de hora y minutos  de la hora de activación de la  alarma ( por simplificar el número de pulsadores  este  ajusta los minutos y también las horas de modo que presionando este se van incrementando los minutos de la hora de activación de modo que si se llega hasta los 60 minutos automáticamente se incrementa el valor  de las horas hasta llegar a las 24 h, momento en el que se vuelve a repetir el proceso.

Finalmente elegiremos el modo de activación, presionando sucesivamente el botón de modo , el cual definirá la periodicidad  semanal de activación, mostrando los siguientes mensajes en el lcd:

  1. ‘Off’: desactiva el circuito de temporización.
  2. ‘Tod’= lo activa para todos los días de  la semana.
  3. ‘Lab’= solo lo activa para los días laborales ( de Lunes a Viernes).
  4. ‘NoL’ =lo activa para todos los días excepto los Lunes.
  5. ‘Mañ’ =lo activa puntualmente para el día siguiente.

Para finalizar para desactivar tanto la luz de cortesía como el buzzer pulsaremos simplemente el botón “stop”.

Como detalle de cortesía, como puede verse en el código, pulsando cualquier pulsador se encenderá la luz del display aproximadamente un minuto.

Por ultimo animo desde estas líneas a que el lector experimente con el código en PBP que a continuación  se adjunta  adoptándolo y personalizando a las necesidades y exigencias particulares  que se crean oportunos a nuevos proyectos, pues como habrá podido observar realmente programar un PIC no es tan complicado ¿verdad?

Listado del programa en PBP

‘****************************************************************

‘***********************************************

‘***  PROGRAMADOR SEMANAL CON SALIDA a rele

‘***     Por Carlos Rodríguez Navarro

‘***    [email protected]

‘****    procesador PIC16F84

‘****  28/octubre/2008

‘ DISPLAY LCD HD 44480

‘RA0,RA1,RA2,RA3=DATOS(PINES 11-14)

‘RB3=ENABLE   (PIN 6)

‘RA4=RS     (PIN 4)

‘vcc (pin 2)

‘gnd (pin 1)

‘vee(pin 3)   a vcc

‘SALIDAS

‘alarma1   portb.0    ‘salida

‘ luz portb.1     ‘salida

‘PULSADORES

‘alarma_boton portb.2    ‘ent

‘solo_hora_boton portb.7  ‘ent

‘hora_boton portb.4    ‘ent

‘prog_boton portb.5    ‘ent

‘periodo_boton portb.6  ‘ent

‘***********************************************

symbol alarma1=portb.0    ‘salida

symbol luz=portb.1     ‘salida

SYMBOL alarma_boton=portb.2    ‘ent

SYMBOL  solo_hora_boton=portb.7 ‘ ent

symbol  hora_boton=portb.4    ‘ent

symbol  prog_boton=portb.5    ‘ent

symbol periodo_boton=portb.6  ‘ent

ticks var byte

hora var byte

horaal VAR BYTE

minuto var byte

minutoal VAR BYTE

segundo var byte

semana VAR BYTE

delay var byte

DESC VAR BYTE

desc1 var byte

lunes var bit

martes var bit

miercoles var bit

jueves var bit

viernes var bit

sabado var bit

domingo VAR Bit

PATTERN VAR BYTE

i var byte

minutoluz var byte

TRISA=0      ‘PORTA COMO SALIDAS         ( 0=output,1=input)

TRISB= $f4  ‘116   ‘RB0,RB1,rb3 COMO SALIDAS   resto entradas   1110100=  116

‘PONER A CERO HORA,MIN,SEG Y TICLS

HORA=0

horaal=0

MINUTO=0

minutoal=0

SEGUNDO=2

semana= 1

TICKS=0

DESC=0

DESC1=0

Lcdout $fe, 1 ‘ Clear LCD screen

lcdout $FE,2

lcdout “CRN”   ‘mensaje de cortesia

pause 10

‘INICIALIZAR VECTOR INTERRUPCOPN

OPTION_REG=$05  ‘timer prescaler es cargado a 64 a traves de option_reg  00000101

ON INTERRUPT GOTO ISR

INTCON=$A0           ‘habilita INTERRUPCIONES POR TMR0

‘BORRAR DISPLAY

LOOP:           ‘bucle principal de ejecucion

‘bloque de ajuste minutos,hora, segundos y dia de la semana

IF solo_hora_boton=0 THEN      ‘si se pulsa el boton de ajuste

GOSUB RETARDO

IF solo_hora_boton=0 THEN      ‘si se pulsa el boton de ajuste

MINUTO=MINUTO+1               ‘se incrementan minutos

gosub minuto60

endif

endif

‘bloque de ajuste minutos,hora, segundos y dia de la semana

IF HORA_boton=0 THEN      ‘si se pulsa el boton de ajuste

GOSUB RETARDO

IF HORA_boton=0 THEN      ‘si se pulsa el boton de ajuste

minuto=60

‘  hora=hora+1

GOSUB minuto60 ‘HORA24

endif

endif

‘bloque de ajuste hora de alarma

IF PROG_boton=0 THEN      ‘si se pulsa el boton de ajuste    hora alarmas

GOSUB RETARDO

IF PROG_boton=0 THEN      ‘si se pulsa el boton de ajuste    hora alarmas

MINUTOAL=MINUTOAL+1               ‘se incrementan minutos

IF MINUTOAL>59 THEN            ‘horas

MINUTOAL=0

horaAL=horaAL+1

endif

if horaal>23 then horaal=0

endif

endif

‘bloque ajuste periodicidad  de alarma ( 6 modos)

IF periodo_boton=0 THEN      ‘si se pulsa el boton de ajuste de semanas

GOSUB RETARDO

IF periodo_boton=0 THEN

DESC=DESC +1

DESC1=DESC

IF DESC=6 THEN

desc=0

DESC1=0

ENDIF

endif

endif

‘bloque apagado de alarma y de la  luz

IF alarma_boton=0 THEN      ‘si se pulsa el boton de ajuste de semanas

pause 150

IF alarma_boton=0 THEN

desc=desc1 ‘restara modalidad alarmqa

low alarma1     ‘resetea alarma

low luz

endif

endif

‘condicion de alarma

if hora=horaal and minuto=minutoal and segundo=1  and ( semana=   lunes*1  or   semana=martes*2 or  semana=miercoles*3 or     semana=jueves*4 or      semana=viernes*5 or   semana=sabado*6 or  semana=domingo *7)   then

GOSUB LUZON       ‘ enciende luz de fondo

HIGH ALARMA1      ‘activa alarma

desc=5         ‘PINTA EN PANTALLA

ENDIF

‘apaga la luz de fondo al minuto

if minutoluz=minuto then

gosub  luz_fondo_off

endif

gosub display

goto loop             ‘bucle principal de ejecucion

‘RUTINA DE SERVICIO

DISABLE

ISR:

TICKS=TICKS +1

if ticks<61 THEN SINACTUALIZAR

TICKS=0

SEGUNDO=SEGUNDO+1

IF SEGUNDO=60 THEN

SEGUNDO=0

MINUTO=MINUTO+1

gosub minuto60

ENDIF

SINACTUALIZAR:

INTCON.2=0   ‘   REACTIVA TMR0

RESUME

ENABLE

END

display:

lcdout $FE,2

lcdout dEC2 hora,”:”,DEC2 minuto ,”:”,DEC2 SEGUNDO,” ”

LOOKUP semana,[“0″,”L”,”M”,”M”,”J”,”V”,”S”,”D”,”M”] ,pattern

LCDOUT PATTERN

LOOKUP semana,[“F”,”U”,”A”,”I”,”U”,”I”,”A”,”O”,”A”] ,pattern

lcdout pattern

lcdout $FE,2

LcdOut $FE, $C0 ‘Principio segunda linea

lcdout dEC2 horaAL,”:”,DEC2 minutoAL ,” ”

select case desc

case 0:       LCDOUT “OFF”

gosub borra

case 1:     ‘todos los dias

gosub llena

LCDOUT “Tod “‘”LMXJVSD”

case 2: ‘laborales

gosub llena

sabado=0

domingo=0

LCDOUT “Lab”‘ LMXJV  ”

case 3 :   ‘libra lunes

gosub llena

lunes=0

LCDOUT “NoL”

case 4:         lcdout “Mañ”

GOSUB BORRA

IF  SEMANA=1 then martes=1

if semana=2 then  miercoles=1

if semana=3 then jueves=1

if semana=4 then viernes=1

if semana=5 then sabado=1

if semana=6 then domingo=1

if semana=7 then lunes=1

case 5:

lcdout “ON ”

end select

return

llena:               ‘inicializa a 1 los indicadores semanales

lunes=1

martes=1

miercoles=1

jueves=1

viernes=1

sabado=1

domingo=1

return

borra:         ‘inicializa a 0 los indicadores semanales

lunes=0

martes=0

miercoles=0

jueves=0

viernes=0

sabado=0

domingo=0

return

LUZON:

HIGH LUZ      ‘activa la luz de fondo guardando el minuto

minutoluz = minuto+1

if minutoluz>60 then minutoluz=1

RETURN

RETARDO:  ‘antirebotes de 150ms  pulsadores activando tambien la  luz de fondo

PAUSE 250

GOSUB LUZON         ‘ enciende luz de fondo

RETURN

HORA24:      ‘si se incrementan las horas mas de 24h

IF HORA=24 THEN

HORA=0

semana=semana+1

if semana>7 then    semana=1

endif

RETURN

minuto60:  ‘ si se incrementan los minutos mas de 60

IF MINUTO=60 THEN

MINUTO=0

HORA=HORA+1

GOSUB HORA24

ENDIF

return

luz_fondo_off:      ‘apaga luz de fondo

low luz

minutoluz=61

return

PULSA AQUI PARA ACCEDER AL FICHERO HEX—
PROGRAMADOR_SEMANAL_CON_LCD -hex

ATENCION:COPIAR Y PEGAR EL CODIGO AL BLOC DE NOTAS Y LUEGO RENOMBRAR A .HEX

Autor: soloelectronicos

Soy Ingeniero Técnico Electrónico e Ingeniero Técnico Informático de Sistemas : .He trabajado en Sistemas de Telecomunicaciones ,mas tarde como desarrollador , y después como Gestor de desarrollo y como formador en la EET . Mi gran pasion es la electronica (cuanto mas simple,sencilla y de bajo costo mejor: por eso me gusta cada vez mas la resuabilidad de los equipos en desuso) Mi segunda gran pasion son las artes marciales ( practico Tai-chi-chuan,Chi-Kung,Kobudo ,Goshin,karate-sotokan e Iaido)

94 comentarios en “Un despertador muy perspicaz”

  1. Hola compañeros, estoy iniciandome en el mundo de los pic´s, me parecen facinantes. hee estado revisando el codigo para tratar de entenderle y sin embargo no lo comprendo todo. me gustaria hacer la practica del reloj Sanit podrias pasarme el .HEX, te lo agradeceria mucho GRACIAS!!!

    Me gusta

  2. oyes esta pagina esta my buena la verdad

    tengo un error cuando intento hacer el copilado

    PORFAVOR M PUEDES PASAR EL ARCHIVO .hex

    gracias de antemano muchas gracias 🙂

    Me gusta

  3. hola tal vez me podria enviar alguien el .hex de undespertador muy perspicaz ya lo compile en el Pic Basic Pro pero no me funciona, la verdad es q estoy interesado en elcircuito para hacerle una modificacion deseo encender un foco de 100w. mi correo es [email protected] ..gracias

    Me gusta

  4. Hola, alguien seria tan amable de pasarme el código en .HEX, lo que sucede es que tira error durante la compilación y no tengo idea de como solucionarlo, sin embargo es un buen proyecto que deseo completar, mi correo es [email protected]….a se me olvidaba, no puedo visualizar bien el diagrama, estará disponible en una mayor resolución?

    Me gusta

  5. HOLA…NUEVAMENTE ESCRIBO..PORQUE NO ENCUENTRO EL ENLACE DIRECTO AL HEX..DISME EXACTAMENTE DONDE SE ENCUENTRA….SOLO ENCUENTRO UN CORREO..SI PORFAVOR ME DIRIAS EXACTAMENTE EN QUE LUGAR SE ENCUENTRA…O SERIA MEJOR QUE ME LO MANDES A MI CORREO…GRACIAS

    Me gusta

  6. (aclaracion : estoy usando la cuenta de yahoo de mi mama 😀 )

    hay un problemita amigo
    no se porque razon alguna
    no logro distiguir el esquema electrico
    y lo intente mejorar con el photoshop y.. nadaaa…
    que bronca!!

    pero es que no logro distinguir el circuito
    o es que el .jpg esta en mala calidad 😦
    por favor
    podrias resubir el circuito en mejor calidad ???

    Me gusta

      1. Ya probé el programa y lo compile sin tener ningún error y también me genera el código hexadecimal.
        Pero no me despliega nada en el display de LCD, pienso que el problema es la conexión en el diagrama este lo estoy simulando en proteus.
        Como puedo enviarte el diagrama y si puedes indicare si tengo algún error en la conexión.

        Agradezco tu atención.

        Me gusta

  7. Ya probé el programa y lo compile sin tener ningún error y también me genera el código hexadecimal.
    Pero no me despliega nada en el display de LCD, pienso que el problema es la conexión en el diagrama este lo estoy simulando en proteus.
    Adjunto encontraras el esquema, puedes indicare si tengo algún error en la conexión.

    Agradezco tu atención.

    Me gusta

  8. Ya probé el programa y lo compile sin tener ningún error y también me genera el código hexadecimal.
    Pero no me despliega nada en el display de LCD. También lo simule en PIC Simulator IDE y obtengo el mismo resultadono visualizo nada en la pantalla de LCD.

    Agradezco tu atención.

    Me gusta

    1. Las conexiones son realmente simples de hacer.Normalmente simplemente por alimentarlo ya debería aparecer un cuadradito (aunque no tenga las demás conexiones)Mucho ojo con no equivocarte a la hora de contar los pines del lcd ( probablemente si te equivocas lo destruirás).Debes tambien aseguararte que es compatible pin a ping con el standard de Hitachi.

      Me gusta

      1. Ya cheque mas de una vez la información, verificando la información técnica y los pin-out, pero el problema persiste.Las conexiones son muy basicas, y si tu lo simulaste (eso creo) en proteus no deberia tener ningun problema.

        Simularlo en proteus deberia funcionar. Creo que te falta en tu pagina un esquema claro del circuito de conexion, si es que tu lo desarroyaste y lo principal que funcione.

        Me gusta

  9. Alguno de los usuarios, tendra un esquema de conexion en proteus que se viualice mejor y si pudieron comprobar que funcione realmente el circuito.

    Si tienen un esquema de conexion por favor pueden enviarmelo a: [email protected]
    ó si tienen un esquema de conexion que puedan publicarlo en esta pagina.

    Agradezco tu atención.

    Me gusta

  10. El circuito funciona perfectamente (de hecho lo tuve como despertador por muchos meses ).Creo que es muy importante que realmente sea compatible con el standard de hitachi y por supuesto nuevo .Si os equivocais con las conexiones probablemente estropeareis el lcd y luego si las corregis ya no funcionara.Aconsejo si teneis dudas de la compilacion escribais un simple programa que pinte cualquier caracter en la pantalla y deberia ir.Yo he usado muchos displays que he comprado de ocasion qeu luego no han funcionado.Un display fiable es aquel que al menos al aliemntarlo con 5v se enciende un cuandrado en un lateral ( sin otra conexion más)

    Me gusta

      1. Hola el hex lo tienes al final del articulo precisamente en un enlace que pone:
        PULSA AQUI PARA ACCEDER AL FICHERO HEX—
        PROGRAMADOR_SEMANAL_CON_LCD -hex

        ATENCION:COPIAR Y PEGAR EL CODIGO AL BLOC DE NOTAS Y LUEGO RENOMBRAR A .HEX

        Me gusta

  11. HOLA AMIGO ESTOY CHECANDO TU CONEXION PERO NO ALCANZO A DISTINGUIR MUY BIEN LOS COMPONENTES YA QUE LA IMAGEN SE VE MUY PIXELEADA PODRIAS ENVIARME EL DIAGRAMA A MI CORREO SI ES QUE LO TIENES? SERIA MUY BUENO PARA PODER TERMINAR EL RELOJ SALUDOS MI CORREO ES [email protected]

    Me gusta

    1. Lamento decirte que es un proyecto que hice hace bastante tiempo y no tengo mejores imágenes
      Eso si,si lees el articulo completamente veras como explica conexión a conexión pues en el tema de los microcontroladores las conexiones son mínimas uy bastantes sencillas

      Me gusta

      1. hola amigo ya compile el programa en micro code studio pero me marca 21 errores
        y no se cuales tendras de casualidad el codigo compilado mi corrreo es [email protected] podrias pasarme tu correo muchas gracias esta muy interesante tu pagina…..

        Me gusta

  12. Me resulta imposible acceder al codigo .hex desde el enlace de pie de pagina y los correos que envio a soloelectronicos me son rechazados, por favor si es posible enviarme el archivo .hex a mi casilla de correo electronico, la cual es [email protected]. Desde ya muchas gracias.

    Me gusta

  13. Hi terrific website! Does running a blog like
    this require a massive amount work? I have very little understanding
    of programming but I had been hoping to start my own blog
    in the near future. Anyways, should you have any ideas or techniques for new blog owners please share.
    I understand this is off topic however I just had to ask. Many thanks!

    Me gusta

  14. Hola tu proyecto es muy bueno, compile el programa, pero no puedo ver bien el diagrama de conexión me pregunto si puedes subir una imagen una mejor resolución por favor.
    Gracias y saludos!!!

    Me gusta

  15. When I originally commented I seem to have clicked on the -Notify me when new
    comments are added- checkbox and from now on every time a comment is added I get four emails with the exact same
    comment. There has to be an easy method you are able to
    remove me from that service? Thanks!

    Me gusta

  16. After I initially commented I appear to have clicked on the -Notify me when new comments
    are added- checkbox and now every time a comment is added I
    recieve 4 emails with the same comment. There has to be an easy
    method you are able to remove me from that service? Appreciate it!

    Me gusta

  17. Disculpa, pero no tendras el .asm porque yo trabajo con el proteus para hacer circuitos y necesito el .asm para cargarlo al pic. Y otra cosa, no entendi como y donde se conecta el buzzer y el regulador.

    Me gusta

    1. Hola siento demorar la contestación. Hace mucho tiempo que escribí ese código y la verdad es que ni siquiera tengo el compilador Pic Basic
      Solo puedo decirle que el código era 100% funcional ( de hecho aun tengo el despertador ) y no entiendo el fallo que dice . La unica explicacion lógica es que este usando otra version diferente de compilador de Pic Basic del qeu yo emplee

      Me gusta

    1. Este proyecto lo hice ya bastantes años atras y ya no dispongo del .ppp ( solo del hex y del codigo fuente ).El codigo fuente esta directamente en la pagina: sólo hay que copiarlo con el bloc de notas y renombrar luego el fichero a .pbp

      Me gusta

      1. ¿recuerdas las versiones de los programas y compiladores que utilizaste? Por que me marca error en las etiquetas LOOP y GOTO LOOP, ademas al intentar compilar genera un código de error warning 202 “Argument out of range” :/

        Me gusta

  18. Perdón, mi conexión a Internet es un asco en estos momentos. Te quiero comentar, estoy usando un programador universal USB de PIC y escribiendo el .HEX en la PIC el display marca los cuadros negros en la primera linea ¿Tiene influencia directa la escritura en el PIC por dicho programador? Por que según yo, mientras sigas los parámetros establecidos no debe generar ningún problema

    Me gusta

  19. Arme el circuito y no me funciona el diagrama es medio pobre no veo a nadie salvo el creador q cuente que funcione,yo el display lo testeo con arduino y anda uso mi viejo programador t20 pero no hay caso,vi el proyecto y me gusto pero es una lastima que sea tan pobre el diagrama y dudoso el hex!

    Me gusta

    1. Este circuito lo diseñe personalmente y de hecho aun lo tengo como recuerdo ( fue mi despertador por mucho tiempo) : El esquema no tiene ninguno misterio y es muy sencillo( un pic con el lcd y los pulsadores ) y de veras no tiene ninguna dificultad .
      En el articulo entregue el hex ( es d3cir el complilado ) pero lo mas importante; el codigo fuente que deberia compilarse con el PicBasic Pro

      Me gusta

  20. Hi there! This is my first visit to your blog! We are a collection of volunteers and starting a new initiative in a community in the same niche. Your blog provided us valuable information to work on. You have done a extraordinary job!|

    Me gusta

  21. I do not know whether it’s just me or if perhaps everyone else experiencing problems with your blog. It looks like some of the written text within your posts are running off the screen. Can someone else please provide feedback and let me know if this is happening to them too? This might be a issue with my browser because I’ve had this happen before. Kudos|

    Me gusta

  22. My partner and I stumbled over here from a different web address and thought I might check things out. I like what I see so i am just following you. Look forward to looking into your web page yet again.|

    Me gusta

  23. You could definitely see your enthusiasm in the article you write. The arena hopes for more passionate writers such as you who aren’t afraid to say how they believe. Always follow your heart.|

    Me gusta

  24. I’m really impressed together with your writing abilities as neatly as with the layout in your weblog. Is this a paid theme or did you modify it your self? Anyway stay up the excellent quality writing, it’s uncommon to see a great blog like this one nowadays..|

    Me gusta

  25. Have you ever considered about including a little bit more than just your articles? I mean, what you say is fundamental and everything. However just imagine if you added some great photos or videos to give your posts more, “pop”! Your content is excellent but with images and clips, this website could definitely be one of the most beneficial in its niche. Amazing blog!|

    Me gusta

  26. Howdy excellent blog! Does running a blog such as this take a large amount of work? I have virtually no knowledge of computer programming however I had been hoping to start my own blog soon. Anyhow, if you have any suggestions or techniques for new blog owners please share. I understand this is off subject but I just needed to ask. Thank you!|

    Me gusta

  27. Yesterday, while I was at work, my cousin stole my iPad and tested to see if it can survive a 25 foot drop, just so she can be a youtube sensation. My apple ipad is now broken and she has 83 views. I know this is entirely off topic but I had to share it with someone!|

    Me gusta

  28. Fantastic goods from you, man. I have understand your stuff previous to and you’re just too excellent. I really like what you have acquired here, really like what you are stating and the way in which you say it. You make it entertaining and you still care for to keep it sensible. I cant wait to read far more from you. This is actually a wonderful website.|

    Me gusta

  29. I do agree with all the concepts you’ve presented for your post. They’re really convincing and will certainly work. Nonetheless, the posts are very quick for starters. May just you please lengthen them a bit from subsequent time? Thanks for the post.|

    Me gusta

  30. Fantastic goods from you, man. I have understand your stuff previous to and you’re just too fantastic. I really like what you’ve acquired here, really like what you are saying and the way in which you say it. You make it enjoyable and you still care for to keep it wise. I can not wait to read much more from you. This is actually a great site.|

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .