Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Speedometer

Status
Not open for further replies.
Thanks!! That worked!!

Im using FastLCD to make graphics, but the code format is incorrect. Did you have to manually convert the code or is there an automatic converter you used?
 
Sputnik said:
Thanks!! That worked!!

Im using FastLCD to make graphics, but the code format is incorrect. Did you have to manually convert the code or is there an automatic converter you used?

I used GLCDtodopic (attached) to make the splash screen.

Rgds
 

Attachments

  • GLCD TODOPICEN.zip
    14.4 KB · Views: 322
I re-created the Gear Position Indicator schematic (see attached) and it works great while on the bench. As soon as I put it on the bike it screwes up the signal coming from the Gear Position Switch to the ECU. It seems like voltage divider drops the voltage required by the ECU. Is there any way around it?

Is there a way to output certain voltage from PIC?

Here is my code:

Code:
Device 16F876A
DEFINE XTAL 20
ALL_DIGITAL=TRUE
DECLARE ADIN_RES 10
DECLARE ADIN_TAD FRC
DECLARE ADIN_STIME 50 
PORTB_PULLUPS True
Dim Result As Word
Dim Total As Float
Dim X As Word
Dim ErrCount As Byte
SYMBOL seg1=PORTC.0
SYMBOL seg2=PORTC.1
SYMBOL seg3=PORTC.2
SYMBOL seg4=PORTC.3
SYMBOL seg5=PORTC.4
SYMBOL seg6=PORTC.5
SYMBOL seg7=PORTC.6
Delayms 500
TRISA=%0000001
ADCON1=%10000000
high PORTC 'Display segment test
Delayms 1000
low PORTC
ErrCount=0

Start:
Result=0
Total=0
X=0
Repeat
        Delayms 1
        Result=ADIN 0
        Result=Result*2
        Total=Total+Result
        Inc X
Until X=20
Total=Total/20
Total=Total*5/1023
'Delayms 10
Select Total
        Case 1.000 to 2.025 '1st gear
                low seg1
                high seg2
                high seg3
                low seg4
                low seg5
                low seg6
                low seg7
                ErrCount=0
        Case 2.026 to 2.700 '2nd gear
                high seg1
                high seg2
                low seg3
                high seg4
                high seg5
                low seg6
                high seg7
                ErrCount=0
        Case 2.701 to 3.329 '3rd gear
                high seg1
                high seg2
                high seg3
                high seg4
                low seg5
                low seg6
                high seg7
                ErrCount=0
        Case 3.330 to 3.700 '4th gear
                low seg1
                high seg2
                high seg3
                low seg4
                low seg5
                high seg6
                high seg7
                ErrCount=0
        Case 3.699 to 4.190 '5th gear
                high seg1
                low seg2
                high seg3
                high seg4
                low seg5
                high seg6
                high seg7
                ErrCount=0
        Case 4.191 to 4.470 '6th gear
                high seg1
                low seg2
                high seg3
                high seg4
                high seg5
                high seg6
                high seg7
                ErrCount=0
        Case 4.471 to 5.500 'Neutral
                high seg1
                high seg2
                high seg3
                high seg4
                high seg5
                high seg6
                low seg7
                ErrCount=0
        Case Else 'ERROR (NO VOLTAGE)
	If ErrCount > 50 Then            				
                        high seg1
                        low seg2
                        low seg3
                        high seg4
                        high seg5
                        high seg6
                        high seg7 
	Else
	           low seg1
                        low seg2
                        low seg3
                        low seg4
                        low seg5
                        low seg6
                        low seg7  
                        Inc ErrCount
	EndIf
        EndSelect
GoTo Start
 

Attachments

  • Schema.JPG
    Schema.JPG
    122.1 KB · Views: 657
Last edited:
MrSpock said:
I re-created the Gear Position Indicator schematic (see attached) and it works great while on the bench. As soon as I put it on the bike it screwes up the signal coming from the Gear Position Switch to the ECU. It seems like voltage divider drops the voltage required by the ECU. Is there any way around it?

Is there a way to output certain voltage from PIC?

Here is my code:

Code:
Device 16F876A
DEFINE XTAL 20
ALL_DIGITAL=TRUE
DECLARE ADIN_RES 10
DECLARE ADIN_TAD FRC
DECLARE ADIN_STIME 50 
PORTB_PULLUPS True
Dim Result As Word
Dim Total As Float
Dim X As Word
Dim ErrCount As Byte
SYMBOL seg1=PORTC.0
SYMBOL seg2=PORTC.1
SYMBOL seg3=PORTC.2
SYMBOL seg4=PORTC.3
SYMBOL seg5=PORTC.4
SYMBOL seg6=PORTC.5
SYMBOL seg7=PORTC.6
Delayms 500
TRISA=%0000001
ADCON1=%10000000
high PORTC 'Display segment test
Delayms 1000
low PORTC
ErrCount=0

Start:
Result=0
Total=0
X=0
Repeat
        Delayms 1
        Result=ADIN 0
        Result=Result*2
        Total=Total+Result
        Inc X
Until X=20
Total=Total/20
Total=Total*5/1023
'Delayms 10
Select Total
        Case 1.000 to 2.025 '1st gear
                low seg1
                high seg2
                high seg3
                low seg4
                low seg5
                low seg6
                low seg7
                ErrCount=0
        Case 2.026 to 2.700 '2nd gear
                high seg1
                high seg2
                low seg3
                high seg4
                high seg5
                low seg6
                high seg7
                ErrCount=0
        Case 2.701 to 3.329 '3rd gear
                high seg1
                high seg2
                high seg3
                high seg4
                low seg5
                low seg6
                high seg7
                ErrCount=0
        Case 3.330 to 3.700 '4th gear
                low seg1
                high seg2
                high seg3
                low seg4
                low seg5
                high seg6
                high seg7
                ErrCount=0
        Case 3.699 to 4.190 '5th gear
                high seg1
                low seg2
                high seg3
                high seg4
                low seg5
                high seg6
                high seg7
                ErrCount=0
        Case 4.191 to 4.470 '6th gear
                high seg1
                low seg2
                high seg3
                high seg4
                high seg5
                high seg6
                high seg7
                ErrCount=0
        Case 4.471 to 5.500 'Neutral
                high seg1
                high seg2
                high seg3
                high seg4
                high seg5
                high seg6
                low seg7
                ErrCount=0
        Case Else 'ERROR (NO VOLTAGE)
	If ErrCount > 50 Then            				
                        high seg1
                        low seg2
                        low seg3
                        high seg4
                        high seg5
                        high seg6
                        high seg7 
	Else
	           low seg1
                        low seg2
                        low seg3
                        low seg4
                        low seg5
                        low seg6
                        low seg7  
                        Inc ErrCount
	EndIf
        EndSelect
GoTo Start

Try to change the 10K resistor (R2) in the circuit you have attached for a 100NF capacitor.
 
Hi people,

first of all, congratulations for this great forum,
second, sorry for my bad english....

I have a Suzuki gsxr 750 from 1996 that has the GPS sensor and i've found the correct wire.

Now i am trying to use tho code made by KIKO and GRAMO:

Device 16F877A
declare xtal 20

Config XT_OSC , WDT_OFF , PWRTE_ON , BODEN_OFF , LVP_OFF , CPD_OFF, CP_OFF , DEBUG_OFF

Declare LCD_TYPE 0
Declare LCD_DTPIN PORTB.4
Declare LCD_ENPIN PORTB.3
Declare LCD_RSPIN PORTB.2
Declare LCD_INTERFACE 4
Declare LCD_LINES 2

Dim KMH As Float
Dim Temp_Float As Float
Dim KMHT As DWord
Dim KMH_Last As DWord

Dim Result As Word
Dim Total As Float
Dim Last_Result As Float
Dim X As Byte

Symbol _1_Min = 1.243
Symbol _1_Max = 2.355

Symbol _2_Min = 2.356
Symbol _2_Max = 3.194

Symbol _3_Min = 3.195
Symbol _3_Max = 3.709

Symbol _4_Min = 3.710
Symbol _4_Max = 4.307

Symbol _5_Min = 4.308
Symbol _5_Max = 4.674

Symbol _6_Min = 4.675
Symbol _6_Max = 4.810

Symbol _N_Min = 4.811
Symbol _N_Max = 5.245

TRISC.0 = 1

DelayMS 1000
Cls

Print At 1,5, "KM/Hr"
KMHT = 0

TRISA.0 = 1
ADCON1 = %10000000 ' Set analogue input, Vref is Vdd

Start:

Result = 0
Total = 0
X = 0

Repeat

Result = ADIN 0
Result = Result * 2
Total = Total + Result

Inc X

Until X = 15

Total = Total / 15

Total = Total * 5 / 1023

Select Total
Case _1_Min To _1_Max
Print At 2, 1, "1st Gear ", DEC3 Total, "V"
Case _2_Min To _2_Max
Print At 2, 1, "2nd Gear ", DEC3 Total, "V"
Case _3_Min To _3_Max
Print At 2, 1, "3rd Gear ", DEC3 Total, "V"
Case _4_Min To _4_Max
Print At 2, 1, "4th Gear ", DEC3 Total, "V"
Case _5_Min To _5_Max
Print At 2, 1, "5th Gear ", DEC3 Total, "V"
Case _6_Min To _6_Max
Print At 2, 1, "6th Gear ", DEC3 Total, "V"
Case _N_Min To _N_Max
Print At 2, 1, "Neutral ", DEC3 Total, "V"
Case Else
Print At 2, 1, "Unknown ", DEC3 Total, "V"
EndSelect

KMHT = Counter PORTC.0, 250

If KMHT = 0 Then Goto Display

Temp_Float = KMHT
Temp_Float = Temp_Float * 4 * 7.2
KMH = Temp_Float / 1000
KMHT = KMH

Display:

If KMH_Last <> KMHT Then
Print At 1, 1, DEC3 KMHT
KMH_Last = KMHT
EndIf

GoTo Start

and i am using the same schematic of **broken link removed** (gramo)

I've tested in Proteus and it seems to work ok, but i cant makt it work in proteus with a external xtal of 20Mhz.

I am not using the LM LCD.... I am using a "POWERTIP pc1602F B" and the best tadasheet that i've found from it is **broken link removed**

Does this lcd work with "our" schematic?

I cant get the circuit working....

Can sameone give me a help?

Thanks.

Edit..... I've read some things about this and the problem is that this lcd has not an "interpretator" (i think) it is form HD44780 family..... can anyone please help to use it with Gramo's schematic (video)?
 
Last edited:
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top