mikrocontroller.net

Forum: Projekte & Code Interface für 10€- Messschieber


Autor: Thomas B. (detritus)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Hier gibts ein kleines Projekt mit Schaltplan und Code. Es wird einer 
der billigen Aldi-Messschiebern initialisiert und ausgelesen. Die Daten 
werden interruptgesteuert in einen Buffer ausgelesen und nach erfolgter 
Übertragung ausgewertet. Der gemittelte Messwert wird über UART 
rausgeschickt und kann z.b auf dem PC mit HTERM o.ä. ausgelesen werden.
Wenn auf dem Controller noch andere Interrupts laufen sollen, muss man 
die Handler entweder SEHR kurz machen oder während dem Empfang eines 
Datenpaketes abschalten, weil ansonsten ein Flankeninterrupt übersehen 
wird und danach !alle! ausgelesenen Werte nicht mehr stimmen.
Da ich alles in Festkomma rechnen lasse, ist die Anzeige leicht falsch: 
Der Messschieber macht eine Auflösung von 806.299 Schritten/mm, ich 
teile aber durch 806. Für Zoll gibt es eine genaue Zahl.

Für die elektrische Seite der Angelegenheit braucht man eine negative 
Spannung von -1.5Volt mit einer Belastbarkeit von etwa 3mA. Es empfiehlt 
sich, diese Spannung möglichst glatt zur Verfügung zu stellen, weil der 
Messschieber ansonsten im Messwert zu sehr schwankt. Ich habe 10n||100n 
direkt an die jetzt überflüssigen Batteriekontakte gelötet.
Mit zwei Optokopplern werden Daten- und Taktleitung zum Steuern 
wahlweise auf Masse (das ist für die Leiste die pos. 
Versorgungsspannung) gezogen.
Der dritte steuert zusammen mit dem BC547C die Versorgungsspannung des 
Messschiebers. Ist der Portpin auf VCC, geht der Transistor an und der 
Optokoppler aus. Bei GND genau andersrum und damit schliesst der 
Optokoppler die Versorgungsspannung des Messschiebers kurz. Das ersetzt 
den leider nicht vorhandenen Reset beim Messschieber.

Feedback erwünscht.

Autor: error (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wär' besser, wenn der schaltplan auch als bild drin wär'

ansonsten thx for sharing

Autor: hajote (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

aus deinem Schaltplan habe ich Anregung zur Verbesserung meiner Anzeige 
nehmen können, danke.
In meinem Programm nutze ich zur Umrechnung in mm die Formel: 
Eingelesener Wert * 127/1024 .
Wenn du 1270/1024 statt deiner 1000/806 nimmst, hast du ein genaues 
Rechenergebnis.

Es grüßt der Jochen aus Do

Autor: Thomas B. (detritus)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, hab mal weitergemacht. Jetzt hat das Ding eine Steuer- und 
Anzeigeeinheit auf dem Rechner (geschrieben mit Qt). Den Namen der 
Schnittstelle kann man nicht nur aus dem Pulldown-Menü auswählen, 
sondern auch mit der Tastatur eingeben.
Vom Rechner aus kann man den Messschieber zurücksetzen(es wird einfach 
über die UART 'R' gesendet). Ausserdem kann man die Anzeige am Rechner 
"nullen", also relativ messen, ohne dass man dazu den Messschieber 
rücksetzen müsste.

Controllerseitig dazugekommen ist der Empfang des 'R' und ein Timeout 
des Empfangsfensters für ankommende Daten. So kann man den Messschieber 
problemlos im laufenden Betrieb anschliessen und es ist auch nicht mehr 
sooo tragisch, wenn der Controller mal eine Flanke nicht erwischt.
Der mitlaufende Timer macht in der jetzigen Form der ISR und einer 
Quarz-Frequenz von 12Mhz keine Probleme, was evtl. Verschlucken von 
Flanken angeht.

Ausserdem ist alles mathematische natürlich in den PC verlagert worden.

@error: Hab 2 *.pngs gemacht.
@hajote: Cooler Tip! In der aktuellen Version aber natürlich nicht drin, 
weil ich mich auf dem PC mit Gleitkomma austoben kann :D

Autor: Thomas B. (detritus)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Teil 2

Autor: Frank Esselbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

... wäre es möglich, nur das Auslesen-und-per-Seriell-versenen in einem 
ATTiny45 unterzubringen?

Frage noch zum Protokoll: ist es ein Messchieber von der Art, der diese 
2x24 Bit mit 96 kHz versendet?


Frank

Autor: Thomas B. (detritus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rein vom Umfang des Programmes: Kein Problem.
Der Tiny45 hat ja 4K Flash, mein Programm braucht so ~1200-1400Byte.
RAM wird ~170Bytes verwendet.

Allerdings sind die IO-Pins recht knapp. Man braucht:
- 1xEXINT
- 3xAusgänge an die Optokoppler
- 1xDateneingang
- 2xUART

Naja, man kann mit ein paar Schaltungstricks den EXINT und den 
Dateneingang jeweils mit einem Ausgang für Optokoppler (DATA/CLOCK) 
zusammenlegen, da eh nicht eingelesen wird, solange der Messschieber 
initialisiert wird.
Dann ist ein Pin frei, an den man dann einen externen Oszillator hängen 
kann.
Ob das Programm auch mit dem internen 1Mhz-Oszillator klappt, weis ich 
nicht. Es kann an vielen Stellen Probleme machen (UART-Toleranz, alle 
Flanken mitkriegen,...)

Und ja, das Protokoll entspricht dem hier:
http://www.yadro.de/digital-messleiste/protokoll.html#a2

Autor: Frank Esselbach (Firma: Q3) (qualidat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das auch schon mal versucht. Bei der Hardware bin ich ein wenig 
sparsamer vorgegangen, bei der Software zum Einlesen der Daten habe ich 
mit Bascom dann leider keinen Fuß auf den Boden bekommen ... die Flanken 
eben ...

- gemeinsame Masse (Minus) von Messschieber und Controller
- Plus für Messschieber über 1KOhm und rote LED parallel aus einem 
Controller-Pin. Ausschalten ist dann wie Reset.
- auf Mode-Umschaltung verzichten bzw. per Taste am Messschieber
- Daten und Takt vom Messschieber über je eine Transistor-Emitterstufe 
zum Controller

So reichen dann auch die 6 Port-Pins:

- 2 x Daten und Takt v. Messschieber
- 1 x Spannung/Reset z. Messschieber
- 1 x externer Takt
- 2 x TX/RX

Da ich leider von C überhaupt keine Ahnung habe, wäre es super, wenn du 
für diese Konfiguration ein Hex-File erstellen würdest. Achtung, die 
Eingangssignale werden von den Emitterstufen invertiert :-)

Meine Gegenleistung könnte z.B. ein Anzeigetool für den Desktop sein 
(ohne dass ich das deinige etwa schlecht finde ... ich kann bloß Nichts 
anderes):

- dass keinerlei Installation benötigt
- freie Wahl des COM-Port und dessen Parameter
- nur aus einer EXE/APP-Datei besteht
- keine DLLs, keine Registry-Einträge
- Daten als Text, CSV- oder Excelsheet sichern kann
- grafische Anzeige z.B. als Kurve
- Statistik: Mittelwert, Standardabweichung, Varianz ...
- Daten in eine SQL-Datenbank schreibt oder per TCP/IP verschickt
- Sichern der Voreinstellungen
- für Windows, Mac und Linux (identische Oberfläche)

Frank

Autor: Thomas B. (detritus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank Esselbach wrote:
> Ich habe das auch schon mal versucht. Bei der Hardware bin ich ein wenig
> sparsamer vorgegangen, bei der Software zum Einlesen der Daten habe ich
> mit Bascom dann leider keinen Fuß auf den Boden bekommen ... die Flanken
> eben ...
>
> - gemeinsame Masse (Minus) von Messschieber und Controller
> - Plus für Messschieber über 1KOhm und rote LED parallel aus einem
> Controller-Pin. Ausschalten ist dann wie Reset.
> - auf Mode-Umschaltung verzichten bzw. per Taste am Messschieber
> - Daten und Takt vom Messschieber über je eine Transistor-Emitterstufe
> zum Controller

So eine Hardware hab ich mir auch überlegt, aber wegen einigen Problemen 
verworfen:
- Das Gehäuse/alle Metallteile am Messschieber liegen auf +Uf der LED. 
Legt oder befestigt man den Messschieber an was metallischem, das auf 
Masse liegt(kommt schonmal vor) ist er aus. Bei dir schliesst man zwar 
nur die LED kurz, aber schön ist es trotzdem nicht.
- Bei den billigen Messschiebern kommt man an die MODE-Taste nicht ran, 
nur an ZERO. Damit kriegt man das Ding nicht in den Fast-Modus -> 
reagiert sehr träge und Mittelwertbildung kann man vergessen.
- Kann sein, dass mein Messschieber eine Ausnahme ist, aber dieses 
Sensibelchen interpretiert nahezu jede winzige Last als Steuerimpuls. 
Daher auch das Design mit den Schmitt-Triggern, wo die Leitungen nahezu 
völlig unbelastet sind. Für nen habhaften Basisstrom hats bei mir nie 
gereicht.
- Es ist cool, wenn man an dem Messschieber keine Tasten mehr drücken 
muss, dann kann man ihn auch an einer unzugänglichen Stelle montieren.

> So reichen dann auch die 6 Port-Pins:
>
> - 2 x Daten und Takt v. Messschieber
> - 1 x Spannung/Reset z. Messschieber
> - 1 x externer Takt
> - 2 x TX/RX
>
> Da ich leider von C überhaupt keine Ahnung habe, wäre es super, wenn du
> für diese Konfiguration ein Hex-File erstellen würdest. Achtung, die
> Eingangssignale werden von den Emitterstufen invertiert :-)

Kann man drüber reden, ist eher kein grosser Aufwand.
Schaltplan? Der Tiny soll das Ding quasi nur einschalten, seriell Daten 
davon einlesen und diese über die RS232 raussenden?

> Meine Gegenleistung könnte z.B. ein Anzeigetool für den Desktop sein
> (ohne dass ich das deinige etwa schlecht finde ... ich kann bloß Nichts
> anderes):
>
> - dass keinerlei Installation benötigt
> - freie Wahl des COM-Port und dessen Parameter
> - nur aus einer EXE/APP-Datei besteht
> - keine DLLs, keine Registry-Einträge
> - Daten als Text, CSV- oder Excelsheet sichern kann
> - grafische Anzeige z.B. als Kurve
> - Statistik: Mittelwert, Standardabweichung, Varianz ...
> - Daten in eine SQL-Datenbank schreibt oder per TCP/IP verschickt
> - Sichern der Voreinstellungen
> - für Windows, Mac und Linux (identische Oberfläche)

Hab ich im Moment keine Verwendung dafür, ich wollte einfach mal "was 
mit Oberfläche" machen und da kam mir das Ding grad recht. Aber 
vielleicht kann ja jemand anders was damit anfangen.
Mit welchem Toolkit arbeitest du eigentlich? QT/Wxwidgets?

Autor: Frank Esselbach (Firma: Q3) (qualidat)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

> So eine Hardware hab ich mir auch überlegt, aber wegen einigen Problemen
> verworfen:
> Das Gehäuse/alle Metallteile am Messschieber liegen auf +Uf der LED.
> Legt oder befestigt man den Messschieber an was metallischem, das auf
> Masse liegt(kommt schonmal vor) ist er aus. Bei dir schliesst man zwar
> nur die LED kurz, aber schön ist es trotzdem nicht.

Ist für meine Anwendung kein Problem. Ich brauche das Ding, um im Rahmen 
von Gutachten hunderte von Messungen nicht aufschreiben bzw. eintippen 
zu müssen. Keine metallische Maschine in der Nähe ...

> Kann sein, dass mein Messschieber eine Ausnahme ist, aber dieses
> Sensibelchen interpretiert nahezu jede winzige Last als Steuerimpuls.
> Daher auch das Design mit den Schmitt-Triggern, wo die Leitungen nahezu
> völlig unbelastet sind. Für nen habhaften Basisstrom hats bei mir nie
> gereicht.

Ich habe je einen SC216E (sog. npn-Miniplast-Transistoren aus 
DDR-Restbeständen) mit einem Widerstand 1 kOhm in der Basisleitung und 5 
kOhm in der Kollektorleitung verwendet. Funktioniert ohne Probleme.

> - Es ist cool, wenn man an dem Messschieber keine Tasten mehr drücken
> muss, dann kann man ihn auch an einer unzugänglichen Stelle montieren.

Da ich den Messschieber sowieso in die Hand nehmen muss, ist das für 
mich nicht so schwerwiegend.

>> Da ich leider von C überhaupt keine Ahnung habe, wäre es super, wenn du
>> für diese Konfiguration ein Hex-File erstellen würdest. Achtung, die
>> Eingangssignale werden von den Emitterstufen invertiert :-)

> Kann man drüber reden, ist eher kein grosser Aufwand.
> Schaltplan? Der Tiny soll das Ding quasi nur einschalten, seriell Daten
> davon einlesen und diese über die RS232 raussenden?

Ja, genau. Wäre toll. Zur Kontaktierung habe ich am Messschieber 
übrigens eine SMD-Mini-USB-Buchse verwendet, passt perfekt.

>> Meine Gegenleistung könnte z.B. ein Anzeigetool für den Desktop sein
>> (ohne dass ich das deinige etwa schlecht finde ... ich kann bloß Nichts
>> anderes):

> Hab ich im Moment keine Verwendung dafür, ich wollte einfach mal "was
> mit Oberfläche" machen und da kam mir das Ding grad recht. Aber
> vielleicht kann ja jemand anders was damit anfangen.
> Mit welchem Toolkit arbeitest du eigentlich? QT/Wxwidgets?

Ich verwende RealBasic. Das ist ein voll objektorientiertes modernes 
Basic (eigene Klassen, Module, grafisches Oberflächendesign) ähnlich wie 
VB - nur viel besser. Die IDE/Compiler gibt es für Windows, Mac und 
Linux. Auf jeder Plattform kann man auch lauffähige Programme für die 
anderen Plattformen kompilieren, der Quelltext ist ohne Änderungen 
austauschbar. Die Programme bestehen aus einer einzigen Datei, keine 
externen DLLs, keine extra RuntimeLib ...

Frank

Autor: Thomas B. (detritus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank Esselbach wrote:

>>> Da ich leider von C überhaupt keine Ahnung habe, wäre es super, wenn du
>>> für diese Konfiguration ein Hex-File erstellen würdest. Achtung, die
>>> Eingangssignale werden von den Emitterstufen invertiert :-)
>
>> Kann man drüber reden, ist eher kein grosser Aufwand.
>> Schaltplan? Der Tiny soll das Ding quasi nur einschalten, seriell Daten
>> davon einlesen und diese über die RS232 raussenden?
>
> Ja, genau. Wäre toll. Zur Kontaktierung habe ich am Messschieber
> übrigens eine SMD-Mini-USB-Buchse verwendet, passt perfekt.

Schlechte Nachricht: Die Tinys haben keine richtige Hardware-UART (hab 
mit Tinys generell wenig zu tun). Man kann  zwar softwaremässig eine 
nachbilden, aber dafür braucht man den INT0 und der muss schon den Clock 
des Messschiebers überwachen. Es gibt noch nen Pin-Change-Interrupt, der 
macht die Sache allerdings komplizierter.

Alternative wären Megas ab der 8/48er Klasse. Muss es denn ein Tiny 
sein, wenns eh ein Einzelstück wird?
Am Programm müsste ich dann nur Registernamen anpassen und die 
Initialisierung des Messschiebers auf deine Hardware ändern.

Autor: Frank Esselbach (Firma: Q3) (qualidat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

> Alternative wären Megas ab der 8/48er Klasse. Muss es denn ein Tiny
> sein, wenns eh ein Einzelstück wird?
> Am Programm müsste ich dann nur Registernamen anpassen und die
> Initialisierung des Messschiebers auf deine Hardware ändern.

Ein ATMega8 wäre natürlich auch eine Lösung, damit entspannt sich das 
Pin-Problem drastisch ... immer noch klein genug für ein Steckergehäuse 
und trotzdem gut zu löten und zu programmieren.

Noch zwei Ideen/Fragen, bitte nicht als "Nimmersatt-Syndrom" auffassen:

Es gibt da im Internet ein Stück Software, dass einen 
USB-zu-RS232-Wandler aus einem Tiny oder auch Mega macht, ohne weitere 
Hardware. Ich kann Speicher- und Rechenbedarf jetzt nicht so gut 
einschätzen, aber wäre es denkbar beides in einem ATMega (128?) 
unterzubringen?

Viele abreiten mit Bascom. Dessen Funktionsumfang lässt sich durch 
Librarys erweitern. Wäre es vorstellbar, deine Lese-Funktion in eine 
solche Lib zu verpacken ... dann hätten eine Menge Leute was davon.

Gruß, Frank

Autor: verrückt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tiny2313 hat hardware uart

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ verrückt:
Der hat nur 128 Byte RAM, das reicht leider nicht.

@Frank:
Ok, dann wirds der Mega8. Mir ist zwar noch eingefallen, dass man ja 
eigentlich nur eine Leitung von nem beliebigen Pin braucht, wenn das 
Gerät nur senden soll, aber da müsste ich mich erstmal hinhocken und 
probieren. Wenn dir der Mega8 auch taugt, ist das ja erledigt und du 
kannst dann von deiner GUI dem µC auch was senden (An/Aus o.ä.).
Wenn du das Gerät dann an den USB hängen willst, empfehle ich dir 
entweder den Einsatz eines FT232 auf der Platine oder eines 
Adapterkabels (Pollin 721 034).

Ich hab von BASCOM leider absolut keine Ahnung und weis daher nicht, wie 
man C-Sourcen in ne lib dafür wandelt.
Ich mag irgendwie keine Programmiersprachen, wo man {} nicht verwenden 
kann. Von wegen end if und so... ;-)

Autor: Thomas B. (detritus)
Datum:
Angehängte Dateien:
  • _C.rar (67,9 KB, 635 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
So, habs mal für den Mega8 umgeschrieben.
Pinbelegung:

PD0        ->RXD
PD1        ->TXD
PD2(EXINT0)->CLOCK
PD4        ->DATA
PD5        ->POWER

Quarz oder Oszillator anschliessbar. Sollte 12Mhz haben, ansonsten muss
die Software angepasst werden.

Damit bleibt der EXINT1(PD3) frei und könnte für einen evtl.
Software-USB genutzt werden. Platz hat der Controller genug. Vielleicht
juckts mich mal...

Habe hier keinen Mega8 und kann daher nicht testen. Bei Problemen
einfach melden.
Dein Messschieber ist anscheinend etwas robuster als meiner. Trotzdem
hab ich eine "Resetzeit" von 2sec vorgesehen, die jedesmal abläuft, wenn
du den Controller neu starten lässt oder über die serielle das Zeichen
'R' sendest. Solange hat das Gerät einfach keinen Saft. Im Zweifelsfall
kannst du ihm noch nen Widerstand parallel schalten, damit sich die
Kapazitäten entladen können (ich mach das ja brutal über nen
Optokoppler).

Für die Empfangsseite eine kurze Erklärung: Der 32bit signed int wird
vom µC in einen String gewandelt, an den anschliessend der
ASCII-Charakter '\n' (LF) angehängt wird. In Qt konnte ich damit eine
Methode zum zeilenweisen Auslesen aus dem seriellen Buffer verwenden.
Den empfangenen Wert muss man dann noch umwandeln: Teilen durch
(256*806,299). Das ergibt den Wert in mm. Gleitende Mittelwertbildung
nach Wunsch.

Das mit der Mini-USB-Buchse ist ein guter Tip.

Autor: Helmut -dc3yc (dc3yc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kennt jemand einen Hersteller von Steckern für die Meßschieber? Möchte 
nämlich nur ungern ein Kabel anlöten. Stecken wäre mir lieber.

Servus,
Helmut.

Autor: holm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@helmut:
Ich habe so ein Interface für 2 Meßschieber an einem 2312 schon mal 
gebaut und programmiert. (Keine Zauberei, im Fast Mode wird nicht jeder 
Meßwert
beider "Meßköpfe" wirklich verarbeitet, hat nicht gestört) und habe 
dabei
die originalen in China hergestellten Kabel mit Steckern für die 
Meßschieber verwenden dürfen......vergiß es.
Die Dinger sind die Wackelkontakte in Person. Dann lieber die USB 
Buchse.

Gruß,

Holm

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

beim Anschliessen von Messschiebern an Digitalanzeigen, am besten die 
Kabel direkt anlöten.

Eine ausführliche Anleitung gibts hier:

http://www.caliper2pc.de/schieblehre/umbau/umbau.html

Gruß
Frank

Autor: holm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@thomas: ich habe eine unfertige Sache in der Kiste, bei der ein Tiny 
2313 2 derartiger Meßschieber ausliest und abwechseln auf einem LED 
Display darstellt. Am RAM kann es also nicht liegen. Unfertig ist die 
Sache deshalb,
weil die Tasten noch nicht eingebunden sind und die LED Anzeige, die im 
Multiplexbetrieb angesteuert wird, noch flackert.
Ich wollte das Teil mal an meine Drehbank schmieden bin aber aus 
Zeitgründen nicht dazu gekommen weiter zu basteln. Geschrieben ist das 
in C, die ISRs sind eingebundener Assembler.

Gruß,

Holm

Autor: Peter Burr (dl2sat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!!

Ist ein Spezialist im Forum der Erfahrung mit PROFiTEXX- Messschiebern 
hat,
welches Protokoll wird eingesetzt???

Würde mich auf eine Antwort sehr freuen!!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe vor ca. 2-3 Jahren zwei solche Messschieber erworben. Wenn es noch 
die gleichen sind (meine haben eine Skala mit scharzem Hintergrund und 
gelber Schrift), dann haben sie das 2x24bit-Protokoll. Diese 
Messschieber
sind nach meiner Erfahrung robuster als z.B. 'Workzone'-Messchieber 
(bcd-Protokoll, von Aldi,Lidl, etc.).

Autor: Peter Burr (dl2sat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gast!!

Vielen Dank für die Info!!!!!

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo hat einer das schon mit dem arduino gemacht ????

Autor: Bravo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute !
Das alles schöne was Ihr hier schreibt ist zwar ein wenig alt, aber ich 
versuche trotzdem, bevor ich ein neues Thread aufmache und gleich von 
dem Moderator eine Kugel in den Kopf bekomme.

Habe mir hier die Schaltung aufgebaut - alles wunderbar!
nun die Fräse steht im Keller- kein PC da. währe nicht einfacher da 
einfach ein 2x8 LCD Display anzuschließen und die Daten anzuzeigen?
Also einfacher- für mich - ist es nicht.
Kann mir da jemand auf die Sprünge helfen ?
Geht schon damit los dass ich ein LCD mit 16 MHz cpu nicht steuern 
kann...
:(
Hier gibt es doch bestimmt einen der dieses Problem unter 2 Minuten 
lösen kann ?


Danke für jede Hilfe und grüße
Bravo

Autor: Ka Suh (kasuh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte das Thema schon mal vor langer Zeit. Für Programmierer: Die 
chinesischen Messschieber spucken ihre Daten glaube ich mit ca 96kBit/s 
aus. Mit einem AVR Atmega 16, 4Mhz Quartz und ein einem ordentlichen 
Assemblerprogramm
ist das Auslesen solcher Messschieber kein Problem. Reicht eine 
Display-Refreshrate von 100ms aus, kann man ohne weiters 4 Messchieber 
einlesen,
die Messwerte noch verwurschteln, über RS232 ausgeben und auch an einem 
LCD-Display anzeigen.

Autor: Bravo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Also vor erst danke für die Antwort.
Ist das hier irgendwo im Forum beschrieben?
Ich denke ich habe schon alle Beiträge zu diesem Thema durch?
Hier hat nicht jemand " rein zufällig" irgendwo ein Code gepostet ?

Ich versuche verzweifelt die Daten die an RS232 geschickt werden an den 
Display ( Port D) zu schicken, aber ich denke da bin ich nicht gut genug 
für.
Na ja , bin da eher schlecht. Versuche den Code hier , von diesem Thread 
umzustricken.

mfg
Bravo

Autor: Thomas B. (detritus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist genau das Problem? Im Prinzip ist das nicht schwer. In der 
main-Schleife heisst es ja
#include "scale.h"
//...
int main(void)
{
  config(); 
  int32_t messwert=0;
  char text [8];
  for(;;){
    if(flag_buffer_voll){
      flag_buffer_voll=0;
      messwert=wandle_messschieber();
      
      ltoa(messwert, text, 10);
      strcat(text, "\n");
      uart_puts (text);     //tauschen gegen Anzeigeroutine des Displays
    }
    if(flag_10Hz){
      flag_10Hz=0;
        verwalteSteueranweisung();
    }
  }
}
Hier wäre je nach verwendeten Display zunächst ein entsprechendes 
Interface einzubinden und zu konfigurieren (für alle Standardsachen kann 
man fertige libs finden). Und dann einfach statt
uart_puts (text);
 den Anzeigebefehl für dein Display hin.

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.