frecuencimetro receptor hall esquema y programa pbp 28 pag
TRANSCRIPT
pas
0 +
pas
0
S1
+ B
at
+5
V
sup
0
LED
3 G
ND
+5
V
+ p
as 0
su
p 0
LED
4 Verd
e: L
ecto
r de
Pul
sos
Hal
l
C3
C4
22pf
Q1
pas
1 1
22pf
sup
0
+5V
10
K
pas
1 pa
ssu1p
0
VS
S
VD
D
VE
E
RS
R
W
E
D0
D1
D2
D3
D4
D5
+5V
su
p 0
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 DISPLAY 16x2 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
pas
01 pa
s 02
pas
03 pa
s 04
pas
05 pa
s 06
pas
07 pa
s 08
pas
09 pa1s 00
pa
1s 01
pa1s 02
pa1s 03
pa1s 04
pa1s 05
pa1s 06
JP 2 pas
01
pas
0 S
+12V
su
p 0
sup
0
in
0
1 pa
s 0
Aju
stab
le
hast
a +1
2V
+12V
pa
ssu0p
0
pas
0 2
3 pa
s 0
pas
0 pa
s 1
pas
1 57
0 4
pas
0 p
as 1
pa
s 1
pas
0 5
330
pas
1
pas
0
6 pa
s 0
pas
1
+5V
pa
ssu0p
0
S1
pas
0
Fijo
a +
5V
+5V
pa
ssu1p
0
D1
suppa
0s 0
pa
s 0
ZPD
220
Q4
BC
54
pas
0 pa
spa0s
1
LED
5 33
0 pa
s 1
paspa
1s 1
RB
0
sup
0
sup
0
sup
0
+5V
pa
ssu1p
0
pas
0 pa
s 0
220
sup
0 pa
s 1
LED
1 2V
pa
s 0
pas
0
LED
2 R
ojo:
2G ven
erad
or d
e P
ulso
s H
all
2 pa
s 1
4MH
Z
+5V
pa
s 1
sup
0
10K
10
K
pas
1
pas
1 pa
s 1
GN
D
+5V
G
ND
R
A4
GN
D
RB
3
pwr 0
1 pwr 0
2 in 0
3 in 0
4 in 0
5 in 0
6 in 0
7 in 0
8 in 0
9 in
0 1 0
GN
D
VCC
C
ON
TR
RS
R/W
E
D0
D1
D2
D3
D4
D5
D6
D7
NC
N
C
RB
4
RA
0 R
A1
RA
2 R
A3
+5V
G
ND
+5V
10
K
pas
1 pa
s 1
sup
0
oblig
ator
io p
oner
a p
ull-u
p R
A4/
tock
pa
ra p
oder
ver
en
la L
CD
JP1
+5V
su
p 0
suppa
0s 3
pa
s 2
sup
0
100 FRECUENCIMETRO_RECEPTOR_HALL (100 X 75 mm)
1
4M
C1
C2
R9 X2 220 X1
LED5
DIS1 JP1
4 3 2 1
2 1
TUXGR_16X2_R2
JP2
I - O IC2 7805
IC1
C4
C223pf
22pf
330 R12
Q4 R1
BC548A Q3
2K2
2v
LED2 2V
LED1
LED3 LED4
BC548A
2 1
75
10K R11
4
3
2 S4
D1
SG1
ZPD
15
0 R8
F/TM
B PI
C16
F628
P
Q1
4 3
2 1
S3
R14
10
K
220
uF
C5
330 R7
TL32
PO
470
k 22
0 R5
100
R4 57
0 S2
22
0 uF
10
K R2
D2
1N40
04
S1
4 3
R10
10
K 33
0 R6
2 1
S5
100 FRECUENCIMETRO_RECEPTOR_HALL (100 X 75 mm)
10K R11
4M
R9 X2 220 X1
LED5
4 3 2 1 2 1
I - O IC2
DIS1 JP1
-- 0 + -- +TUXGR_16X2_R2
JP2
7805
IC1
C4
C223pf
22pf
2v 2V
330 R12
Q4 R1
BC548A Q3
2K2 LED2 LED1 LED3 LED4
BC548A 2
1
75
4 3
2 1
S4
D1
SG1
ZPD
15
0 R8
F/TM
B PI
C16
F628
P
Q1
4 3
2 1
S3
C1
R14
10
K
220
uF
C5
330 R7
TL32
PO
470
k 22
0 R5
C2
100
R4 57
0 S2
22
0 uF
10
K R2
D2
1N40
04
S1
4 3
R10
10
K 33
0 R6
2 1
S5
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro RECEPTOR HALL\FRECUENCIMETRO_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
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro RECEPTOR HALL\FRECUENCIMETRO_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
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro RECEPTOR HALL\FRECUENCIMETRO_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" */
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro RECEPTOR HALL\FRECUENCIMETRO_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
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro RECEPTOR HALL\FRECUENCIMETRO_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
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro RECEPTOR HALL\FRECUENCIMETRO_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
1
:020000040000FA :10000000B2012129B4008417800484133230A60081 :100010000030A700FB20A00AA50AA201A301000846 :100020003405A600640000083405A700260627054D :1000300034060319A20A0319A30A2708A600A40379 :100040000319A5030319A00B122822081C29040870 :10005000A7008611051205128316861105120512D6 :10006000F030850583122708B21854283A30A100D1 :10007000FC30CB203330A60069201030A10068305E :10008000CB2069206430CA2069202230A600692074 :10009000283053200C305320013053200630532099 :1000A000B214270854283214A600321C6228051204 :1000B000033C031C672867200730A100D030CB2009 :1000C000031408003214FE3C03191C290516A60E61 :1000D000321C32108615F030850526080F3985044C :1000E0008611A60E321869283230CA20031408007F :1000F000B400B9202008210403191C2911218413FC :1001000034088006640084288528A00A0319A10FFA :10011000822880061C29B31329080319B317053058 :10012000A8002730A3001030A1200330A300E8303E :10013000A120A3016430A120A3010A30A12024083A :10014000A828A2002508A1002408A000DF2020087C :10015000A000A8030319B31329080319B228280221 :10016000031808002008031DB313B31B0800303E1A :100170001729FF3A841780051C29A301A200FF302C :10018000A207031CA307031C1C290330A100DF30B6 :10019000CB20BF28A101E83EA000A109FC30031C30 :1001A000D428A0070318D128A0076400A10FD128E4 :1001B0002018DA28A01CDE280000DE280800A5018F :1001C000A4011030A600210DA40DA50D2208A40243 :1001D0002308031C230FA5020318F5282208A407EF :1001E00023080318230FA5070310A00DA10DA60BCC :1001F000E32820081C291030A800A101A001A70CA9 :10020000A60C031C09292208A00723080318230FA2 :10021000A107A10CA00CA50CA40CA80BFF28240876 :100220001C29A009A109A00A0319A10A0800840039 :1002300031088A003008820083130313831264009C :10024000080007309F001E30BE00BF015030B800CC :10025000C330B9005030C200C330C300F430BA001C :100260000130BB000130C400831675308600831254 :10027000860183168113C8308312BD20FE302820EA :100280000130282064000619AD29FE302820803076 :1002900028202030282020302820203028204730D7 :1002A0002820453028204E30282045302820523044 :1002B0002820413028204E302820443028204F303C :1002C00028203A30282020302820203028202030B4 :1002D0002820FE302820C030282020302820203040 :1002E000282020302820FE302820C0302820A901D6 :1002F0004408A400A5012730B000B1018B20FE30D6 :100300002820C4302820483028207A302820FE3089 :100310002820C730282020302820203028202030D6 :1003200028202030282020302820FE302820C730E8 :100330002820A9013E08A4003F08A5002730B000EE :10034000B1018B20FE302820CD30282072302820AB
Archivo Hexadecimal que utilizo
2
:10035000703028206D302820782AE830A200033041 :10036000A3000630840040300220BC002308BD00FA :100370003C08A6003D08A7001E30A200A301FB20F8 :10038000C0002508C100FE302820803028204C30D5 :10039000282045302820433028205430282055304C :1003A000282052302820413028203A302820203080 :1003B000282020302820203028205230282050307B :1003C00028204D3028203A30282020302820FE30A8 :1003D0002820C0302820203028202030282020301D :1003E0002820FE302820C0302820A9013C08A40085 :1003F0003D08A5002730B000B1018B20FE30282039 :10040000C4302820483028207A302820FE30282088 :10041000C7302820203028202030282020302820D5 :100420002030282020302820FE302820C7302820E7 :10043000A9014008A4004108A5002730B000B1017F :100440008B20FE302820CD302820723028207030BC :1004500028206D3028202C2A6400061D4229E8300F :10046000A2000330A3000630840040300220BC000C :100470002308BD003C08A6003D08A7001E30A200CE :10048000A301FB20C0002508C100FE302820C03099 :100490002820203028202030282020302820FE301E :1004A0002820C0302820A9013C08A4003D08A50050 :1004B0002730B000B1018B20FE302820C730282023 :1004C00020302820203028202030282020302820CC :1004D00020302820FE302820C7302820A9014008DD :1004E000A4004108A5002730B000B1018B202C2AC0 :1004F0003808A0003908A1000630840002307820B6 :100500003B08A3003A08BE206400061A882A912AF4 :100510006400861A8C2AB92A6400061D902A422992 :10052000782AB7236400FA3044020318E12AC40A87 :100530004208A0004308A1004408A200A301DF2054 :10054000B8002108B9003808A0003908A1006430BB :10055000A200A301DF20BA002108BB004408A600C6 :10056000A7011E30A200A301FB20BE002508BF008A :100570004229B723640002304402031C4C2BC403FD :100580004208A0004308A1004408A200A301DF2004 :10059000B8002108B9003808A0003908A10064306B :1005A000A200A301DF20BA002108BB004408A60076 :1005B000A7011E30A200A301FB20BE002508BF003A :1005C0004229FA30C4004408A600A7011E30A20048 :1005D000A301FB20BE002508BF00FE30282080308C :1005E0002820413028206C302820633028206130BA :1005F00028206E3028207A3028206130282064306E :1006000028206F302820203028206D3028206130AD :10061000282078302820693028206D3028206F303D :100620002820FE302820C0302820203028202030EC :10063000282020302820FE302820C03028203030CC :100640002820FE302820C4302820483028207A3046 :100650002820FE302820C7302820203028202030B5 :100660002820203028202030282020302820FE304C :100670002820C730282030302820FE302820CD30D8 :10068000282072302820703028206D302820033038 :10069000A300E830BE2042290130C4004408A6006F :1006A000A7011E30A200A301FB20BE002508BF0049
3
:1006B000FE30282080302820413028206C3028202F :1006C00063302820613028206E3028207A3028209E :1006D00061302820643028206F30282020302820E6 :1006E0006D302820693028206E302820693028207D :1006F0006D3028206F302820FE302820C030282080 :10070000203028202030282020302820FE302820AB :10071000C030282030302820FE302820C430282047 :10072000483028207A302820FE302820C730282062 :100730002030282020302820203028202030282059 :1007400020302820FE302820C730282030302820B4 :10075000FE302820CD30282072302820703028200C :100760006D3028200330A300E830BE2042298617D0 :100770008316861364308312BD2086138316861376 :1007800083126400061EC12B6400861EC12B080064 :040790006300C82B0F :02400E006D3F04 :00000001FF
1
:020000040000FA :10000000B2012129B4008417800484133230A60081 :100010000030A700FB20A00AA50AA201A301000846 :100020003405A600640000083405A700260627054D :1000300034060319A20A0319A30A2708A600A40379 :100040000319A5030319A00B122822081C29040870 :10005000A7008611051205128316861105120512D6 :10006000F030850583122708B21854283A30A100D1 :10007000FC30CB203330A60069201030A10068305E :10008000CB2069206430CA2069202230A600692074 :10009000283053200C305320013053200630532099 :1000A000B214270854283214A600321C6228051204 :1000B000033C031C672867200730A100D030CB2009 :1000C000031408003214FE3C03191C290516A60E61 :1000D000321C32108615F030850526080F3985044C :1000E0008611A60E321869283230CA20031408007F :1000F000B400B9202008210403191C2911218413FC :1001000034088006640084288528A00A0319A10FFA :10011000822880061C29B31329080319B317053058 :10012000A8002730A3001030A1200330A300E8303E :10013000A120A3016430A120A3010A30A12024083A :10014000A828A2002508A1002408A000DF2020087C :10015000A000A8030319B31329080319B228280221 :10016000031808002008031DB313B31B0800303E1A :100170001729FF3A841780051C29A301A200FF302C :10018000A207031CA307031C1C290330A100DF30B6 :10019000CB20BF28A101E83EA000A109FC30031C30 :1001A000D428A0070318D128A0076400A10FD128E4 :1001B0002018DA28A01CDE280000DE280800A5018F :1001C000A4011030A600210DA40DA50D2208A40243 :1001D0002308031C230FA5020318F5282208A407EF :1001E00023080318230FA5070310A00DA10DA60BCC :1001F000E32820081C291030A800A101A001A70CA9 :10020000A60C031C09292208A00723080318230FA2 :10021000A107A10CA00CA50CA40CA80BFF28240876 :100220001C29A009A109A00A0319A10A0800840039 :1002300031088A003008820083130313831264009C :10024000080007309F001E30BE00BF015030B800CC :10025000C330B9005030C200C330C300F430BA001C :100260000130BB000130C400831675308600831254 :10027000860183168113C8308312BD20FE302820EA :100280000130282064000619AD29FE302820803076 :1002900028202030282020302820203028204730D7 :1002A0002820453028204E30282045302820523044 :1002B0002820413028204E302820443028204F303C :1002C00028203A30282020302820203028202030B4 :1002D0002820FE302820C030282020302820203040 :1002E000282020302820FE302820C0302820A901D6 :1002F0004408A400A5012730B000B1018B20FE30D6 :100300002820C4302820483028207A302820FE3089 :100310002820C730282020302820203028202030D6 :1003200028202030282020302820FE302820C730E8 :100330002820A9013E08A4003F08A5002730B000EE :10034000B1018B20FE302820CD30282072302820AB
Archivo Hexadecimal con resistencias PULL-UP (no lo utilizo pero también es válido)
2
:10035000703028206D302820782AE830A200033041 :10036000A3000630840040300220BC002308BD00FA :100370003C08A6003D08A7001E30A200A301FB20F8 :10038000C0002508C100FE302820803028204C30D5 :10039000282045302820433028205430282055304C :1003A000282052302820413028203A302820203080 :1003B000282020302820203028205230282050307B :1003C00028204D3028203A30282020302820FE30A8 :1003D0002820C0302820203028202030282020301D :1003E0002820FE302820C0302820A9013C08A40085 :1003F0003D08A5002730B000B1018B20FE30282039 :10040000C4302820483028207A302820FE30282088 :10041000C7302820203028202030282020302820D5 :100420002030282020302820FE302820C7302820E7 :10043000A9014008A4004108A5002730B000B1017F :100440008B20FE302820CD302820723028207030BC :1004500028206D3028202C2A6400061D4229E8300F :10046000A2000330A3000630840040300220BC000C :100470002308BD003C08A6003D08A7001E30A200CE :10048000A301FB20C0002508C100FE302820C03099 :100490002820203028202030282020302820FE301E :1004A0002820C0302820A9013C08A4003D08A50050 :1004B0002730B000B1018B20FE302820C730282023 :1004C00020302820203028202030282020302820CC :1004D00020302820FE302820C7302820A9014008DD :1004E000A4004108A5002730B000B1018B202C2AC0 :1004F0003808A0003908A1000630840002307820B6 :100500003B08A3003A08BE206400061A882A912AF4 :100510006400861A8C2AB92A6400061D902A422992 :10052000782AB7236400FA3044020318E12AC40A87 :100530004208A0004308A1004408A200A301DF2054 :10054000B8002108B9003808A0003908A1006430BB :10055000A200A301DF20BA002108BB004408A600C6 :10056000A7011E30A200A301FB20BE002508BF008A :100570004229B723640002304402031C4C2BC403FD :100580004208A0004308A1004408A200A301DF2004 :10059000B8002108B9003808A0003908A10064306B :1005A000A200A301DF20BA002108BB004408A60076 :1005B000A7011E30A200A301FB20BE002508BF003A :1005C0004229FA30C4004408A600A7011E30A20048 :1005D000A301FB20BE002508BF00FE30282080308C :1005E0002820413028206C302820633028206130BA :1005F00028206E3028207A3028206130282064306E :1006000028206F302820203028206D3028206130AD :10061000282078302820693028206D3028206F303D :100620002820FE302820C0302820203028202030EC :10063000282020302820FE302820C03028203030CC :100640002820FE302820C4302820483028207A3046 :100650002820FE302820C7302820203028202030B5 :100660002820203028202030282020302820FE304C :100670002820C730282030302820FE302820CD30D8 :10068000282072302820703028206D302820033038 :10069000A300E830BE2042290130C4004408A6006F :1006A000A7011E30A200A301FB20BE002508BF0049
3
:1006B000FE30282080302820413028206C3028202F :1006C00063302820613028206E3028207A3028209E :1006D00061302820643028206F30282020302820E6 :1006E0006D302820693028206E302820693028207D :1006F0006D3028206F302820FE302820C030282080 :10070000203028202030282020302820FE302820AB :10071000C030282030302820FE302820C430282047 :10072000483028207A302820FE302820C730282062 :100730002030282020302820203028202030282059 :1007400020302820FE302820C730282030302820B4 :10075000FE302820CD30282072302820703028200C :100760006D3028200330A300E830BE2042298617D0 :100770008316861364308312BD2086138316861376 :1007800083126400061EC12B6400861EC12B080064 :040790006300C82B0F :02400E006D3F04 :00000001FF
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)
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.