Endlich geschafft!

Gast #441764
Lesenswert?

Hi!
Habe es endlich nach 2 Monaten hinbekommen!
Der Drehzahlmesser ist fertig!
Habe ich doch mit dem ADC gemacht.
Frequenz vom Unterbrecherkontakt in die Spannung mit dem LM2907 
umgerechnet, mit dem µC den ADC-Wert bestimmt, und in UpM umgerechnet!
FUNKTIONIERT!
Glückwunsch?! ;))))
Gast #441813
Lesenswert?

>Eine Frequenz mittels F/U Wandler -> A/D Wandler -> µC
>zu messen ist auch unsportlich :-)

Mit 13 und 'ner Menge Ungeduld hättest du das vielleicht auch so 
gemacht...
Jetzt hatte Alex wenigstens ein Erfolgserlebnis, und verwendet den ADC 
bis er ihm zu den Ohren herauskommt. Dann probiert er es vielleicht noch 
mal mit dem Timer...


PS: hab wohl mal wieder den Smilie vergessen...
Gast #441836
Lesenswert?

> Jetzt hatte Alex wenigstens ein Erfolgserlebnis, und verwendet den ADC
bis er ihm zu den Ohren herauskommt. Dann probiert er es vielleicht noch
mal mit dem Timer...

Genau :))))
aber eine frage habe ich trotzdem noch! ;)
er zeigt ja bei mir sowas " UpM 01125,125485 " als Drehzahl an.
ich weiss schon dass ich das was mit dem Befehl "format" machen soll, 
aber wie, weiss ich nicht!
Kann mir dabei noch jemand helfen?
Ich will da sowas wie xxx0 stehen haben, als die Letzte zahl immer Null. 
z.B 01120
und am besten die erste 0 wegmachen.


 $regfile = "m16def.dat"
 $crystal = 1000000

 Config Lcd = 20 * 4
 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , 
Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4

Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word , Channel As Byte
Channel = 0
Cls
Locate 1 , 3
Lcd "Alex"
Locate 2 , 6
Lcd "Test"
Waitms 10000

Cls
Do
  W = Getadc(channel)
  Dim U As Single
U = 4.36 * W
U = U + 18.895
Locate 1 , 1
  Lcd "UpM " ; Channel ; U
  Waitms 2000
Loop


oder zumindestens einen Link, was hilfreich sein könnte! BItte!
Gast #441874
Lesenswert?

> Eine Frage hätte ich da auch.

ich habe es so gebaut:
frequenz in spannung umgewandelt.
beim kalten motor die Spannung am ausgang bei ca. 1000UpM - 0.7V 
gemessen!
Fg angeschlossen. frequenz hochgedreht, dass ich auch genau 0,7V habe. 
Dann ADC wert abgelesen.
dann frequenz 5x höher eingestellt. (Soll ja 5000 UpM dann entsprechen).
ADC augelesen.
Gleichung aufgestellt, ADC in UpM umgewandelt.
ans Auto angeschlossen. gas getreten. PASST!
aber Anzeige halt "UpM 03521,45684544 "
Und es möchte mir keiner sagen wie ich die auf 3520 bringe :(
Gast #441884
Lesenswert?

>verstehe nicht! :(

was denn?

Hat Bascom nicht eigentlich einen Simulator?
Da könnte man die Beispiele aus dem Datenblatt ausprobieren.

Vorschlag:

dim S as string * 10

S = STR(U)
S = Format(S,"00000.00");
LCD "UPM: ";Channel;" ";S
Gast #441890
Lesenswert?

STR unterstützt allerdings nur integer.
Wenn du keine Nachkommastellen haben willst, benutzt du vor dem STR noch 
i=INT(U+.5).
Das +.5 ist eine einfache Aufrundung (siehe auch ROUND) ...
Irgendwie komme ich mit den Bascom-Datentypen (noch) nicht zurecht...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren