analog tastatur

Postby subzero » Sat Feb 06, 2010 12:00 am

Hi,

ich habe heute das kleine projekt mit der analog tastatur in lehrbrief 7 in angriff genommen es hat soweit alles geklappt bis auf die dezimalwerte die ich eingestellt habe in den if abfragen. im lehrbrief steht auf seite 68 folgendes:

gedrückte taste | Spg am analogeingang | digitalwert | intervall

TASTE 1 | 0 | 0 | 0-41
TASTE 2 | 2,291 | 939 | 897-980

ich dachte nun rechnet man das so aus:

Uein= Ub *(R1/(R1+R2))

Uein= 2,5 *(10kohm/(10kohm+0,91kohm)) = 2,2914
dezimalwert:
LSB => 2,5V/2^10 = 2,441mV

Uein/LSB => 2,2914/2,441mV = 938.5

für TASTE 3
Uein= 2,5 *(10kohm/(10kohm+1,1kohm)) = 2,252
dezimalwert: 922

In der Musterlösung stehen diese werte zum abfragen:
wert = mw_erf10(4);
spg = (2500.0/1024.0)*wert;
set_cursor(10,40);

if (wert =42)&(wert =130)&(wert =213)&(wert =293)&(wert =381)&(wert =473)&(wert =553)&(wert =642)&(wert =726)&(wert =810)&(wert =897)&(wert =981) taste = 0; // Keine Taste betätigt!

ich habe schon bemerkt das hier anstatt 2.5 mit 2500 gerechnet wird aber ich komme trotzdme nicht auf diese intervalle , wo liegt mein denkfehler? oder würde es wo wie ich gemacht habe auch gehen?
subzero
 
Posts: 134
Joined: Fri Jan 03, 2014 2:13 pm

Postby subzero » Sat Feb 06, 2010 12:00 am

ich hab gerade nochmal mit den werten probiert die ich wie oben beschrieben ausgerechnet habe, aber es funktioniert nicht manche tasten erkennt er weil sie im intervall liegen und manche nicht also muss etwas mit meiner umrechnung nicht stimmen
subzero
 
Posts: 134
Joined: Fri Jan 03, 2014 2:13 pm

Postby subzero » Sat Feb 06, 2010 12:00 am

abgesehen davon konnte ich die music box leider auch net ausprobieren weil ich keinen NF-Verstärker habe,
im Lehrbrief steht auf dem elearning server gibts eine kleine schaltung die man nachbauen soll habe ich aber nicht gefunden gibts einen fertig aufgebauten der nicht soviel kostet? und auch kompatibel ist mit dem board
subzero
 
Posts: 134
Joined: Fri Jan 03, 2014 2:13 pm

Postby bvb » Sun Feb 07, 2010 12:00 am

Hallo subzero,
zwei Sachen sind mir hier aufgefallen:
1) Du hast hoffentlich bei den float-Werten in Deinem Programm KEIN Komma als Trennzzeichen eingesetzt sondern einen PUNKT !

2) Wie kommst Du an diese seltsame if-Anweisung:

if (wert =42)&(wert =130)&(wert =213)&(wert =293)&(wert =381)&(wert =473)&(wert =553)&(wert =642)&(wert =726)&(wert =810)&(wert =897)&(wert =981) taste = 0; // Keine Taste betätigt

Ein Vergleich auf Gleichheit wird in C grundsätzlich mit ´==´ zwei Gleichheitszeichen gemacht.
Und was sollen die &-Anweisungen bewirken ?
Da grundsätzlich immer nur ein Ausdruck wahr sein kann (wert kann nur einen Wert annehmen) ist die if-Abfrage, wenn sie richtig laufen würde, sowieso immer falsch.

Die 2500 anstelle der 2.5 verwenden wir hier, damit wir als Ergebnis sofort die Spannung in mV erhalten.

Setz einfach einmal Deinen gesamten Code hier rein.

Grüße

Bernd
bvb
 
Posts: 190
Joined: Fri Jan 03, 2014 1:53 pm

Postby garak » Sun Feb 07, 2010 12:00 am

Hallo Subzero,

neben dem, was Bernd bereits geschrieben hat, ist mir aufgefallen, dass deine Berechnung für Taste 3 verkehrt ist - wahrscheinlich kommst du deshalb auch nicht auf die in der Musterlösung programmierten Intervalle:

Wenn Taste 3 gedrückt wird, sind der 10 kOhm, der 0,91 kOhm und der 1,1 kOhm Widerstand in Reihe geschaltet. In deiner Berechnung fehlt jedoch der 0,91 kOhm Widerstand.

Hier die korrekte Formel für Taste 3:

Uein = 2,5 *(10kohm/(10kohm+0,91kohm+1,1kohm)) = 2,082

Bis dann,
Garak
garak
 
Posts: 39
Joined: Fri Jan 03, 2014 2:12 pm

Postby subzero » Mon Feb 08, 2010 12:00 am

Hallo ihr beiden,

also zu Bernd das mit dem Code aus der Musterlösung ist nicht meine schuld ich habs direkt reinkopiert aber beim uploaden kam dann dieser code salat raus na klar macht das so keinen sinn. garak vielen dank jetzt weiß ich was falsch war ich habe einfach frech die übrigen widerstände ignoriert ich werds bei gelegenheit nochmal rechnen.

PS: wäre echt toll wenn ihr so einen NF verstärker mal hier reinstellt oder mir einen empfehlt den ich mit dem board benutzen kann, will unbedingt meine sirene programmieren ^^
subzero
 
Posts: 134
Joined: Fri Jan 03, 2014 2:13 pm

Postby μtronix » Thu Feb 11, 2010 12:00 am

Hallo subzero,

Verstärkermodule findest Du z.B. bei Conrad, wenn Du "Verstärkermodule" in die Suche eingibst. Das erste Modul in der Liste z.B. hat mehr als genug Leistung. Im Prinzip kannst Du Dir einen simplen Verstärker aber auch mit wenigen Transistoren selbst aufbauen. Beispiele im Netz oder auch in der 300-Schaltungen Buchreihe. Dann brauchst Du nur noch einen kleinen Lautsprecher, den Du auch beim großen "C..." bekommst.

Nochmal zu dem "Codesalat": wenn Du hier Quellcode postest, solltest Du dies immer mithilfe des "Code"-Buttons auf der Eingabeseite tun. Unabhängig davon ist die angegebene Bedingung in der if-Anweisung in der Tat absolut nicht sinnvoll.

Und im "worst-case", wenn Deine Eingaben hier gar nicht so wie gewünscht erscheinen: einfach einen Screenshot machen, den relevanten Teil ausschneiden, und dann eben das Bild (aber nicht als bmp) hier im Forum einstellen.

Viel Erfolg
Patrick
μtronix
 
Posts: 197
Joined: Fri Jan 03, 2014 2:12 pm

Postby subzero » Thu Feb 11, 2010 12:00 am

hi vielen dank erstmal das dürfte interessant werden. ich besorge mit erstmal diesen verstärker und einen kleinen mini lautsprecher nur eins noch wie schließe ich den verstärker an das board an?
subzero
 
Posts: 134
Joined: Fri Jan 03, 2014 2:13 pm

Postby subzero » Thu Feb 11, 2010 12:00 am

ach nö weißte was lass mich mal selber tüfteln wenn ich es nicht hinkrieg melde ich mich nochmal
subzero
 
Posts: 134
Joined: Fri Jan 03, 2014 2:13 pm


Return to Mikrocontroller-Fernlehrgang (TFH)

Who is online

Users browsing this forum: No registered users and 1 guest