Forum: Mikrocontroller und Digitale Elektronik Übersetzer Seriel


von Franz K. (franzpl1)


Angehängte Dateien:

Lesenswert?

Bitte um Hilfestellung
Folgendes würde gerne einen 24-poligen Centronic Ausgang auf einen 
Seriellen PC Dateneingan bringen.
Das Gerät ist ein Feinprüfmessgerät "Millitron 1234" siehe den 
Dateianhang.(letzte Seite)
Frage ist das möglich??
Ich hoffe sehr auf eure Hilfe

: Verschoben durch Admin
von Bernhard S. (b_spitzer)


Lesenswert?

Das ist zwar ein spezielles Format, aber mit den Angaben auf der letzten 
Seite lässt sich viel anstellen. Das gute Teil (0,02µm Auflösung sind 
schon speziell!) liefert die benötigten Daten quasi auf dem 
Silbertablett. Du musst nur die BCD-Codierten Stellen einlesen, 0x30 
(Offset für Ziffern im ASCII-Code) dazuaddieren und verschicken.
Wenn man einen Controller mit 4 8-Bit Ports verwendet, dann braucht man 
sich über externe Beschaltung kaum Gedanken zu machen. Einzig die beiden 
Signale an Pin 7 und 8 muss man ausmessen und anpassen, weil da was von 
einem anderen Logikpegel steht. Wann da eine Kommastelle geschaltet 
wird, muss man testen. Falls sich die Messwerte oft ändern (zeigt das 
eines der übrigen Signale an??) und dabei Fehlübertragungen stattfinden, 
sollte man die Ports erst zwischenspeichern.

Für einen 8051-Controller könnte man z.B. einfach folgendes machen:
1
void main(void)
2
{  unsigned char einer, zehner, hunderter, tausender;
3
   bit vorzeichen;
4
   init_seriell_9600baud();
5
   while(1)
6
   {  einer = (P1 & 0x0F) + 0x30; // Einerstellen an P1.0 - P1.3 
7
      zehner = ((P1 & 0xF0) >> 4) + 0x30; // Zehner an P1.4 - P1.7
8
      hunderter = (P2 & 0x0F) + 0x30;     // Hunderter an P2.0-P2.3
9
      tausender = P2_4==0 ? 0x30 : 0x31;  // nur 0 oder 1
10
      vorzeichen = P2_5;                  // Vorzeichen-Eingang 
11
      // die Pins 7 und 8 eventuell noch verarbeiten
12
13
      if (vorzeichen == 1) putchar('+');
14
      else putchar('-');
15
      putchar(tausender);
16
      putchar(hunderter);
17
      putchar(zehner);
18
      putchar(einer);
19
   }
20
}

von Reinhard Kern (Gast)


Lesenswert?

Franz K. schrieb:
> Folgendes würde gerne einen 24-poligen Centronic Ausgang auf einen
> Seriellen PC Dateneingan bringen.

Mit Centronics hat das Interface garnichts zu tun, es ist viel 
einfacher, da die Daten einfach parallel anliegen. Man muss sie nur 
einlesen und seriell weitersenden, zweckmässigerweise mit einem 
µController. Dafür kommt jeder in Frage der genug Eingänge hat, 
angefangen mit einem 20poligen PIC.

Die Frage ist nur zu welchem Zeitpunkt: vermuten kann man, dass mit dem 
Taster eine Messung gestartet wird (wozu ist er sonst da?) und 
"Messbereitschaft" anzeigt, dass der Wert gültig ist. Wie das genau geht 
sollte man mit einem Oszilloskop vorher testen.

Gruss Reinhard

von Franz K. (franzpl1)


Lesenswert?

Herzlichen Dank für die Antworten

Nun zur Realisieung:
Kann ich das über die Mikrocontroller-Plattform Arduino machen?

So eine Art kleiner zwischenübersetzer um die Daten in den Rechner zu 
bekommen und sie z.B.  über Excel zu verarbeiten.
Einen kleinen "prellfreien Taster" einmal Drücken und die Daten werden 
übernommen.

Oder einen andere Lösung ??

Herzlichen Dank fürs Nachdenken

von Reinhard Kern (Gast)


Lesenswert?

Franz K. schrieb:
> Einen kleinen "prellfreien Taster" einmal Drücken und die Daten werden
> übernommen.

Wenn du weisst, wann der Messwert gültig ist, reicht das. Das 
funktioniert dann eben nur bedient und nicht automatisch, ist dafür 
einfach.

Gruss Reinhard

von Bernhard S. (b_spitzer)


Lesenswert?

Franz K. schrieb:
> Nun zur Realisieung:
> Kann ich das über die Mikrocontroller-Plattform Arduino machen?

Wenn das Board genügend Anschlüsse hat. Also nicht die kleinen Minis und 
das Uno hat auch nur 14 digitale I/Os. Da könnte man eventuell die 6 
analogen Eingänge nutzen. Das kleine Mikro hat 20 digitale I/Os, das 
würde auch (leicht) gehen.
Achte darauf, dass genügend Pins für die parallele Übertragung vorhanden 
sind und dass der Controller mit 5V läuft (oder zumindest 5V-Tolerante 
Eingägne hat). Bei zu wenigen Anschlüssen könnte man mit I2C-Bus oder 
Schieberegistern zwar wieder was machen, aber lieber 5€ mehr für die 
Hardware, dafür ist dann alles schon drin.

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.