Seiten: 1 2 [3] 4
|
|
|
Autor
|
Thema: Analoganzeige mit Text LCD (Gelesen 67508 mal)
|
Falzo
Diktator vom Dienst
Administrator
Karma: +15/-0
Offline
Geschlecht:
Beiträge: 5088
|
das hab ich natuerlich mal als logisch vorausgesetzt (tu-tu-tutorial!), denn auch wenn man sich nen fertiges binary saugen kann, muss man es natürlich immer noch in den chip bringen ;-)
|
|
|
Gespeichert
|
|
|
|
Spunky
Case-Konstrukteur
Karma: +9/-0
Offline
Geschlecht:
Beiträge: 715
|
PS: so kleine 8x2er DIsplays kriegt man bei ebay für 5€ ( KLICK) Wer genau hinschaut wird entdecken, das es exakt das Display ist, mit welchem ich gerade teste. Ich hatte mal vor ein paar Monaten gleich nen vierer-Pack bei tigerkatze1965 bestellt.
Spunky PS: Hat mal einer ne Sammlung mit Symbolen? Ich wollte einen Verdrahtungsplan malen, finde aber keinen schicken D-SUB25-Stecker. Der im Eagle ist bescheiden aus.
|
|
« Letzte Änderung: Februar 1, 2004, 11:09:11 von Spunky »
|
Gespeichert
|
„Liebe Nachwelt! Wenn Ihr nicht gerechter, friedlicher und überhaupt vernünftiger sein werdet als wir gewesen sind, dann soll Euch der Teufel holen. Diesen frommen Wunsch mit aller Hochachtung geäußert habend bin ich Euer ehemaliger, gezeichnet: Albert Einstein.“ --->>> AFAIK? IMHO? HTH? Guckst du hier -> Chat-Akronyme / -Abkürzungen <<<---
|
|
|
|
Spunky
Case-Konstrukteur
Karma: +9/-0
Offline
Geschlecht:
Beiträge: 715
|
Boaa, nen gazen Samstag habe ich für so ein bisschen Listing gebraucht:
' Konfiguration des LCD Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.0 , Rs = Portb.1 Config Lcd = 20 * 4
' Analog-Digital-Converter (ADC) konfigurieren und starten. Config Adc = Single , Prescaler = Auto 'Now give power to the chip Start Adc
'Variablen für den ADC Dim W As Word Dim Channel As Byte
' Weitere Variablen Dim Balken As Byte Dim Zeile As Byte Dim Block As Byte Dim Lastchar As Byte Dim I As Byte
' LCD initialisieren und löschen und kurz melden Cls Cursor Off Noblink ' Cursor aus Lcd "Jetzt gehts los " ' kurze Meldung auf Display Wait 1 ' ne Sekunde warten
' Eigene Zeichen für den Zeichengerrator definieren Deflcdchar 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 Deflcdchar 1 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 ' | Deflcdchar 2 , 24 , 24 , 24 , 24 , 24 , 24 , 24 , 24 ' || Deflcdchar 3 , 28 , 28 , 28 , 28 , 28 , 28 , 28 , 28 ' ||| Deflcdchar 4 , 30 , 30 , 30 , 30 , 30 , 30 , 30 , 30 ' |||| Deflcdchar 5 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31 ' |||||
Cls
' Wir beginnen mit Kanal 1 Channel = 1
Do ' jetzt die ewige Schleife W = Getadc(channel) 'Kanal 1 auslesen W = W / 10 ' Wert durch 10 teilen Balken = W ' Wert in die Balkenvariable If Balken > 100 Then Balken = 100 ' auf max 100 begrenzen, mehr hat eine Zeile nicht Zeile = Channel ' jeder Kanal auf die jeweilige Zeile Gosub Bargraph ' und Balken ausgeben Incr Channel ' jetzt noch zum nächsten Kanal weiter zählen If Channel > 4 Then Channel = 1 ' wenn über 4 dann wieder zurück nach 1 Waitms 100 ' bisschen Pause, sonst flackert. etwa 100ms Loop
End
' Routine malt den Balken Bargraph:
Block = Balken / 5 ' Ausrechen, wieviele volle Zeiche es gibt Lastchar = Balken Mod 5 ' und noch den Rest
Locate Zeile , 1 ' Zeile setzen
I = 0 While I < Block ' dicke Blöcke malen Lcd Chr(5) Incr I Wend
If Lastchar > 0 Then Lcd Chr(lastchar) ' restliche Striche als Zeichen malen
While I < 19 ' Rest der Zeile mit Leerzeichen auffüllen Lcd " " Incr I Wend
Return ' Fertig! Zrück zur Hauptschleife Das ist jetzt das fertige Programm komplett in BASCOM. Sollte sich nach der o.g. Flash-Howto brennen lassen. Ich habe einen Atmel AVR ATmega8 verwendet. Die Beschaltung ist sehr einfach. Man braucht nur ein LCD anklemmen und fertig. Hier mal nur die Pins, welche vom Display an den AVR geklemmt werden müssen:
| ARV Pin | | LCD Pin | 6 | PD4 | 11 | D4 | 11 | PD5 | 12 | D5 | 12 | PD6 | 13 | D6 | 13 | PD7 | 14 | D7 | 14 | PB0 | 6 | E | 15 | PB1 | 4 | RS |
Die anderen Datenpins des Displays (D0 - D3) hängen in der Luft (weil 4-Bit-Betrieb) und R/W wird auf 0V gehangen. Versorgung und Kontrast wie üblich. Gemessen und angezeigt wird die Spannung von Pin PC1 bis PC4 (ADC1 bis ADC4). Wer genauer hin sieht, wird erkennen, daß ich ein 4x20 verwendet haben. Der ADC liefert zwischen 0 und 5V einen Wert von 0 bis 1024. Den teile ich durch 10 und beschneide dann auf max 100 (20*5=100, mehr geht nicht aufs Discplay).
Noch Fragen? Bestimmt! Also schiesst los!
Achja, Kommentare kommen noch! Versprochen! und gehalten!
Edit: Ein Picture:
Ich habe nur den 2. Kanal geregelt. Die anderen ziehen von alleine mit, so empfindlich ist der Chip. Also bitte aufpassen mit statischen Aufladungen. Schon das Handauflegen ändert die Werte am unbeschalteten Pin sehr deutlich.
Spunky
|
|
« Letzte Änderung: Februar 8, 2004, 14:37:21 von Spunky »
|
Gespeichert
|
„Liebe Nachwelt! Wenn Ihr nicht gerechter, friedlicher und überhaupt vernünftiger sein werdet als wir gewesen sind, dann soll Euch der Teufel holen. Diesen frommen Wunsch mit aller Hochachtung geäußert habend bin ich Euer ehemaliger, gezeichnet: Albert Einstein.“ --->>> AFAIK? IMHO? HTH? Guckst du hier -> Chat-Akronyme / -Abkürzungen <<<---
|
|
|
Extension
Plexti
Administrator
Karma: +14/-0
Offline
Geschlecht:
Beiträge: 829
|
jetzt nur noch die Prozentanzeige hinter jedem balken(rechter rand) und das ding rockt. Wenn dann sollte man weiter in richtung digitale lüftersteuerung(falto meinte die digipotigeschichte wäre "serienreif") entwickeln, wo das display evtl auch andere sachen anzeigt. Zb jeden Ch einzelndafür mit extra zutaten.
Nun aber nicht aufregen, habe wirklich keine ahnung ob machbar ist, zum nachdenken fehlen die grundlagen, daher hab fast die hände geklatscht als gelesen hab falzo würde was in richtung Tutorial planen.
Am ende bekommt jeder von mir einen Gummibärchen seines Lieblingsgeschmacks, versprochen
[smile=0]Macht weiter so, ich beobachte euch[/smile]
|
|
« Letzte Änderung: März 1, 2004, 17:43:34 von Extension »
|
Gespeichert
|
|
|
|
|
Klinkerstein
Gast
|
gugg mal bei kessler elektronik
EDIT: hier
EDIT²: uff ziemlich zerrupft mit dem link gugg einfach unter Halbleiter und dann µC und irgndwo Atmel Flash
|
|
« Letzte Änderung: Februar 23, 2004, 21:04:09 von Klinkerstein »
|
Gespeichert
|
|
|
|
|
|
Spunky
Case-Konstrukteur
Karma: +9/-0
Offline
Geschlecht:
Beiträge: 715
|
Bei www.segor.de gibt es den mega8-16PI für 4,80 EUR.
16 bedeutet, er kann bsi 16MHz. Es gibt noch den mega8L für Lowpower, der kann aber nur bis 8MHz. Das P in PI steht für PDIP-Gehäuse. Die anderen Typen, wie J, S oder A sind verschiedene SMD-Bauformen.
Spunky
|
|
« Letzte Änderung: Februar 24, 2004, 13:42:35 von Spunky »
|
Gespeichert
|
„Liebe Nachwelt! Wenn Ihr nicht gerechter, friedlicher und überhaupt vernünftiger sein werdet als wir gewesen sind, dann soll Euch der Teufel holen. Diesen frommen Wunsch mit aller Hochachtung geäußert habend bin ich Euer ehemaliger, gezeichnet: Albert Einstein.“ --->>> AFAIK? IMHO? HTH? Guckst du hier -> Chat-Akronyme / -Abkürzungen <<<---
|
|
|
hackspider
Wakü-Poseidon
Karma: +4/-0
Offline
Geschlecht:
Beiträge: 412
|
hab da ne frage und zwar kann man das gaze auch mit 12V realisieren also das voller ausschlag bei 12 V ist
|
|
|
Gespeichert
|
|
|
|
|
hackspider
Wakü-Poseidon
Karma: +4/-0
Offline
Geschlecht:
Beiträge: 412
|
könnte man nicht in den ATmega8 einen ad wandler programmieren der von 0 V bis 12 V einen wert von 0 -1023 ausgibt
|
|
|
Gespeichert
|
|
|
|
Falzo
Diktator vom Dienst
Administrator
Karma: +15/-0
Offline
Geschlecht:
Beiträge: 5088
|
bin jetzt unsicher in welchem bereich man den µC ueberhaupt betreiben darf, aber 5 Volt machen einfach mehr sinn, weil man das am lcd ja eh braucht und die zwei widerstände fuern spannungsteiler sind ja nun nicht wirklich ein problem, und am ergebnis macht das auch keinen unterschied.
|
|
|
Gespeichert
|
|
|
|
Spunky
Case-Konstrukteur
Karma: +9/-0
Offline
Geschlecht:
Beiträge: 715
|
Die Spannung das ADC (Analog-Digital-Converter) in mega8 darf nicht mehr als 0,3V über der Versorgung (normal 5V) und nicht mehr als 5,5V betragen (der mega8 verkraftet max. 5,5V Versorgung).
12V wird ihn wohl zerstören. Meistens betreibt man die Refernzspannung sogar nur mit 2,56V (dann kann man bei 8Bit einfach umrechnen. Je Bit 0,01V)
Ich würde den o.g. Spannungsteiler vielleicht sogar noch mit einer 5.1V Z-Diode ergänzen, um den Eingang des AVR zu schützen.
Die Widerstände 5k und 7k sind etwas unüblich. Man kann auch 4,7k und 6,8k nehmen. Dann liegt die maximale Spannung am ADC bei 4,9V. Die Maximalwete für den Balken kann man ja per Software einfach festlegen. So das z.B. bei 5V Lüfterspannung (2V am ADC) der Balken bei 0 ist und bei 12V (4,9V am ADC) Vollausschlag anzeigt.
Spunky
|
|
|
Gespeichert
|
„Liebe Nachwelt! Wenn Ihr nicht gerechter, friedlicher und überhaupt vernünftiger sein werdet als wir gewesen sind, dann soll Euch der Teufel holen. Diesen frommen Wunsch mit aller Hochachtung geäußert habend bin ich Euer ehemaliger, gezeichnet: Albert Einstein.“ --->>> AFAIK? IMHO? HTH? Guckst du hier -> Chat-Akronyme / -Abkürzungen <<<---
|
|
|
Seiten: 1 2 [3] 4
|
|
|
|
|