-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Geschwindigkeits anzeige

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    28.06.2005
    Alter
    33
    Beiträge
    13

    Geschwindigkeits anzeige

    Anzeige

    Tach erst mal bin neu hier und nicht so viel Erfahrung.

    1. Ich hab ein MEGA8 board und möchte damit eine geschwindigkeit
    an einem LCD Display anzeigen lassen.

    2. Messung erfolgt über 2 lichtschranken die hinter einander liegen.
    3. Währe auch gut wenn die zeit angezeigt würde die vergeht bis die erste lichtschranke zum 2ten mal berührt wird.

    bräuchte dringend hielfe dafür


    thx4 help

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Gut. Nun sag' aber erst mal, wie denkst du dir denn, daß sowas gehen könnte ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    28.06.2005
    Alter
    33
    Beiträge
    13
    Hab es mir so gedacht.

    1. Das Stück geht durch die lichtschranke.
    Durch die erste, dann wird ein timer aktiv der die zeit hochzählt bis die 2te lichtschranke aktiv ist (unterbrochen) diese zeit möchte ich dann an dem LCD Display in km/h angezeigt haben.

    2. Sobald die 1 ste Lichtschranke wieder unterbrochen wird soll die zeit angezeigt werden, die vergangen sit, inder die 1 lichtschrange zum 1sten mal unterbrochen ist.
    und danach wieder die geschwindigkeit.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.02.2005
    Ort
    Wels
    Alter
    55
    Beiträge
    512
    und wo genau liegt jetzt das problem?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    28.06.2005
    Alter
    33
    Beiträge
    13
    am basic programm ich komm und komm nicht drauf wie ich das ganz genau machen soll. ;o(

    hab zwah schon was geschrieben aber das klappt sowieso net brauch ne andere lösung.
    Code:
    '###################################################
    'Sven 17/04/05 Rev01
    '
    '##############################################################
    
    
    
    
    '###################################################
    'File and Variable declaration
    '##############################################################
    
    Declare Sub LCD()
    Declare Sub post-treatment()
    
    
    $regfile = "m8def.dat"					'controller definition file
    
    
    Dim dummy1, dummy2 As Byte
    Dim count_geschwindigkeit As Byte
    Dim count_gesamt_zeit As Integer
    
    
    '###################################################
    'Initialisation and configuration of device
    '##############################################################
    
    $crystal = 16000000	                                         'Quarzfrequenz
    
    
    Config Adc = Single , Prescaler = Auto , Reference = Off	'Für Tastenabfrage und Spannungsmessung
    Config Pinc.0 = Input                                       	'Für Tastenabfrage
    Portc.0 = 1                                                 	'Pullup Widerstand ein
    Start Adc
    
    Const Ref = 5 / 1023                                    	'Für Batteriespannungsberechnung
    							        'Bei einer anderen Referenzspannung muss die 2.5 durch entsprechend ersetzt werden
    							        'Die Referenzspannung wird durch den Jumper JPREF bzw. Spindeltrimmer  festgelegt
    
    'ZU ÜBERPRÜFEN!!!!!
    ' Falls ein LCD Display angeschlossen ist
    Dim ___lcdno As Bit
    Config Lcdpin = Pin , E = Portc.3 , E2 = Portd.7 , Rs = Portc.2 , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5
    Config Lcd = 20 * 4
    
    Config PinC.1 = Output					'pin C1 um LED1 zu steuern
    Portc.1 = 1  						'LED angesteuert
    
    Config PinD.2 = Input					'pin C2 um phototransistor1 zum abfragen
    Portc.2 = 1                                             'Pullup Widerstand ein
    
    Config PinC.3 = Output					'pin C3 um LED2 zu steuern
    Portc.3 = 1  						'LED angesteuert
    
    Config PinD.3 = Input					'pin C4 um phototransistor2 zum abfragen
    Portc.3 = 1                                             'Pullup Widerstand ein
    
    '###################################################
    'Initialisation and configuration of variable
    '##############################################################
    
    
    dummy1 = 0
    dummy2 = 0
    
    
    
    
    '###################################################
    'Main Programm
    '##############################################################
    
    
    Do
    	If ((PinD.2 = 1) & (dummy1=1))
    		dummy1 = 0
    	Endif
    	If ((PinD.3 = 1) & (dummy2=1))
    		dummy2 = 0
    	Endif
    	call post-treatment()
      
    	Call LCD()
         	
    		
       
    Loop
    
    End
    
    
    '###################################################
    'Sub Programm
    '##############################################################
    
    
    Sub LCD()
    ..		  
    ...  
    End Sub
    
    Sub post-treatment()
    
    	Speed=3600*(count_geschwindigkeit + N_count0*  timer_zeit_TMR0)
    	Gesamt_zeit = count_gesamt_zeit + N_count1*  timer_zeit_TMR1
    
    End Sub
    
    
    '###################################################
    'Interrupt Subroutine 
    '##############################################################
    
    
    Sub ...()
    
    	If ((PinD.2 <> 0) & (dummy1 = 0))			'Etwas in Lichtschrank 1
    			
    		TMR0 (8 bit) init -> TMR0 config mit klein Prescaler, und benutzt für die Geschwindigkeit
    		N_count0=0
    
    
    		count_gesamt_zeit= TMR1(16 bit)Werte
    		TMR1 auf null einsetzen (init TMR1) -> TMR1 config mit gross prescaler
    		N_count_werte=N_count
    		N_count1=0
    		
    		dummy1=1		
    
    	Endif
    
    	If ((PIND.3 <>0) & (dummy2 =0))				'Etwas in Lichtschrank 2
    
    		count_geschwindigkeit= TMR0(8 bit)Werte
    		
    		dummy2=1
    		
    	
    '		If TMR1 overflow
    '
    '		N_count1 = Ncount1+1				'kontrollieren der IF schleife (wäre es möglich zwo If in einer schleife ohne EndIF??)
    '		
    '		Endif
    	'ENDIF? Dies ist eine Verschachtelung
    
    	If TMR0 overflow
    
    		N_count0 = Ncount0+1
    		
    	Endif
    EDIT: Code-Tags eingefügt. regards, Moddy

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    28.06.2005
    Alter
    33
    Beiträge
    13
    hab noch was anderes gefunden aber weiß auch net ob mir das weiter hilft.


    $crystal = 40000
    Config Timer1 = Timer , Prescale = 64 '4MHz/64 = 62500
    Const Timer_start = 6250 'alle 100ms Überlauf
    Load Timer1 , Timer_start
    Enable Timer1
    On Timer1 Int_1

    Do
    wenn Lichtschranke 1, dann Takt = 0
    wenn Lichtschranke 2, dann Wert = Takt in 1/100 Sek
    Loop

    Int_1:
    Load Timer1 , Timer_start
    Incr Takt
    Return

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Im Prinzip kommt das letzte Beispiel schon hin. Du stellst den Timer auf Überlauf bei 1/100 Sekunde (Rnavr-Tool zum Berechnen verwenden)
    Wenn dann wieder die erste Lichtschranke kommt, hast du dann diese Zeit auch.
    Bei Lichtschranke 1 schaltest du auf Zeit-Display, bei der anderen auf die umgerechnetet Speed
    Auf geht's !
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Gast
    Habs mal so weit gemacht.
    bekomm aber nix am LCD Display raus.
    Wie bekomm ich die variable dazu das ich sie angezeigt bekomme.
    Hab mich noch net so richtig damit auseinander gesetzt.

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Zitat Zitat von Anonymous
    Hab mich noch net so richtig damit auseinander gesetzt.
    Würde sagen, das ist eine gute Gelegenheit dazu.

    Schon "Hello, world" getestet ?

  10. #10
    Gast
    texte gehen.
    aber gerade das ich die variable zum anzeigen bekomme, das weiß ich net.
    Muss ja die variable die ich messe irgendwie zum anzeigen bekommen, weiß nur net wie

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •