mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Analog-Digital-Umwandlung


Autor: Karl Studeny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eine Frage zum Beitrag "Wie sag ich's meinem AVR?"
 Im Teil 3k) Analog-Digital-Umwandler wird beschrieben wie man
 den Digitalwert auf einem Port über LED's ausgeben kann. Das
 funktioniert auch einwandfrei.Ich versuche nun schon Wochenlang
 den Wert über ein LCD auszugeben,leider ohne Erfolg.Ziel ist es
 eine Temperatur über einen NTC zu messen,die Temperatur auf einem
 LCD anzeigen und einen Lüfter in abhängigkeit von der Temperatur
 zu steuern. Da ich Anfänger bin habe ich keine Ahnung wie ich das 
machen könnte.
 Ich würde mich über jede Hilfe freuen
 Grüße Karl

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hast die für einen µC, und wo liegt genau das Problem
kannst du das Display nicht ansteuern oder ???

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich würde erstmal als Temperatursensor den Dallas-One-Wire Chip DS 1820 
oder DS18S20 einsetzen, ein Digitales Thermometer, welches man einfach 
an den I/O-Port anschliesst und auslesen kann, die Werte können dann von 
Binär in z.B. Dezimal angezeigt werden. (Dieses Bauteil kostenlos 
bestellen / siehe Beitrag im Forum unter www.AR-Online.de) Bauteil 
kostet sonst 4,00 EUR bei mit zu bestellen plus Porto 1,53 EUR aber man 
spart sich viel Arbeit mit dem Auswerten mit z.B. Tabellen.
Datenblatt übrigens auch unter www.Ar-Online.de !
Das Auslesen geht z.B. mit FAST-AVR problemlos durch fertige 
Assistenten, bei FASTAVR (Basic-Compiler) liegt schon ein fertiges 
Programm mit dem 18S20 bei.

Hier mal das Listing :

'////////////////////////////////////////////////////////////////
'///  FastAVR Basic Compiler by MICRODESIGN, www.FastAVR.com  ///
'///  Temperature measurement program, 0.1C res,              ///
'///  1820.bas                                                ///
'////////////////////////////////////////////////////////////////
$Device= 2313
$Stack = 32
$Clock = 3.6864
$Lcd   = PORTD.4, rs=PORTB.4, en=PORTB.5, 16, 4
$1Wire = PORTD.3
$Source= On

Dim T As Word
Dim d0 As Byte, d1 As Byte, d2 As Byte, d3 As Byte
Dim d4 As Byte, d5 As Byte, d6 As Byte, d7 As Byte
Dim crc As Byte

Declare Sub Read1820()
Declare Sub CalcTmp()

Lcd "DS1820 T="

Do
  If 1Wreset Then
    1Wwrite &hcc; &h44
    WaitMs 250
    1Wreset
    1Wwrite &hcc; &hbe
    Read1820()
  Else
    Locate 1,10: Lcd "---"
  End If
  WaitMs 200
Loop

'/////////////////////////////////////////////////////
Sub Read1820()

1Wread d0,9        ' read all 9bytes
If Crc8(d0,9)=0 Then  ' check Crc, if OK
  CalcTmp()      ' calc temp
Else
  Locate 1,10: Lcd "CRC"
End If
End Sub

'/////////////////////////////////////////////////////
Sub CalcTmp()  ' calc for 0.1C resolution
' T is 10 times greater (integer)

If d0.1 Then Decr d0  ' if odd decrement
T=(50*d0-25+(100*(d7-d6))/d7)/10
Locate 1,10: Lcd T
End Sub


Das wars.

Prüfe doch erstmal, ob Du das Display in Gang bekommst, zeigt es schon 
mal Zahlenwerte richtig an, z.B. einen Zähler ?

Gibt es Fehlermeldungen usw. ?

Gruss

A. Arndt

Autor: Karl Studeny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnellen Antworten

Ich verwende einen AT90S4433 und als Assembler AVRASM.
Ich kann im Display schreiben (auch Sonderzeichen),
ich kann auch den umgewandelten Analogwert auf LED's
binär ausgeben. Meine Frage, wie kann ich jetzt den Binärwert
eines Register's in eine Dezimalzahl umwandeln und am Display
ausgeben?

Grüße Karl

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habs so gemacht:
binär so lange -100 bis binär <100 ist, subtraktionen zählen und als 
Hunderterstelle ausgeben.
Jetzt binär so lange -10 bis binär <10 ist, subtraktionen zählen und als 
Zehnerstelle ausgeben.
Der Rest ist die Einerstelle.

Autor: princess (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey ,

ich brauche unbedingt hilfe in der sache AD-Umwandler.
Verstehe absolut nichts und muss ein referat in drei wochen halten!!!
wäre schön wenn mir jmd sagen könnte , was das ist , wozu es verwendet 
wird und wie man es verwendet.

gruß

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.