mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Porgramm gesucht


Autor: Merthin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Merthin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Falk,

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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Merthin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm also soll ich einfach die UART Initialisierung durch die LCD 
Initialisierung ersetzen?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Thomas B. (yahp) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Merthin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...?

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ^^

Autor: Kachel - Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Merthin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Merthin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann mir das keiner sagen?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Merthin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Kachel - Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Merthin (Gast)
Datum:

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

Autor: S. Frei (Firma: keine) (dani5555)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Merthin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.