Forum: Mikrocontroller und Digitale Elektronik Porgramm gesucht


von Merthin (Gast)


Lesenswert?

Guten Tag,

Hat jemand ein Programm, dass die Spannung ausließt und über einen AVR 
auf einem LCD ausgibt? Gut wär, wenn das Programm in Assembler ist

von Falk B. (falk)


Lesenswert?


von Merthin (Gast)


Lesenswert?

Hallo Falk,

das hab ich mir schon angeschaut. Das Programm gibt die Spannung dann am 
PC, nicht am LCD aus :(

von Falk B. (falk)


Lesenswert?

@ Merthin (Gast)

>das hab ich mir schon angeschaut. Das Programm gibt die Spannung dann am
>PC, nicht am LCD aus :(

Tja, aber zufällig gibt es auch ein Tutorial, welches ein LCD 
ansteuert. Nun muss man nur noch beide zusammenfügen . . .

MFG
Falk

von Merthin (Gast)


Lesenswert?

hmmm also soll ich einfach die UART Initialisierung durch die LCD 
Initialisierung ersetzen?

von crazy horse (Gast)


Lesenswert?

setz doch mal ein Bild von irgendwas ein. Dann bekommst du von Falk noch 
ne Gratis-Belehrung über Bildformate :-)
Der ist hier nämlich der selbsterkorene Wächter aller Anhänge. Ist ihm 
sehr wichtig, also keinesfalls ignorieren :-)

von Thomas B. (yahp) Benutzerseite


Lesenswert?

Merthin wrote:
> hmmm also soll ich einfach die UART Initialisierung durch die LCD
> Initialisierung ersetzen?

Ja bestimmt!

Das Wesen des Tutorials ist es ja auch nicht dir ein fertiges Programm 
für einen x-beliebigen speziellen Anwendungsfall zur Verfügung zu 
stellen. Irgendwie ist dann doch eigenes Mitdenken gefragt. Aber 
vielleicht findet sich ja doch einer, der dir so ein Programm schreibt.

von Falk B. (falk)


Lesenswert?

@ crazy horse (Gast)

>Der ist hier nämlich der selbsterkorene Wächter aller Anhänge.

Es ist ein Scheissjob, aber einer muss ihn tun. ;-)

Mfg
Falk

von Merthin (Gast)


Lesenswert?

>Aber
>vielleicht findet sich ja doch einer, der dir so ein Programm schreibt.

Das hab ich ja nie verlangt. Aber ich denke eben, dass ich nicht der 
einzige bin, der sowas baut, und daher wär es doch gut möglich, dass 
jemand so ein Prog. schon daheim liegen hat, oder...?

von markus (Gast)


Lesenswert?

Dann mach doch das Programm, hier muss ich Falk recht geben, im Tutorial 
steht es drin nur beide Dinge aneinanderfügen.
Hab sogar so ein Programm IRGENDWO für 8051 herumliegen... nur wäre der 
ADC über I2C angesteuert.
An mehr erinner ich mich nicht mehr ^^

von Kachel - Heinz (Gast)


Lesenswert?

@Merthin (Gast):

Ohne Falks Tutorial in den letzten Quartalen gelesen zu haben hätte ich 
folgende Denkanstöße...

Was brauchst Du?

- LCD-Ausgabe (für ASCII-Zeichen)

- Einlesen eines ADC-Messwertes

- Skalieren des ADC-Wertes in den gewünschten Bereich

- Umwandlung des skalierten Wertes in LCD-taugliche ASCII-Zeichen

Du solltest also erstmal Dein LCD anschließen und zum Laufen bringen. 
Dabei wird Dir das Tutorial vermutlich helfen können. Zusätzlich 
solltest Du aber auch mal einen Blick in das Datenblatt des LCDs werfen, 
denn es schadet nichts, wenn Du auch verstehst, was Du da tust.

Läuft Dein LCD (mit Test-Texten), dann wäre der Abschnitt ADC im 
AVR-Datenblatt eine gute Beschäftigung. Da wirst Du sehen, dass es recht 
einfach ist, den ADC einzuschalten und auszulesen. Vermutlich wird auch 
hier das Tutorial hilfreich sein.

Nun bringt der ADC aber nur Zahlenwerte von 0 bis 1023 (bzw. 0 bis 255 
im 8-Bit-Betrieb), Du möchtest aber einen Spannungswert angezeigt 
bekommen. Da könntest Du mal die Abhängigkeiten ermitteln und den 
Dreisatz bemühen, denn die Abhängigkeit dürfte linear sein. Da Du Dir in 
ASM Deine Variablentypen selbst zimmern musst/darfst, kannst Du 
Festkomma-Arithmetik anwenden, also mit dem zehn-/hundert-fachen der 
gewünschten Einheit rechnen und bei der Ausgabe vor der letzten oder 
vorletzten Ziffer ein Dezimalkomma einschummeln. Das erspart das 
komplizierte Rechnen mit Fließkommazahlen.

Nun müssen die Zahlenwerte noch an das LCD ausgegeben werden. Die Zahl 
steht binär in mehreren Registern, das LCD kann aber nur ASCII-Zeichen 
darstellen. Die Zahl muss also in Ziffern zerhackt werden. In AVR-ASM 
ist Division recht ressourcenfressend, daher ist wiederholte Subtraktion 
die bessere Wahl. Beispiele sind in diesem Forum zur Genüge zu finden, 
vermutlich bereits im Tutorial.

Du solltest also Deine Gesamtaufgabe in viele kleine Problemchen 
zerlegen und diese erstmal separat lösen. Wenn Du das verstanden hast, 
dann gelingt Dir auch das Zusammenfügen mehrerer Einzel-Algorithmen zu 
einem größeren Programm.

@crazy horse:
Stimmt schon, aber Oberle(e/h)rer bleibt Oberle(e/h)rer...
Ich bin jedenfalls beruhigt, dass ich es nicht alleine so sehe.

KH

von Merthin (Gast)


Lesenswert?

hmm, ja danke für die ausführliche antwort Kachel-Heinz
also das LCD mit Textausgabe habe ich so schon zum laufen gebracht.

nun stellt sich mir noch eine frage: wenn ich die analoge Spannung 
messen möchte, (z.B zwischen den Beinen einer LED), wie kann ich dann 
die Beine der LED mit dem AVR verbinden? Gibts da irgendwo eine Skizze 
oder ähnliches?

von Merthin (Gast)


Lesenswert?

Kann mir das keiner sagen?

von Falk B. (falk)


Lesenswert?

@ Merthin (Gast)

>nun stellt sich mir noch eine frage: wenn ich die analoge Spannung
>messen möchte, (z.B zwischen den Beinen einer LED), wie kann ich dann
>die Beine der LED mit dem AVR verbinden? Gibts da irgendwo eine Skizze
>oder ähnliches?

Masse und Das zu messende Signal. So wie es jedes Multimeter macht.

MFg
Falk

von Merthin (Gast)


Lesenswert?

>Masse und Das zu messende Signal. So wie es jedes Multimeter macht.

Was meinst du damit?
ich hab ja wie beim multimeter dann 2leitungen (zw. deren ende spannung 
anliegt) und muss die irgendwie mit dem AVR verbinden. Soll ich die nun 
mit PC1 (ADC1) und PC2 (ADC2) oder mit welchen Pins verbinden?

von Kachel - Heinz (Gast)


Lesenswert?

@Merthin:

Selbst auf die Gefahr hin, als arrogant zu gelten, wenn diese Frage Dein 
Ernst ist, dann solltest Du kleinere Brötchen backen.

Kauf Dir für 3,50 .. 5 Eu ein Billig-DVM und mache damit Deine ersten 
Messübungen an einfachen Schaltungen mit Widerständen, LEDs, 
Transistoren und einer Flachbatterie.

KH

von Merthin (Gast)


Lesenswert?

mir wärs lieber, wenn du sie beantworten würdest. ein Multimeter hab ich 
schon da.........

von S. F. (Firma: keine) (dani5555)


Lesenswert?

irgendwie ist deine frage unverständlich gestellt... meine wenn die LED 
mit dem einen Pin an masse hängt, musst du ja nur den anderen messen, 
aber hoffe das hättest selbst kapiert...  wie sieht den die beschaltung 
der LED aus? was spezielles?

von ich (Gast)


Lesenswert?

Wenn die Led an der Betriebsspannung hängt, die Kathode an den ADC, wenn 
Led an GRD, dann die Annode an den ADC, wenn beides nicht zutrifft 
A->ADC1 K->ADC2 und die Differenz berechnen, sonnst nur den 
entsprechenden Wert zur Referenz berechnen...

von Merthin (Gast)


Lesenswert?

>wie sieht den die beschaltung
>der LED aus? was spezielles?

Nein, nein. Das war nur ein Beispiel, muss nicht unbedingt eine LED 
sein.
Naja, dass ich nur eins messen muss, wenn das andere an GND hängt ist 
jetzt ok, dachte ich muss dennoch was mit Masse verbinden, weil man bei 
einem MM ja auch trotzdem eine Leitung an Masse halten muss... seis 
drum.


wenn wir beim bsp. bleiben, muss ich also einfach ein bein über ein Poti 
mit ADC0 verbinden und das war's?

mir ist auch nicht ganz klar, wann man einen spannungsteiler verwenden 
sollte. welcher bereich ist mit 'höheren' Spannungen gemeint? Sonstige 
Vorteile?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.