Hallo Liebe Forum gemeinde und Bastler
Zu mein projekt ich habe ein geschwindikeit messer mit kontakten (Kontakt1 5Meter abstandt Kontakt2).....
ich würde gern über den IC2 einen sensor nehmen=
---------------------------
1.)Distanz Sensor
oder
2.)radar sensor
oder
3.)Ultraschall
--------------------------
und jetzt meine frage es soll wie eine geschwindikeitanzeige werden die mann in der
30Zone findet????
Hier mal der code
ich bitte euch um mithielfe und rat und tat.......
Mit Freundtlichen Grüssen
Thorsten Sch.
Zu mein projekt ich habe ein geschwindikeit messer mit kontakten (Kontakt1 5Meter abstandt Kontakt2).....
ich würde gern über den IC2 einen sensor nehmen=
---------------------------
1.)Distanz Sensor
oder
2.)radar sensor
oder
3.)Ultraschall
--------------------------
und jetzt meine frage es soll wie eine geschwindikeitanzeige werden die mann in der
30Zone findet????
Hier mal der code
Code:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portd = &B11110000
Portd = &B00001111
'D2, D3 für int0 , int1
Smiley Alias Portd
Const Smiley_lachen = &B01101111
Const Smiley_weinen = &B10101111
Const Smiley_aus = &B00001111
Config Portc = Output
Config Portb = Output
Siebensegmentanzeige Alias Portb
'Timer fuer Hundertstel-Sekunden-Takt
Config Timer0 = Timer , Prescale = 1024 '1024 '10ms
On Timer0 Hundertsteltimer
Const Timervorgabe_0 = 178 '178
'Timer fuer Multiplex
Config Timer1 = Timer , Prescale = 1 '1
On Timer1 Anzeige
Const Timervorgabe_1 = 25536
Config Int0 = Falling
On Int0 Starten
Enable Int0
Config Int1 = Falling
On Int1 Stoppen
Enable Int1
Enable Timer0
Enable Timer1
Enable Interrupts
Dim Zeit As Word
Dim Zahl As Word
Dim Zahl_temp As Word
Dim Geschwindigkeit As Single
Dim Einer As Word
Dim Zehner As Word
Dim Hunderter As Word
Dim Tausender As Word
Dim Ziffer As Byte
Dim Dezimalpunkt As Byte
Dim Dunkel As Byte
Dim Stelle As Byte
Dim I As Byte
Dim Modus As Byte
Const Bereit = 1
Const Messen = 2
Const Anzeigen = 3
Const Gesperrt = 4
Modus = Bereit
Dim Hundertstel_sekunden As Long
Zeit = 888 'Wahr Voher 888
Dunkel = 0
Dezimalpunkt = 1
Smiley = Smiley_lachen
Wait 3
Smiley = Smiley_weinen
Wait 3
Smiley = Smiley_aus
Do
Select Case Modus
Case Bereit:
Zahl = 8888
Dunkel = 1
Dezimalpunkt = 1
Case Messen :
Zahl = Zeit
If Zeit = 1000 Then Modus = Bereit 'Voher 1000
Case Anzeigen :
' Dunkel = 0
' Zahl = Zeit 'nur zur testzwecken die zeit kurz anzeigen
' Wait 1 'nur zur testzwecken die zeit kurz anzeigen
Zahl = Round(geschwindigkeit )
If Zahl > 40 Then 'wenn zu schnell dann Blinken
Smiley = Smiley_weinen
For I = 1 To 5 '5
Dunkel = 0
Waitms 500
Dunkel = 1
Waitms 500
Next
Else
Smiley = Smiley_lachen
Wait 3
End If
Smiley = Smiley_aus
Dunkel = 1
Wait 2
Modus = Bereit
Case Gesperrt
Dezimalpunkt = 0
Wait 2
Modus = Bereit
End Select
Gosub Anzeige
Loop
End
'Multiplexer: (Zahl wird zerlegt und angezeigt)
Anzeige:
Timer1 = Timervorgabe_1
Zahl_temp = Zahl
Einer = Zahl_temp Mod 10
Zahl_temp = Zahl_temp - Einer
Zahl_temp = Zahl_temp / 10
Zehner = Zahl_temp Mod 10
Zahl_temp = Zahl_temp - Zehner
Zahl_temp = Zahl_temp / 10
Hunderter = Zahl_temp Mod 10
Zahl_temp = Zahl_temp - Hunderter
Zahl_temp = Zahl_temp / 10
Tausender = Zahl_temp Mod 10
If Stelle < 4 Then
Incr Stelle
Else
Stelle = 1
End If
If Stelle = 1 Then Ziffer = Einer
If Stelle = 2 Then Ziffer = Zehner
If Stelle = 3 Then Ziffer = Hunderter
If Stelle = 4 Then Ziffer = Tausender
Portc = &B11111111
Select Case Ziffer
Case 0 : Siebensegmentanzeige = &B01111110
Case 1 : Siebensegmentanzeige = &B00001100
Case 2 : Siebensegmentanzeige = &B10110110
Case 3 : Siebensegmentanzeige = &B10011110
Case 4 : Siebensegmentanzeige = &B11001100
Case 5 : Siebensegmentanzeige = &B11011010
Case 6 : Siebensegmentanzeige = &B11111010
Case 7 : Siebensegmentanzeige = &B00001110
Case 8 : Siebensegmentanzeige = &B11111110
Case 9 : Siebensegmentanzeige = &B11011110
End Select
If Stelle = 2 And Zahl < 10 Then Siebensegmentanzeige = &B00000000
'fuehrende Null Dunkel
If Stelle = 3 And Zahl < 100 Then Siebensegmentanzeige = &B00000000
'fuehrende Null Dunkel
If Stelle = 4 And Zahl < 1000 Then Siebensegmentanzeige = &B00000000
'fuehrende Null Dunkel
If Dunkel = 1 Then Siebensegmentanzeige = &B00000000
If Dezimalpunkt = Stelle Then Siebensegmentanzeige = Siebensegmentanzeige Or &B00000001
Portc.stelle = 0
Return
Hundertsteltimer:
Timer0 = Timervorgabe_0
'Incr Hundertstel_sekunden 'Auskommentiertes wenn teilung gewuenscht
'If Hundertstel_sekunden = 10 Then
Incr Zeit
' Hundertstel_sekunden = 0
'End If
Return
Starten:
If Modus = Bereit Then
Start Timer0
Zeit = 0
Modus = Messen
Dunkel = 1 'für testzwecke auf 0 setzen
Dezimalpunkt = 3
End If
Return
Stoppen:
If Modus = Messen Then 'nur wenn Zeitmessung schon laeuft. nicht beimRückwärtsfahren Rueckwaertsfahren
Stop Timer0
' Geschwindigkeit = Strecke / Zeit
Geschwindigkeit = 5 / Zeit 'Meter / Hunderstelsekunde
Geschwindigkeit = Geschwindigkeit * 100 ' m/s
' M / S * 60 * 60 / 1000 - > Km / H
Geschwindigkeit = Geschwindigkeit * 3600
Geschwindigkeit = Geschwindigkeit / 1000 ' Km/h
Modus = Anzeigen
Dezimalpunkt = 0
Else
Modus = Gesperrt
End If
Return
ich bitte euch um mithielfe und rat und tat.......
Mit Freundtlichen Grüssen
Thorsten Sch.