VS S VD D VE E RS RW E D0 D1 D2 D3 D4 D5
1 2 3 pas 0 4 pas 0 5 pas 0 6 pas 0 7 pas 0 8 pas 0 9 pa1 s 0 0 pas1 0 1 pa1 s 0 2 pa1 s 0 3 pa1 s 0 4 pa1 s 0 5 pa1 s0 6 pas 0
pas 0
pas 0
JP1
1 0 0
;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.
pas 2
+5V
pas 1
; 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
pas 0
;INSTRUCCIONES QUE EMPLEO: pas 1
;COUNT portb.0,1000,puls ;contar pulsos en el puerto B.0 y los guarda en la suppa0s 3
;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
+5V
IC1
16 15 4 io 0 3 io 0 2 io 0 1 io 018 io 017 io 0 io 0 in 0
RB7/T1OSI/PGD VDD RB6/T1OSO/1ICKI/PGC RB5 RB4/PGM RB3/CCP1 RB2/TX/CK 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 VSS RA0/AN0
14pwr 0
sup 0
GND
; 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
5
pwr 0
sup 0
pas 1
obligatorio poner a pull-up RA4/tock para poder ver en la LCD
pas 1 sup 0
+5V
10K
sup 0
in
9
in 0
8
in 0
7
RA0 RA1 RA2 RA3 +5V GND
in 0
6
in 0
5
in 0
4
in 0
2 1
4MHZ
COUNT PORTB.0,1000,pulsos
(pag 85 3ª Edicion)
PIC16F628P
la tensión HALL puede ser >= 5V. al disponer del limitador Zener 5.1V 500 mW
RESET
FREQOUT PORTB.1,2000.50 --> saca 50 ciclos durante 2 segundos (pag 90 3ª edición)
pas 2
3 4
1 2
pas 1
S3 pas 2
pas 1 pas 1
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
passu1p 0
+5V
GND
10K
Q1
-
330 pas 1
13 12 io 0 11 io 010 io 0 9 io 0 8 io 0 7 io 0 6
MCLR RA4 RA3 RA2 RA1 RA0
+
Q3 BC548A
io 0
RB6 RB5 RB4 RB3 RB2 RB1
F/TMB pas 0
io 0
sup 0
ZPD
3
GND VCC CON TR RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 NC NC pas 1
C4
passu1p 0 pas 0
D1 suppa0s 0
in 0
pas 1
RB6
150
2
pas 1
RB4
1 2
pas 1
pas 1
RB6 capta los pulsos del receptor Hall para representarlo en el display Debe encontrarse el SELECTOR RB2 en (0) modo LECTOR HALL
pas 1
pwr 0
RB4 (S5) Pulsador Subir HZ RB5 (S4) Pulsador Bajar HZ
pas 0 pas 1
1
pwr 0
GND +5V GND RA4 GND RB3 pas 1
pas 1
; 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.
BUZZER AL60P Suena al pulsar S5 (RB4) S4 (RB5) SG1
10K
+5V 10K
pas 1 pas 1
22pf 22pf
C3 sup 0
pas 1
Cuando el PIC genera los pulsos HALL Llegan al (0) del conector HALL y a su vez al PIN RB0 para el contaje
LED5
pas 1
sup 0 paspa 1s 1
RB1
GND
+5V
3 4
pas 1
RB0-> Entrada Pulsos Hall
220
pas 1 sup 0
passu1p 0 pas 1
LED2 Rojo:2Gvenerador de Pulsos Hall pas 2 pas 2
RB1-> Salida Pulsos Hall
paspa 0s 1
1 2
S4
pas 1
330
(0) Entrada Receptor Hall
3 4
RB0
pas 0
sup 0
pas 2 pas 2
GND
pas 1
X2-3
(-) Generador Hall
pas 3
ESTOS PINES NO LO CONECTO PERO SÍ LO PONGO PARA PONERSELO AL LCD DISPLAY 16X2 ya que sus pines son MÁS GRANDES para soldar.
LCD 2X16
S5
sup 0
pas 2
Q4 BC54
(0) Salida Generador Hall
pas 0
RB2
sup 0
pas 0 pas 1
6 5 pas 0
pas 0
220
+5V pas 0
GND
GND
X2-2
(--) Alimentación HALL (GND)
3
S2 TL32PO
S1
pas 0 pas 1
4
2 pas 0 pas 0
X2-4 (0) Entrada Receptor HALL permite una tensión >= 5V gracias al zener limitador 5,1V 500mW
pas 0
TUXGR_16X2_R2 LCD DISPLAY 16x2
2
Pulsar para subir/Bajar HZ Una pulsación = 3HZ --> 90 rpm
(+) HALL 12V ó 5V (+) alimentación HALL a 12V ó 5X V2-1 (0) Salida HALL a >10V ó 5V
1
pas 0
Fijo a +5V
+5V
passu0p 0 pas 0
pas 1
LED4
passu0p 0
LED3 pas 0
pas 0
330
pas 0
3
570
+5V pas 0
1
+ Bat
Para ello utilizo el potencióhmetro y el comnutador "S1"
Verde
DIS1
GND
S1
otros Sensores HALL se alimentan a 5V y su señal es de 5V.
sup 0
El potencióhmetro permite que la Tensión del Generador HALL sea ajustable hasta la tensión de la Batería. Algunos HALL se alimentan a 12V y la señal HALL es de 10V
pas 1
Rojo
Selector RB2: (1) Generador Hall (2) Lector Hall
pas 0
pas 0
sup 0
Ajustable hasta +12V +12V
GND
LED1 2V
220 uF
470 k
pas 0
+
Realizada: Enero 2014 C2
pas 0
IC2 7805
pas 1
220 uF
C5
Verde: Lector de Pulsos Hall
GND
C1
FRECUENCIMETRO_RECEPTOR_HALL
pas 0 sup 0
pas 1
pas 0
+
pas 0
IN OUT
in 0
+12V
sup 0
1
X1-2 -- BAT El diodo D2 evita daños si se invierte la Tensión de Batería
pas 0
pas 0
pas 0
R1 2K2 D pas2 0 pas 0 A E 1N4004 S
paspa 0s 0
in 0
pas 0
+ BAT X1-1
pas 0
>=9 Vcc
JP 2
Jumper para anular al diodo en caso de baja Tensión de Bat.
+5V
Nota el potenciómetro no está bien conectado. Se debe conectar a Masa y su cursor móvil con la entrada IN del 7805
MCLR
pas 1
pas 1
100
GND
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
C2
X2
R9 220
1
2
TUXGR_16X2_R2
I- O IC2 7805 JP2 R10 10K
DIS1 JP1
1
220 uF
2
470 k
3
220 uF
4
C5
X1
LED5 10K R11
C1
100 FRECUENCIMETRO_RECEPTOR_HALL (100 X 75 mm)
S5
3
1 2
1N4004
4 220 R5
R4 570
LED4
330 R6
LED3
S1
2V LED1
1
2v LED2
2
BC548A
2K2
S2
BC548A Q3
R1
TL32PO
1 2
S3 F/TMB
Q4
10K R2 D2
4M
3 4
22pf
SG1 330 R12
100
330 R7
R14 10K
C 223pf Q1
ZPD 150 R8
D1
C4
PIC16F628P
S4
2
75
4
3
IC1 1
1
220 uF
2
470 k
1
-- 0 + -- +
TUXGR_16X2_R2
I- O IC2 7805 JP2 R10 10K
JP1
2
3
220 uF
4
C5
X1
LED5 10K R11
C2
X2
R9 220
DIS1
C1
100 FRECUENCIMETRO_RECEPTOR_HALL (100 X 75 mm)
S5
3
1 2
1N4004
4 220 R5
LED4
330 R6
LED3
S1
2V LED1
1
1 2
R4 570
2v LED2
2
BC548A
2K2
S2
BC548A Q3
R1
TL32PO
3 4
S3 F/TMB
Q4
10K R2 D2
4M
Q1
22pf
SG1 330 R12
100
C 223pf
330 R7
R14 10K
C4
PIC16F628P
D1
ZPD 150 R8
2
75
4
S4
3
1
IC1
75
100
100
75
-- 0 + -- +
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro
RECEPTOR HALL\FRECUENCIMETRO_GE
'*************************************************** '* Nombre : FRECUENCIMENTRO_GENERADOR_HALL * '* Autor : Joaquín Berrocal Piris * '* Copyright : Copyright (2013) * En PicBasicPro '* 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
Page 1 of 6
; Valor inicial para calulos de subir /bajar Hz
12/04/2014 13:04
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro
valor_base = 50000
RECEPTOR HALL\FRECUENCIMETRO_GE
; 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 divisor var byte divisor = 1
; porque cuenta hasta 255 aunque yo lo tengo limitado ;para incrementar hasta 250 que corresponden con 7500
rpm ; 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 lcdout $FE, 1
; algunas LCD precisan de este tiempo ;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
lcdout $FE,$80,"
Page 2 of 6
;GENERAR_FRECUENCIA ; Genera pulsos por RB1 ; y si es = 1 hacer Lectura de los pulsos
GENERANDO:
" ;cursor en la 1era línea
12/04/2014 13:04
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro
RECEPTOR HALL\FRECUENCIMETRO_GE
'/* 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 endif
; Genera pulsos por RB1 ; y si es = 1 hacer Lectura de los pulsos ;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 revo_Lectura = pulsos * 30
;contar pulsos en el puerto B.6 ;al contarlos por segundo = a frecuencia ;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" */
Page 3 of 6
12/04/2014 13:04
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro
RECEPTOR HALL\FRECUENCIMETRO_GE
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 pause espera
;base = 50000 valor inicial equivale a 500ms ;después con pause igual la F = 1Hz ; 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 goto PROG
;LEER_HALL por RB6 y mostrarlo por LCD ; y si es = 0 Sigue generando pulsos
;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 ; 1 Hz -> 1 x 30 = 30 rpm goto PROG
;multiplico por 30 para convertir en rpm 2Hz -> 2x 30 = 60 rpm 50Hz -> 50 x 30 = 1500 rpm
;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
Page 4 of 6
12/04/2014 13:04
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro
RECEPTOR HALL\FRECUENCIMETRO_GE
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 ; 1 Hz -> 1 x 30 = 30 rpm goto PROG AVISO_BAJAR: ;pause 30
;multiplico por 30 para convertir en rpm 2Hz -> 2x 30 = 60 rpm 50Hz -> 50 x 30 = 1500 rpm
;Para reflejar en lcd y chequear si debe actuar como lector ;****se podría poner intermitente el mensaje++******* ; 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
Page 5 of 6
'tiempo para leer el mensaje
12/04/2014 13:04
C:\ELECTRONICA\EN PBP\Proyecto 5.5.4.1 Frecuencimetro
RECEPTOR HALL\FRECUENCIMETRO_GE
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 if BOTBAJAR = 0 then ESPERA_SUELTE
; Es el conectado a RB4 ; Es el conectado a RB5
return end ;FIN DEL PROGRAMA
Page 6 of 6
12/04/2014 13:04
Archivo Hexadecimal que utilizo
: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 1
: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 2
:1006B000FE30282080302820413028206C3028202F :1006C00063302820613028206E3028207A3028209E :1006D00061302820643028206F30282020302820E6 :1006E0006D302820693028206E302820693028207D :1006F0006D3028206F302820FE302820C030282080 :10070000203028202030282020302820FE302820AB :10071000C030282030302820FE302820C430282047 :10072000483028207A302820FE302820C730282062 :100730002030282020302820203028202030282059 :1007400020302820FE302820C730282030302820B4 :10075000FE302820CD30282072302820703028200C :100760006D3028200330A300E830BE2042298617D0 :100770008316861364308312BD2086138316861376 :1007800083126400061EC12B6400861EC12B080064 :040790006300C82B0F :02400E006D3F04 :00000001FF
3
Archivo Hexadecimal con resistencias PULL-UP (no lo utilizo pero también es válido) :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 1
: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 2
:1006B000FE30282080302820413028206C3028202F :1006C00063302820613028206E3028207A3028209E :1006D00061302820643028206F30282020302820E6 :1006E0006D302820693028206E302820693028207D :1006F0006D3028206F302820FE302820C030282080 :10070000203028202030282020302820FE302820AB :10071000C030282030302820FE302820C430282047 :10072000483028207A302820FE302820C730282062 :100730002030282020302820203028202030282059 :1007400020302820FE302820C730282030302820B4 :10075000FE302820CD30282072302820703028200C :100760006D3028200330A300E830BE2042298617D0 :100770008316861364308312BD2086138316861376 :1007800083126400061EC12B6400861EC12B080064 :040790006300C82B0F :02400E006D3F04 :00000001FF
3
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
Frecuencímetro-Generador HALL realizado feb 2014 por
Joaquín Berrocal Piris
Frecuencímetro-Generador HALL realizado feb 2014 por
Joaquín Berrocal Piris
Frecuencímetro-Generador HALL realizado feb 2014 por
Joaquín Berrocal Piris
Frecuencímetro-Generador HALL realizado feb 2014 por
Joaquín Berrocal Piris
Frecuencímetro-Generador HALL realizado feb 2014 por
Joaquín Berrocal Piris
Frecuencímetro-Generador HALL realizado feb 2014 por
Joaquín Berrocal Piris
Frecuencímetro-Generador HALL realizado feb 2014 por
Joaquín Berrocal Piris
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.
Frecuencímetro-Generador HALL realizado feb 2014 por
Joaquín Berrocal Piris