LO PUEDO PONER EN MODO CAPTADOR DE PULSOS.
O BIEN EN MODO GENERADOR DE PULSOS.
; Ello me permitirá conocer si lo que falla es el Sensor Hall
; del coche o bien el indicador del cuadro de instrumentos.
; En modo RECEPCIÓN (conmutador LED_VERDE ENCENDIDO) permite ver
;si el sensor proporciona señal. lo que sería indicado en pantalla en Hz y rpm
;En modo GENERACIÓN (conmutador LED_ROJO Encendido) permite generar una
;señal Hall variable para ver si el indicador del cuadro de instrumentos actúa.
;INSTRUCCIONES QUE EMPLEO:
;COUNT portb.0,1000,puls ;contar pulsos en el puerto B.0 y los guarda en la
;variable 'pulsos' durante 1000ms = 1sg
;el periodo podemos variarlo de 1 a 65535
;si la cantidad supera los 254 HZ Mensaje para que bajemos la Hz,
;Si la Frecuencia llega a 2 Hz mensaje para que subamos la HZ
; B0 -> Como entrada lectura de pulsos
; B1 -> como Salida de señal Hall generada por el Pic ( para sustituir
; la señal del generador que vamos a comprobar)
;B2 -> conectada al conmutador de selección para actuar como Generdador Hall
'o como Lector de pulsos Hall
;B4 -> Pulsador que nos permite SUBIR los Hz al actuar como Generador Hall
;B5 -> Pulsador que nos permite BAJAR los Hz al actuar como Generador Hall
;B6 -> Capta los pulsos del RECEPTOR HALL . Debe encontrarse el
;Selector (RB") en (0) modo LECTOR HALL
;La frecuencia máxima está pensada para 254 hz * 30 = 7620 rpm
; la frecuencia mínima está pensada para 2 hz * 30 = 60 rpm
INSTRUCCIONES QUE USO:
CONTADOR DE PULSOS por PORTB.0
al ser por cada segundo corresponde a HZ
COUNT PORTB.0,1000,pulsos (pag 85 3ª Edicion)
GENERADOR DE PULSOS (HZ)
Saca la frecuencia espedificada por un pin del micro
en este caso por PORTB.1
Puede contar desde 0 a 32767 HZ
FREQOUT PORTB.1,2000.50 --> saca 50 ciclos durante
2 segundos (pag 90 3ª edición)
Nota: ver Mis proyectos en.
+ https://www.youtube.com/user/joaquininbp
+ https://issuu.com/joaquinin
nota importante: desde la utilidad indicada más abajo; poniendo la dirección del archivo en issuu.net he indicando cuántas páginas quieres, puedes bajarte cualquier archivo sin tener que registrarte:
Paginas para descargar:
http://utilidades.gatovolador.net/issuu/
Documentos: aquí está el brazo robotico
+ http://www.slideshare.net/joaquinin1/documents
Presentaciones de mecánica-electr vehículos
+ http://www.slideshare.net/joaquinin1/presentations
Frecuencimetro receptor hall esquema y programa pbp 28 pag
1. pas0+pas0
S1
+Bat
+5V
sup0
LED3
GND
+5V
+pas0sup0
LED4
Verde:LectordePulsosHall
C3C4
22pf
Q1
pas11
22pf
sup0
+5V10Kpas1passu1p0
VS
S
VD
D
VE
E
RS
RW
E
D0
D1
D2
D3
D4
D5
+5V
sup0
Nota el potenciómetro no está bien conectado. Se debe conectar a Masa y su cursor móvil
con la entrada IN del 7805
Jumper para anular
al diodo en caso de
baja Tensión de Bat.
FRECUENCIMETRO_RECEPTOR_HALL
>=9 Vcc
+ BAT
X1-1 paspa0s 0
R1
2K2
Dpas20 pas 0 A E pas 0
in 0
C1
IN OUT
GND
IC2
pas 0
C5 C2
Realizada: Enero 2014
DIS1 TUXGR_16X2_R2 ESTOS PINES NO LO CONECTO PERO SÍ LO PONGO
X1-2
-- BAT
pas 0
1N4004 220 uF 7805 470 k 220 uF LCD DISPLAY16x2 LCD 2X16 PARA PONERSELO AL LCD DISPLAY 16X2 ya que
sus pines son MÁS GRANDES para soldar.
El diodo D2 evita
daños si se invierte
la Tensión de Batería
GND
Rojo Verde
Selector RB2:
(1) Generador Hall
(2) Lector Hall
pas 0 2
S2
1 pas 0
3 pas 0 RB2
BUZZER AL60P
Suena al pulsar
S5 (RB4) S4 (RB5)
SG1
; LO UTILIZARÉ PARA COMPROBAR: SENSORESS TIPO HALL
; LO PUEDO PONER EN MODO CAPTADOR DE PULSOS.
O BIEN EN MODO GENERADOR DE PULSOS.
; Ello me permitirá conocer si lo que falla es el Sensor Hall
; del coche o bien el indicador del cuadro de instrumentos.
El potencióhmetro permite que la Tensión del
Generador HALL sea ajustable hasta la tensión
de la Batería.
GND
TL32PO
S5
pas 0 +
F/TMB
- pas 0
; En modo RECEPCIÓN (conmutador LED_VERDE ENCENDIDO) permite ver
;si el sensor proporciona señal. lo que sería indicado en pantalla en Hz y rpm
Algunos HALL se alimentan a 12V y la señal HALL es de 10V Pulsar para subir/Bajar HZ pas 2 3 1 pas 1 ;En modo GENERACIÓN (conmutador LED_ROJO Encendido) permite generar una
otros Sensores HALL se alimentan a 5V y su señal es de 5V.
Una pulsación = 3HZ --> 90 rpm pas 2 4
S4
2 pas 1
RB4 (S5) Pulsador Subir HZ
RB5 (S4) Pulsador Bajar HZ 330
Q3
BC548A
;señal Hall variable para ver si el indicador del cuadro de instrumentos actúa.
;INSTRUCCIONES QUE EMPLEO:
Para ello utilizo el potencióhmetro y el comnutador "S1"
GND pas 2 3 1 pas 1
pas 1 pas 1 pas 1
;COUNT portb.0,1000,puls ;contar pulsos en el puerto B.0 y los guarda en la
(+) alimentación HALL a 12V ó 5XV2-1
(0) Salida HALL a >10V ó 5V X2-2
(+) HALL 12V ó 5V
pas 0
pas 0 (0) Salida Generador Hall
pas 2 pas 3
GND
pas 2 4
pas 1 pas 1
2 pas 1
io 013
IC1
RB7/T1OSI/PGD
GND
VDD 14pwr 0
;variable 'pulsos' durante 1000ms = 1sg
;el periodo podemos variarlo de 1 a 65535
;si la cantidad supera los 254 HZ Mensaje para que bajemos la Hz,
;Si la Frecuencia llega a 2 Hz mensaje para que subamos la HZ
; B0 -> Como entrada lectura de pulsos
; B1 -> como Salida de señal Hall generada por el Pic ( para sustituir
(--) Alimentación HALL (GND)
(0) Entrada Receptor HALL
permite una tensión >= 5V
X2-3
X2-4
pas 0 (-) Generador Hall sup 0
pas 0 (0) Entrada Receptor Hall
RB1
RB1-> Salida Pulsos Hall pas 1 pas 1
RB6
io 012
io 0 11
io 010
io 0 9
io 0 8
RB6/T1OSO/1ICKI/PGC
RB5
RB4/PGM
RB3/CCP1
RB2/TX/CK
; la señal del generador que vamos a comprobar)
;B2 -> conectada al conmutador de selección para actuar como Generdador Hall
'o como Lector de pulsos Hall
;B4 -> Pulsador que nos permite SUBIR los Hz al actuar como Generador Hall
;B5 -> Pulsador que nos permite BAJAR los Hz al actuar como Generador Hall
gracias al zener limitador 5,1V 500mW RB0-> Entrada Pulsos Hall
Cuando el PIC genera los pulsos HALL
Llegan al (0) del conector HALL
y a su vez al PIN RB0 para el contaje
GND
RB5
RB4
RB3
RB2
RB1
MCLR
RA4
RA3
RA2
RA1
RA0
io 0 7
io 0 6
io 016
io 015
in 0 4
io 0 3
io 0 2
io 0 1
io 018
io 017
RB1/RX/DT
RB0/INT
RA7/ASC1/CLKIN
RA6/OSC2/CLKOUT
RA5/MCLR/VPP
RA4/TOCKI/CMP2
RA3/AN3/CMP1
RA2/AN2/VREF
RA1/AN1
RA0/AN0
PIC16F628P
VSS 5 pwr 0
;B6 -> Capta los pulsos del RECEPTOR HALL . Debe encontrarse el
;Selector (RB") en (0) modo LECTOR HALL
;La frecuencia máxima está pensada para 254 hz * 30 = 7620 rpm
; la frecuencia mínima está pensada para 2 hz * 30 = 60 rpm
INSTRUCCIONES QUE USO:
CONTADOR DE PULSOS por PORTB.0
al ser por cada segundo corresponde a HZ
COUNT PORTB.0,1000,pulsos (pag 85 3ª Edicion)
pas 1 pas 1
150
RB6 capta los pulsos del receptor Hall
para representarlo en el display
Debe encontrarse el SELECTOR RB2
en (0) modo LECTOR HALL
la tensión HALL puede ser >= 5V.
al disponer del limitador Zener 5.1V 500 mW
RB6
RESET
S3
pas 2 3 1 pas 1 pas 1 pas M1 CLR
GND GENERADOR DE PULSOS (HZ)
Saca la frecuencia espedificada por un pin del micro
en este caso por PORTB.1
Puede contar desde 0 a 32767 HZ
FREQOUT PORTB.1,2000.50 --> saca 50 ciclos durante
2 segundos (pag 90 3ª edición)
pas 2 4
GND
2 pas 1
100
GND
NOTA: Aunque en el esquema esté puesto el modelo BC 548A (NPN) Da 100mA pot 500mW
los transistores son NPN BC 337-25 (Dan 500 mA y Pot >800 mW)
Lo hago así por tener su PACKAGE en línea en lugar de forma de triangulo
la conexión es la misma Visto de frente: C-B-E
Autor: Joaquín Berrocal Piris
pas01
pas02
pas03
pas04
pas05
pas06
pas07
pas08
pas09
pa1s00
pa1s01
pa1s02
pa1s03
pa1s04
pa1s05
pa1s06
JP
2
pas01
pas0S
+12V
sup0
sup0in0
1pas0Ajustable
hasta+12V
+12V
passu0p0
pas02
3pas0
pas0pas1pas1
5704pas0pas1pas1
pas05
330
pas1
pas0
6pas0pas1+5V
passu0p0S1pas0
Fijoa+5V
+5V
passu1p0
D1
suppa0s0pas0
ZPD
220
Q4BC54pas0paspa0s1
LED5
330
pas1paspa1s1
RB0
sup0
sup0
sup0
+5V
passu1p0
pas0pas0
220
sup0pas1
LED12V
pas0pas0
LED2
Rojo:2GveneradordePulsosHall
2pas1
4MHZ
+5V
pas1sup0
10K
10K
pas1
pas1pas1
GND
+5V
GND
RA4
GND
RB3
pwr0
1
pwr0
2
in0
3
in0
4
in0
5
in0
6
in0
7
in0
8
in0
9
in
01
0
GND
VCC
CON
TR
RS
R/W
ED0
D1
D2
D3
D4
D5
D6
D7
NC
NC
RB4
RA0
RA1
RA2
RA3
+5V
GND
+5V10Kpas1pas1sup0
obligatorioponerapull-upRA4/tock
parapoderverenlaLCD
JP1
+5V
sup0
suppa0s3pas2
sup0
7. C:ELECTRONICAEN PBPProyecto 5.5.4.1 Frecuencimetro RECEPTOR HALLFRECUENCIMETRO_GE
Page 1 of 6 12/04/2014 13:04
'***************************************************
'* Nombre : FRECUENCIMENTRO_GENERADOR_HALL *
'* Autor : Joaquín Berrocal Piris *
'* Copyright : Copyright (2013) *
'* Fecha : Diciembre 2013 *
'* Versión : 1.0 *
'***************************************************
; Proyecto con pic 16f628A a 4 MHZ
; LO UTILIZARÉ PARA COMPROBAR: GENERADORES TIPO HALL
; LO PUEDO PONER EN MODO CAPTADOR DE PULSOS. O BIEN EN MODO GENERADOR DE
; PULSOS. Ello me permitirá conocer si lo que falla es el Generador Hall
; del coche o bien el indicador del cuadro de instrumentos.
; En modo RECEPCIÓN (conmutador LED_VERDE ENCENDIDO) permite ver si el sensor
; proporciona señal. lo que sería indicado en pantalla en Hz y rpm
;En modo GENERACIÓN (conmutador LED_ROJO Encendido) permite generar una
;señal Hall variable para ver si el indicador del cuadro de instrumentos actúa.
;instrucciones que empleo:
;COUNT portb.0,1000,puls ;contar pulsos en el puerto B.0 y los guarda en la
;variable 'pulsos' durante 1000ms = 1sg
;el periodo podemos variarlo de 1 a 65535
;si la cantidad supera los 254 HZ Mensaje para que bajemos la Hz,
;Si la Frecuencia llega a 2 Hz mensaje para que subamos la HZ
; B0 -> Como entrada lectura de pulsos generados por el pic por RB1 en LCD
; B1 -> como Salida de señal Hall generada por el Pic ( para sustituir
; la señal del generador que vamos a comprobar)
;B2 -> conectada al conmutador de selección para actuar como Generdador Hall
'por RB1 o como Lector de pulsos Hall por RB6
;B4 -> Pulsador que nos permite SUBIR los Hz al actuar como Generador Hall
;B5 -> Pulsador que nos permite BAJAR los Hz al actuar como Generador Hall
;B6 -> Capta los pulsos del RECEPTOR HALL . Debe encontrarse el
;Selector (RB2) en (1) modo LECTOR HALL
;B7 -> Ppara la activación del buzzer al pulsar para subir o bajar la Hz
;La frecuencia máxima está pensada para 250 hz * 30 = 7500 rpm
; la frecuencia mínima está pensada para 1 hz * 30 = 30 rpm
define Osc 4 ' Define el Oscilador para un Cristal
CMCON = 7 ;convierte en digitales el puerto A. NOTA EL A5 no puede
;actuar como salida es siempre entrada ver pag 43 apuntes basic v3
GENER_LECTOR var PORTB.2 ; Patilla para seleccionar que actúe como:
;Generador, o bien, receptor de pulsos
BOTSUBIR var PORTB.4 ;Nombre para el PIN B.4 Al pulsar aumentan los HZ
BOTBAJAR var PORTB.5 ;Nombre para el PIN B.5 Al pulsar disminuyen los HZ
revo var word ;para el contaje de rpm
revo = 30 ;valor inicial
revo_Lectura var word ;para el contaje de rpm al actuar como lector
pulsos var word;variable pulsos con capacidad de 0 a 65535
base var word ;variable BASE tamaño máx 62532
base = 50000 ; VALOR inicial que corresponde a 1 HZ --> 30 rpm si
;la señal fuese dada por un distribuidor
;(SEÑAL HALL) de un motor de 4 cilindros
valor_base var word ; Valor inicial para calulos de subir /bajar Hz
En PicBasicPro
8. C:ELECTRONICAEN PBPProyecto 5.5.4.1 Frecuencimetro RECEPTOR HALLFRECUENCIMETRO_GE
Page 2 of 6 12/04/2014 13:04
valor_base = 50000 ; aquí corresponde con 500 ms 10us x 50000= 500 ms 1Hz
espera var word
espera = 500 ; Valor inicial para conseguir 1 hz 500 ms + 500 ms
rpm
divisor var byte ; porque cuenta hasta 255 aunque yo lo tengo limitado
divisor = 1 ;para incrementar hasta 250 que corresponden con 7500
; cada incremento 1Hz que son 30 rpm
trisb=%01110101 ;PORTB.0 como entrada PARA EL CONTAJE DE PULSOS que
;proporciona RB1
;PORTB.1 como Salida;Para generar los pulsos
;pulsout portb.1,base ( cda pulso en un con un oscilador
; de 4 Mhz es de 10 us . si fuera de 20 Mhz sería de 2 us
;PORTB.2 ->como entrada;NIVEL BAJO GENERADOR de pulsos Rojo
;con NIVEL ALTO LECTOR DE PULSOS con COUNT Verde
;PORTB.3 como Salida;Para (E) Enable del LCD
;PORTB.4 --> como entrada; para SUBIR la frecuencia
;PORTB.5 --> como entrada; para BAJAR la frecuencia
;PORTB.6 --> como entrada; para LECTURA HALL
;PORTB.7 como Salida;Para activar buzzer al pulsar RB4-5
PORTB=0 ; Inicializa el puerto B con todas sus puertas que estén
;configuradas como salidas a nivel 0
;++++PULL-UP DEL PUERTO B PORTB+++++++
;NOTA: si lo pongo antes de PORTB = 0 NO ACTÚA pull-up y no sé por qué
;probado en el PROTEUS
OPTION_REG.7=0 ;para poner pull-up el puerto B
;+++++++++++++++++++++++++++++++++++
pause 200 ; algunas LCD precisan de este tiempo
lcdout $FE, 1 ;limpiar pantalla LCD
PROG:
; Primero verifica como se encuentra el conmutador conetado a PORTB.2
;y que hemos llamado "GENER_LECTOR" Si está a nivel bajo,(led rojo activo)
; se encargará de producir una frecuencia de 1 Hz que corresponden a
; 1 HZ * 30 = 30 rpm si la señal la diera un hall del distribuidor
; de encendido de un motor de 4 cilindros y 4 tiempos.
; Esta frecuencia puede aumentarse o disminuirse de Hz en Hz lo que supone
; aumentar o disminuir las rpm en 30 rpm.
; Para ello utilizamos los pulsadores conectados a RB4 (para aumentar)
; y RB5 (para disminuir)
; Si el conmutador conectado a PORTB.2 está a nivel ALTO (led verde activo)
; lo que hará será leer los pulsos que le entran por RB1.
; esa entrada esta limitada por un diodo zener de 5V1 para que acepte
; entrada de señal hall mayor o igual a 5 Voltios y no afecta al PIC
; Lo utilizará para ver si el sensor HALL que se quiera probar funciona
; o no. Si dá señal Hall se verá en pantalla y su conversión a rpm
' +SI (RB2) ESTÁ A "NIVEL 1" (led VERDE)HACE LECTURA DE PULSOS POR EL PIN RB6
' +SI (RB2) ESTÁ A "NIVEL 0" (led ROJO)ACTÚA COMO GENERADOR HALL POR RB1
'que a su vez está conectado con RB0 para lectura en LCD.
if GENER_LECTOR = 0 then ;GENERAR_FRECUENCIA ; Genera pulsos por RB1
; y si es = 1 hacer Lectura de los pulsos
lcdout $FE,$80," GENERANDO: " ;cursor en la 1era línea
9. C:ELECTRONICAEN PBPProyecto 5.5.4.1 Frecuencimetro RECEPTOR HALLFRECUENCIMETRO_GE
Page 3 of 6 12/04/2014 13:04
'/* LCDOUT $FE,$C0, DEC frec," Hz ",DEC revo," rpm"
'lo hago mejor así para que no haya problemas de verse mal el display al
'cambiar mucho de frecuencia o rpm valores en el display como "rpmmm" */
lcdout $FE,$C0," " ; para limpiar los tres posibles dígitos de Frecuencia
lcdout $FE,$C0, dec divisor;permite hasta 3 dígitos en Frecuencia
lcdout $FE,$C4,"Hz";posición 5 para escribir: Hz
lcdout $FE,$C7," " ; para limpiar los 5 posibles dígitos de rpm
lcdout $FE,$C7, dec revo ; posición 8 para poner las rpm permite hasta
lcdout $FE,$CD,"rpm" ; 5 digitos antes de poner "rpm"
goto GENERAR_FRECUENCIA ; Genera pulsos por RB1
; y si es = 1 hacer Lectura de los pulsos
endif ;Lo pongo aquí para evitar tiempos innecesarios
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'+++Si GENER_LECTOR = 1 (RB2) HACER EL CONTAJE DE PULSOS ++++
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
count portb.6,1000,pulsos ;contar pulsos en el puerto B.6
;al contarlos por segundo = a frecuencia
revo_Lectura = pulsos * 30 ;multiplico por 30 para convertir en rpm
lcdout $FE,$80,"LECTURA: RPM: " ;cursor en la 1era línea
;en el comienzo 2da línea casilla 6 sacar
;el valor decimal de la variable pulsos
'/* LCDOUT $FE,$C0, DEC pulsos," Hz ",DEC revo_Lectura," rpm"
'lo hago mejor así para que no haya problemas de verse mal el display al
'cambiar mucho de frecuencia o rpm valores en el display como "rpmmm" */
lcdout $FE,$C0," " ; para limpiar los tres posibles dígitos de los pulsos
lcdout $FE,$C0, dec pulsos ;permite hasta 3 dígitos en Frecuencia
lcdout $FE,$C4,"Hz" ;posición 5 para escribir: Hz
lcdout $FE,$C7," " ; para limpiar los 5 posibles dígitos de rpm
lcdout $FE,$C7, dec revo_Lectura; posición 8 para poner las rpm permite
hasta
lcdout $FE,$CD,"rpm" ; 5 digitos antes de poner "rpm"
goto RECEPTOR_HALL 'para suprimir algunos lcdout ...''''' GOTO PROG
'++++SI (RB2) ESTÁ A NIVEL BAJO; ACTUAR COMO RECEPTOR HALl POR (RB6) ++++++++
RECEPTOR_HALL:
'+++Si GENER_LECTOR (RB2)= 1 HACER EL CONTAJE DE PULSOS POR RB6 ++++
'+++Si GENER_LECTOR (RB2)= 0 HACER GENERAR_FRECUENCIA POR RB1 ++++
if GENER_LECTOR = 0 then PROG ; Si RB2 esta a nivel 0 ir a PROG para
;modificar la LCD y hacer GENERAR_FRECUENCIA
count portb.6,1000,pulsos ;contar pulsos en el puerto B.6
;al contarlos por segundo = a frecuencia
revo_Lectura = pulsos * 30 ;multiplico por 30 para convertir en rpm
'lo hago mejor así para que no haya problemas de verse mal el display al
'cambiar mucho de frecuencia o rpm valores en el display como "rpmmm" */
10. C:ELECTRONICAEN PBPProyecto 5.5.4.1 Frecuencimetro RECEPTOR HALLFRECUENCIMETRO_GE
Page 4 of 6 12/04/2014 13:04
lcdout $FE,$C0," " ; para limpiar los tres posibles dígitos de los pulsos
lcdout $FE,$C0, dec pulsos ;permite hasta 3 dígitos en Frecuencia
lcdout $FE,$C7," " ; para limpiar los 5 posibles dígitos de rpm
lcdout $FE,$C7, dec revo_Lectura; posición 8 para poner las rpm permite
hasta
goto RECEPTOR_HALL ;Seguir chequeando si actúa como LECTOR o GENERADOR HALL
'++++SI ESTÁ A NIVEL ALTO; GENERAR FRECUENCIA ++++++++
'VARIABLE POR LOS PULSADORES RB4 (aumentar) y RB5 (disminuir)
;Se parte de un valor inicial de 1Hz que corresponde con 30 rpm
;si la señal se produjese de un distribuidor de un motor de 4 cilindros
GENERAR_FRECUENCIA: ; genera pulsos por RB1
; (pulsout Genera un pulso en un pin con un periodo especificado.
; la resolución de Pulsout depende de la frec. del oscilador. Si
; se usa uno de 4Mhz, el periodo del pulso generado estará en incremento de
; 10 us. Si se uso uno de 20 Mhz el periodo será de 2 us.
; si quiero generar 1 ms pulsout portb.1,100 --> 10us x100=1000 us = 1 ms
; genera una onda cuadrada de periodo 1 ms .
pulsout portb.1,base ;base = 50000 valor inicial equivale a 500ms
;después con pause igual la F = 1Hz
pause espera ; se inicia a 500 ms para poder partir de una F= 1Hz
; alto 500ms + bajo 500 ms = 1Hz
'++++HAY QUE DEJAR PULSADO EL BOTON APROX 1 SEGUNDOS++++
if BOTSUBIR = 0 then goto SUBIR_HZ ;Si se pulsa el boton B.4 ir a SUBIR_HZ
if BOTBAJAR = 0 then goto BAJAR_HZ ;Si se pulsa el boton B.5 ir a BAJAR_HZ
if GENER_LECTOR = 1 then ;LEER_HALL por RB6 y mostrarlo por LCD
; y si es = 0 Sigue generando pulsos
goto PROG ;RECPTOR_HALL ; Ir a leer HALL por RB6
endif
;Seguir chequeando si actúa como LECTOR o GENERADOR HALL
goto GENERAR_FRECUENCIA
;--------------------------------------------------------
SUBIR_HZ:
;pause 30 ; para estabilizar el rebote de contactos 30 msg
call ANTIREBOTE ;suena el buzzer (100ms) y espera se suelte el pulsador
if divisor >= 250 then AVISO_BAJAR ; Si se supera ir a AVISO_BAJAR
divisor = divisor +1;INCREMENTA desde 1 hasta 250 de 30 a 7500 rpm
base = valor_base/divisor ;para incrementando la Hz 1hz = 1000 ms 2hz->
T=500 ms
espera= base/100 ; para que salga en ms. eje 50000/100=500 ms
revo = divisor * 30 ;multiplico por 30 para convertir en rpm
; 1 Hz -> 1 x 30 = 30 rpm 2Hz -> 2x 30 = 60 rpm 50Hz -> 50 x 30 = 1500 rpm
goto PROG ;Para reflejar en lcd y chequear si debe actuar como lector
BAJAR_HZ:
;pause 30 ; para estabilizar el rebote de contactos 30 msg
call ANTIREBOTE ;suena el buzzer (100ms) y espera se suelte el pulsador
11. C:ELECTRONICAEN PBPProyecto 5.5.4.1 Frecuencimetro RECEPTOR HALLFRECUENCIMETRO_GE
Page 5 of 6 12/04/2014 13:04
if divisor <= 1 then AVISO_SUBIR ; Si se supera ir a AVISO
divisor = divisor - 1 'divisor - 1 ;DECREMENTA desde 1 hasta 250 de 30 a
7500 rpm
base = valor_base/divisor 'valor_espera/divisor 'ej 500/2 = 250 ms
corresponde a 2hz-> T=500 ms
espera = base/100
revo = divisor * 30 ;multiplico por 30 para convertir en rpm
; 1 Hz -> 1 x 30 = 30 rpm 2Hz -> 2x 30 = 60 rpm 50Hz -> 50 x 30 = 1500 rpm
goto PROG ;Para reflejar en lcd y chequear si debe actuar como lector
AVISO_BAJAR: ;****se podría poner intermitente el mensaje++*******
;pause 30 ; para estabilizar el rebote de contactos 30 msg
divisor = 250 ; Para mantenerlo en el mayor valor medible que es 250 Hz
revo = divisor * 30 ;multiplico por 30 para convertir en rpm
lcdout $FE,$80,"Alcanzado maximo"'"Pulsar Bajar_HZ " ;cursor en la 1era
línea
''''' if botBAJAR <> 0 then AVISO_BAJAR ; Cuando se pulse salir a PROG
;Seguir chequeando si actúa como LECTOR o GENERADOR HALL
lcdout $FE,$C0," " ; para limpiar los tres posibles dígitos de Frecuencia
lcdout $FE,$C0, "0"''DEC divisor ;permite hasta 3 dígitos en Frecuencia
lcdout $FE,$C4,"Hz";posición 5 para escribir: Hz
lcdout $FE,$C7," " ; para limpiar los 5 posibles dígitos de rpm
lcdout $FE,$C7, "0" 'DEC revo ; posición 8 para poner las rpm permite
hasta
lcdout $FE,$CD,"rpm" ; 5 digitos antes de poner "rpm"
pause 1000 'tiempo para leer el mensaje
goto PROG
AVISO_SUBIR:
;pause 30 ; para estabilizar el rebote de contactos 30 msg
divisor = 1 ; Para mantenerlo en el menor valor medible que es 1 Hz
revo = divisor * 30 ;multiplico por 30 para convertir en rpm
lcdout $FE,$80,"Alcanzado minimo"'"Pulsar Subir_HZ " ;cursor en la 1era
línea
'''''if botsubir <> 0 then AVISO_SUBIR ; Cuando se pulse salir a PROG
;Seguir chequeando si actúa como LECTOR o GENERADOR HALL
lcdout $FE,$C0," " ; para limpiar los tres posibles dígitos de Frecuencia
lcdout $FE,$C0, "0"''DEC divisor ;permite hasta 3 dígitos en Frecuencia
lcdout $FE,$C4,"Hz";posición 5 para escribir: Hz
lcdout $FE,$C7," " ; para limpiar los 5 posibles dígitos de rpm
lcdout $FE,$C7, "0" 'DEC revo ; posición 8 para poner las rpm permite
hasta
lcdout $FE,$CD,"rpm" ; 5 digitos antes de poner "rpm"
pause 1000 'tiempo para leer el mensaje
12. C:ELECTRONICAEN PBPProyecto 5.5.4.1 Frecuencimetro RECEPTOR HALLFRECUENCIMETRO_GE
Page 6 of 6 12/04/2014 13:04
goto PROG
' +++RUTINA PARA EVITAR REBOTES DE CONTACTO Y PRODUCIR SONIDO AL PULSAR +++++
'++++ RB4 (Subir Hz)- RB5 (Bajar Hz) ++++++++++
ANTIREBOTE:
high portb.7
pause 100
low portb.7
ESPERA_SUELTE:
if BOTSUBIR = 0 then ESPERA_SUELTE ; Es el conectado a RB4
if BOTBAJAR = 0 then ESPERA_SUELTE ; Es el conectado a RB5
return
end ;FIN DEL PROGRAMA
19. Frecuencímetro-Generador HALL realizado feb 2014 por Joaquín Berrocal Piris
CONSTRUCCIÓN Y MONTAJE DE LA PLACA
Por Joaquín Berrocal Piris (Febrero 2014)
Con el diseño de la placa realizado en el EAGLE. Y desde este programa usando la
“pcb-gcode-setup.ulp” convierto la placa board TOP y la BOTTOM en código G para
ser mecanizada en una máquina de control numérico (CNC)
28. Frecuencímetro-Generador HALL realizado feb 2014 por Joaquín Berrocal Piris
SENSOR HALL UTILIZADO POR ALGUNOS VEHÍCULOS EN LA CAJA DE CAMBIOS COMO CAPTADOR DE VELOCIDAD
“VELOCÍMETRO” LO UTILIZO PARA HACER PRUEBAS.
EL SENSOR HALL LLEVA DOS PINZAS PARA SU ALIMENTACIÓN Y EL CABLE VERDE ES LA SALIDA HALL.