Forum: Mikrocontroller und Digitale Elektronik Barcodescanenr liest mist aus


von Tobi (Gast)


Lesenswert?

Hallo zusammen,

kurze Frage:

Ich habe hier einen ganz normalen Barcodescanner. Dieser liest mir einen 
"CODE-128" Barcode mit der Information "4090" aus.
Ich habe mir ein kleines Arduino-Programm geschrieben, was im Prinzip 
wie folgt aussieht:

__
if(mySerial.available() > 0)
{
byte wert = mySerial.read();
Serial.print("Wert: ");
Serial.println(wert);
}
__

Ich kriege aber, statt 4090, nur folgendes:
Wert: 217
Wert: 214
Wert: 246
Wert: 6
Wert: 0

Jetzt blicke ich gar nicht mehr durch :(
Irgendjemand eine Idee warum so komische Zahlen kommen?


Grüße
Tobi

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Habe zwar keine Ahnung von Bascom, aber hast du die korrekte Baudrate 
eingestellt?

von Tobi (Gast)


Lesenswert?

Jop. Die Kommunikation funktioniert.
Sonst würde ich die:
Wert: 217
Wert: 214
Wert: 246
Wert: 6
Wert: 0
ja nicht bekommen.

von Peter II (Gast)


Lesenswert?

Tobi schrieb:
> Jop. Die Kommunikation funktioniert.
> Sonst würde ich die:
> Wert: 217
> Wert: 214
> Wert: 246
> Wert: 6
> Wert: 0
> ja nicht bekommen.

nein, du bekomst du das falsche.

Ws kommt bei einem Terminalprogramm wie Hypertherm raus?

von dgps (Gast)


Lesenswert?

Du hast 8Bit Datenworte und magst 4090 empfangen?

Ich vermute mal, dass du zwei 8Bit zu einem 16bit datentyp 
zusammenfassen musst. Und dann womöglich auch noch 2er Komplement.
Aber da sagt dir das Datenblatt des Scanners mehr :)

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Tobi schrieb:
> Jop. Die Kommunikation funktioniert.

Offensichtlich nicht so richtig.

> Sonst würde ich die:
> Wert: 217
> Wert: 214
> Wert: 246
> Wert: 6
> Wert: 0
> ja nicht bekommen.

Warum nicht?

- Welche Baudrate hast du in Bascom eingestellt?
- Mit welcher Baudrate sendet der Barcodescanner?
- Woher bekommt der Controller seinen Takt?

von Michael R. (mexman) Benutzerseite


Lesenswert?

Hallo Tobi,


wenn Du hier den Typ des Barcodescanners unbedingt geheim halten willst, 
schau selber is Datenblatt.

Da steht, wie man den Scanner richtig initialisiert und was er ausgibt.

Was dgps schreibt ist falsch, aber Peter II hatte den richtigen Tip für 
Dich: Was sagt das Terminalprogramm?



Gruss

Michael

von Tobi (Gast)


Lesenswert?

Also das ist der Scanner.
http://www.quad.de/WebRoot/quad/Shops/qios/MediaGallery/Datenblaetter/OEM/MS12XX_Datasheet.pdf

Ich benutze 9600 Baud. Das ist beim Scanner Default.
- Keine Parität
- 1 Stop-Bit
- 8 Datenbits

von Tobi (Gast)


Lesenswert?

Ich verstehe nicht ganz was ihr mit diesem hypertherm wollt.
Ich habe es doch an meinem Arduino dran. Da habe ich ein 
Terminalprogramm eingebaut.

von Peter II (Gast)


Lesenswert?

Tobi schrieb:
> Ich verstehe nicht ganz was ihr mit diesem hypertherm wollt.
> Ich habe es doch an meinem Arduino dran. Da habe ich ein
> Terminalprogramm eingebaut.

Dann steck ihn doch erstmal an den PC an.

von Tobi (Gast)


Lesenswert?

Was?
Habe ich längst. Woher sollte ich sonst die

Wert: 217
Wert: 214
Wert: 246
Wert: 6
Wert: 0

bekommen?

von Karl H. (kbuchegg)


Lesenswert?

Tobi schrieb:
> Ich verstehe nicht ganz was ihr mit diesem hypertherm wollt.

hTerm wäre besser.
Denn dann würdest du sehen, dass du vom Scanner Bytes bekommst.
Bytes. das sind 8 Bit Einheiten. Ein Byte kann Werte von 0 bis 255 
annehmen. 4060 ist definitiv mit nur einem Byte nicht möglich.

von Peter II (Gast)


Lesenswert?

Tobi schrieb:
> Habe ich längst. Woher sollte ich sonst die
> bekommen?

na von deinem Arduino board.

du sollst den Scanner aber den PC anstecken.

von Peter II (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Ein Byte kann Werte von 0 bis 255
> annehmen. 4060 ist definitiv mit nur einem Byte nicht möglich.

es geht aber nicht um die Zahl sonder in Barcodes steck ein string.
Er meint also vermutlich "4060".

von Tobi (Gast)


Lesenswert?

4090 jop. das ist der String

von Karl H. (kbuchegg)


Lesenswert?

Peter II schrieb:
> Karl Heinz Buchegger schrieb:
>> Ein Byte kann Werte von 0 bis 255
>> annehmen. 4060 ist definitiv mit nur einem Byte nicht möglich.
>
> es geht aber nicht um die Zahl sonder in Barcodes steck ein string.
> Er meint also vermutlich "4060".

Kann ich nicht sagen. Darüber müsste sein Handbuch zum Scanner Bescheid 
wissen. Aber auch das würde man im hTerm (selbst dann, wenn es auf 
Hex-Anzeige im Byte-Modus ist) sehen.

Von daher unterstütze ich auf jeden Fall den Vorschlag, doch bitte den 
Scanner mal direkt an den PC zu stecken.

von Michael R. (mexman) Benutzerseite


Lesenswert?

Das ist ja wieder eine klasse Frage....


Was zeigt der Scanner am PC?
Was am Arduino?
Was ist die Einstellung von hyperterm?
Was die vom Arduino?
Das verlinkte Blatt ist nicht das Manual vom Scanner und beinhaltet 3 
Typen.... such die Daten des Scanners fuer dessen richtige Installation.


Junge, junge.....

So suchst Du ein Problem im Arduino und weisst noch nichtmal ob der 
Scanner richtig sendet....

Gruss

Michael

von Michael R. (mexman) Benutzerseite


Lesenswert?

Tobi schrieb:
> 4090 jop. das ist der String

WOHER weisst Du ueberhaupt, was im Barcode codiert ist?

Gruss

Michael

von Michael R. (mexman) Benutzerseite


Angehängte Dateien:

Lesenswert?

So sieht uebrigens ein "4090" (ohne Anfuehrungszeichen) in Code-128 aus.


Gruss

Michael

von Peter II (Gast)


Lesenswert?

Michael Roek schrieb:
> So sieht uebrigens ein "4090" (ohne Anfuehrungszeichen) in Code-128 aus.

stimmt, barcodescanner ist der gleichen Meinung (sagt mir aber nicht ob 
es Code-128 ist)

von Tobi (Gast)


Lesenswert?

Genauso sieht meiner auch aus.
ich habs grad mal mit Putty getestet.
Es kommt 4090 raus. So wie es seien soll

von Tobi (Gast)


Lesenswert?

Aber das löst immernoch nicht mein Problem, dass ich mit Arduino nicht 
das richtige kriege

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Hast du jetzt mal den Scanner direkt mit dem PC ausgelesen?

von Electronics'nStuff (Gast)


Lesenswert?

Tobi schrieb:
> Aber das löst immernoch nicht mein Problem, dass ich mit Arduino nicht
> das richtige kriege

Karl Heinz hat es doch schon geschrieben..

Du liest einzelne Bytes aus, du musst die verknüpfen.

von Tobi (Gast)


Lesenswert?

ja wie schon gesagt.
Da funktioniert er und liest 4090 korrekt aus.
Warum kriege ich dann auf dem Arduino die komischen Werte.

Wert: 217
Wert: 214
Wert: 246
Wert: 6
Wert: 0

von Peter II (Gast)


Lesenswert?

Tobi schrieb:
> Da funktioniert er und liest 4090 korrekt aus.
das hast du bis jetzt aber nicht gesagt

> Warum kriege ich dann auf dem Arduino die komischen Werte.
> Wert: 217
> Wert: 214
> Wert: 246
> Wert: 6
> Wert: 0

weil du eventuell die falsche Baudrate hast.

von Karl H. (kbuchegg)


Lesenswert?

Electronics'nStuff schrieb:
> Tobi schrieb:
>> Aber das löst immernoch nicht mein Problem, dass ich mit Arduino nicht
>> das richtige kriege
>
> Karl Heinz hat es doch schon geschrieben..
>
> Du liest einzelne Bytes aus, du musst die verknüpfen.

Jein.
Wenn er am PC in Textform "4090" am Terminal lesen kann, dann stimmt mit 
der UART am Arduino was nicht. Seine Zahlen sind nicht die ASCII Codes 
für "4090"

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Welchen Arduino hast du? (Wenn möglich: Link posten)

Wie hängt der Scanner hardwaremäßig am Arduino dran?

von Tobi (Gast)


Lesenswert?

@peter II: doch hab geschrieben, dass ichs an putty dranhatte und er 
korrekt 4090 ausgelesen hat.

@karl heinz: ganz genau. Da es ein RS232-Anschluss ist reicht es doch 
wenn ich den RC/TX-Pin des Scanners auf den barcode lege, oder?

von Tobi (Gast)


Lesenswert?

Ich habe ein ganz normales Arduino Uno Re
http://arduino.cc/en/Main/arduinoBoardUno

Scanner RX/TX --> Arduino TX/RX

von Karl H. (kbuchegg)


Lesenswert?

Tobi schrieb:
> @peter II: doch hab geschrieben, dass ichs an putty dranhatte und er
> korrekt 4090 ausgelesen hat.
>
> @karl heinz: ganz genau. Da es ein RS232-Anschluss ist reicht es doch
> wenn ich den RC/TX-Pin des Scanners auf den barcode lege, oder?


Nicht unbedingt.
Ich kenn den Arduino nicht.
Hat der eine 12V-RS232 oder eine 5V-Sparversion?

von Peter II (Gast)


Lesenswert?

Tobi schrieb:
> @peter II: doch hab geschrieben, dass ichs an putty dranhatte und er
> korrekt 4090 ausgelesen hat.

das ist halt das Problem, du schreibst nicht wirklich was du machst.

> ich habs grad mal mit Putty getestet.
> Es kommt 4090 raus. So wie es seien soll
hast du nun den SCanner mit dem PC getestet oder Arduino mit dem PC?

von Electronics'nStuff (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Jein.
> Wenn er am PC in Textform "4090" am Terminal lesen kann, dann stimmt mit
> der UART am Arduino was nicht. Seine Zahlen sind nicht die ASCII Codes
> für "4090"

Ach jetzt hab' ich das verstanden.

von Tobi (Gast)


Lesenswert?

Also ich habe erst den Scanner an meinen PC angeschlossen.
Durch das Terminalprogramm PuTTY konnte ich sehen, dass er den 
erwarteten Wert 4090 zurückgibt.

Aber wenn ich den Scanner (dieser hat einen 5V-RS232-Pegel) an das 
Arduino-Board schließe kriege ich die genannten "Werte". Was völlig ab 
vom schuss ist -.-

von Peter II (Gast)


Lesenswert?

Tobi schrieb:
> Aber wenn ich den Scanner (dieser hat einen 5V-RS232-Pegel) an das
> Arduino-Board schließe kriege ich die genannten "Werte". Was völlig ab
> vom schuss ist -.-

was passiert wenn du den PC mit dem Arduino verbindest, kannst du dann 
sauber Daten übertragen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Tobi schrieb:
> Da es ein RS232-Anschluss ist reicht es doch
> wenn ich den RC/TX-Pin des Scanners auf den barcode lege, oder?
Such mal nach "Pegelwandler" wie Max232 &Co...

von Tobi (Gast)


Lesenswert?

Jop
PC und Arduino können wunderbar kommunizieren.

Warum brauche ich denn einen MAX232? Ich habe doch bereits einen 
5V-Pegel. Da muss ich doch nix mehr anpassen?!

von Michael R. (mexman) Benutzerseite


Lesenswert?

Tobi schrieb:
> Also ich habe erst den Scanner an meinen PC angeschlossen.
> Durch das Terminalprogramm PuTTY konnte ich sehen, dass er den
> erwarteten Wert 4090 zurückgibt.
>
> Aber wenn ich den Scanner (dieser hat einen 5V-RS232-Pegel) an das
> Arduino-Board schließe kriege ich die genannten "Werte". Was völlig ab
> vom schuss ist -.-


Toll....langsam erfahren wir KLAR, was wo wie passiert ist ;-)


- Pegel oszillografiert? Am PC und am Arduino?

> Aber wenn ich den Scanner (dieser hat einen 5V-RS232-Pegel) an das
> Arduino-Board schließe kriege ich die genannten "Werte". Was völlig ab
> vom schuss ist -.-

Na dann isses doch klar....bleibt nur Deine Software!

Gruss

Michael

von Tobi (Gast)


Lesenswert?

Hier mal mein Code:

#include <SoftwareSerial.h>
SoftwareSerial mySerial=SoftwareSerial(7, 8);

void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
pinMode(7, INPUT);
pinMode(8, INPUT);
}


void loop()
{
if(Serial.available() > 0)
{
if(mySerial.available() > 0)
{
  byte wert = mySerial.read();
   Serial.print("Wert: ");
   Serial.println(wert);
}
}
}

von oszi40 (Gast)


Lesenswert?

Wie wärs mit einer kleinen Gegenprobe mit rs232-Teststecker?
Loop-Test RX-TX? 8n1 ? http://de.wikipedia.org/wiki/RS232

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Tobi schrieb:
> Aber wenn ich den Scanner (dieser hat einen 5V-RS232-Pegel) an das
> Arduino-Board schließe kriege ich die genannten "Werte".
Wie hast du den dann an den PC angeschlossen?
Ist das eine Ratestunde hier?

von Tobi (Gast)


Lesenswert?

Wie Ratestunde?
Das Arduino-Board wird normal über USB mit dem PC verbunden.

von Frank (Gast)


Lesenswert?

Da scheint schon etwas mit dem Tempo nicht zu stimmen.

Tobi schrieb:
> Das Arduino-Board wird normal über USB mit dem PC verbunden.

Ja eben, da ist dann der serielle Monitor der Arduino-IDE dran. Und wo 
ist der Barcodereader angeschlossen? An einer SoftwareSerial, oder?

Wenn nicht, dann würde ich das erstmal so machen ...

von Karl H. (kbuchegg)


Lesenswert?

Tobi schrieb:
> Wie Ratestunde?
> Das Arduino-Board wird normal über USB mit dem PC verbunden.

Grrrrrrr.

Das interessiert keinen!
Wir reden hier über die UART oder nicht?



   Scanner   RS232   ------------->   Arduino

   Scanner   RS232   ------------->   PC


So.
Jetzt hat der Arduino laut dir eine 5V RS232.
Gut.
Aber der PC hat die mit Sicherheit nicht.
Also muss da zwischen Scanner und PC noch was sitzen. WEnn du den 
Scanner direkt an die RS232 vom PC ansteckst UND am PC das richtige 
daherkommt, dann kann der SCanner keine 5V RS232 haben! Denn dann würde 
ihn der PV sicher nicht verstehen.

Versteht aber der PC den SCanner, dann liefert der Scanner wiederrum 
Pegel für eine 12V RS232 (oder aber da sitzt noch ein Umsetzer 
dazwischen). Die sind aber wiederrum genau verkehrt rum für die 5V RS232 
des Arduino.

So.
Daher die Frage: WElcher UMsetzer sitzt in wo in den Kabeln?


Und nein: USB ist uns allen völlig egal. Denn du willst ja nicht mittels 
USB auf den Scanner, sondern mit der UART. Und die UART läuft nun mal 
nicht mittels USB.

von Tobi (Gast)


Lesenswert?

Der Support von Motorola versicherte mir, dass der pegel auf 5V liegt.

Mitgeliefert wurde ein RS232-Kabel:
http://www.motorola.com/Business/US-EN/Business+Product+and+Services/Accessories/Bar+Code+Scanner+Accessories/Cables/RS232+Cables/25-58918-01R_US-EN

Und dieser 5V-Adapter den man IN das RS232-Kabel steckt.
http://altenbrand.net/de/Zubehoer/Netzteile/Motorola/Motorola-Stecker-Netzteil?xaf26a=wv..

Also leigt der Pegel bei 5V.

von Karl H. (kbuchegg)


Lesenswert?

Tobi schrieb:

> Und dieser 5V-Adapter den man IN das RS232-Kabel steckt.
> 
http://altenbrand.net/de/Zubehoer/Netzteile/Motorola/Motorola-Stecker-Netzteil?xaf26a=wv..
>
> Also leigt der Pegel bei 5V.


Das 'Also' folgt nicht.
Ich sehe nicht, wie und warum ein 5V Steckernetzteil etwas an den Pegeln 
einer RS232 ändern sollte.

von Peter II (Gast)


Lesenswert?

Tobi schrieb:
> Also leigt der Pegel bei 5V.

NEIN  - das ist ein 5V netzteil. Das hat nichts mit dem Pegel zu tun.

miss doch einfach mal. ein RS232 Kabel liefert kein 5V pegel. Es liefert 
ein RS232 signal und das ist anders. Darum geht es auch am PC.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Tobi schrieb:
> Also leigt der Pegel bei 5V.
Das könnte höchstwahrscheinlich ein logischer Fehlschluss sein...

Kurz: der 9-polige SUB-D hat RS-232 Pegel. Wie auch der PC (oder ein 
USB-Adapter für den PC). Um diesen Pegel zu erreichen, hat der Scanner 
einen Max232 eingebaut. Darum funktioniert das mit dem PC.

Aber dein Arduino hat 5V-Pegel und keinen Max232. Und wenn du den selben 
Scannerstecker (der am PC tadellos funktioniert) einfach an den uC 
anschließt, dann bekommt der deshalb falsche Pegel und produziert 
Müll.

Das hat Karl Heinz aber schon ausführlich geschrieben.

Ich würde dir einfach mal vorschlagen, ein Messgerät in die Hand zu 
nehmen und den Pegel an den RXD und TXD Pins zu messen.
Wenn du sagst, was am TX-Pin vom Scanner im Ruhezustand anliegt, dann 
wird vieles viel klarer...

von Reinhard Kern (Gast)


Lesenswert?

Peter II schrieb:
> Es liefert
> ein RS232 signal und das ist anders. Darum geht es auch am PC.

Und wenn der Arduino 5V-Pegel hat und keinen Umsetzer auf RS232C, dann 
kommen 5V raus, das wäre nicht so schlimm und würde sogar funktionieren, 
aber leider leider invertiert - weil eben alle Treiber wie MAXxxx usw. 
das Signal invertieren, und wenn hi und Lo vertauscht sind mögen UARTs 
nicht mehr so recht.

Gruss Reinhard

von Michael R. (mexman) Benutzerseite


Lesenswert?

Vielleicht machst Du Deine Hausaufgaben erst mal...


Hier  stand was:
"- Pegel oszillografiert? Am PC und am Arduino?"



Ist ja nicht auszuhalten...siehe Lothar:
"Ist das eine Ratestunde hier?"

von Karl H. (kbuchegg)


Lesenswert?

Tobi schrieb:
> Der Support von Motorola versicherte mir, dass der pegel auf 5V liegt.

Wenn du den armen Studenten dort ebenso verwirrt und mit fehlenden 
Informationen gefüttert hast, wie uns hier, dann wundert mich das nicht, 
dass dir der alles mögliche zugestanden hat, nur damit du das Telefon 
auflegst.

Ich wette mal, der hat noch nicht mal gewusst, wovon du eigentlich 
redest. Dieses Argument kann ich daher nicht gelten lassen.


Da gibts nur eines:
Wie schon öfter gesagt - die Pegel messen.

und nein. Es sieht nicht danach aus, als ob ins Kabel irgendwas 
eingebaut wäre. Das wäre bei der Produktbeschreibung vermerkt. Das steht 
aber nur, dass es ein nicht gekreuztes Kabel ist. Nicht mehr und nicht 
weniger.
Zweifellos eine nicht unwichtige Information. Aber es ist nun mal kein 
Pegelwandler (bzw. was wichtiger ist: keine Invertierung) vermerkt.

von Florian T. (florian_t)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Das 'Also' folgt nicht.
> Ich sehe nicht, wie und warum ein 5V Steckernetzteil etwas an den Pegeln
> einer RS232 ändern sollte.

Wenn ich das richtig begreife, sitzt in dem RS232 Kabel ein MAX232. 
Evtl. wird der dann mit dem Steckernetzteil versorgt.
Wenn dem so ist, wird er am seriellen Port keine 5V sonder 12V haben. 
Deshalb geht das Ding auch am PC, aber am Arduino nicht.

Wenn ich damit richtig liege, bekommt der Arduino einen viel zu hohen 
Signalpegel für RS232. Das wäre erstens nicht gut, und zweitens würde es 
die falschen Daten erklären.

@Tobi: miss mal mit dem Multimeter/Oszi welche Spannung du auf der 
SignalLeitung zwischen Scanner und Arduino hast. Wenn da mehr als 5V 
liegen bau einen Spannungsteiler dazwischen.

von Peter II (Gast)


Lesenswert?

Florian Trück schrieb:
> Wenn ich damit richtig liege, bekommt der Arduino einen viel zu hohen
> Signalpegel für RS232. Das wäre erstens nicht gut, und zweitens würde es
> die falschen Daten erklären.

die hohe spannung ist nicht das Problem, das signal ist invertiert.

+5V -> -10V
0V  -> +10V

aus dem Grund stimmen die Daten nicht.

von Karl H. (kbuchegg)


Lesenswert?

Florian Trück schrieb:
> Karl Heinz Buchegger schrieb:
>> Das 'Also' folgt nicht.
>> Ich sehe nicht, wie und warum ein 5V Steckernetzteil etwas an den Pegeln
>> einer RS232 ändern sollte.
>
> Wenn ich das richtig begreife, sitzt in dem RS232 Kabel ein MAX232.

Das wär mit Sicherheit bei der Produktbeschreibung vermerkt!
Da sitzt nichts drinnen.

Der Barcodesscanner bezieht seinen Strom aus der RS232 und wenn man den 
an einen Computer ansteckt, dessen RS232 das nicht schafft, dann kann 
man mit dem Steckernetzteil die Versorgungsspannung getrennt an den 
Barcodescanner einschleifen. Mehr steckt da nicht dahinter.

von Florian T. (florian_t)


Lesenswert?

Peter II schrieb:
> die hohe spannung ist nicht das Problem, das signal ist invertiert.
>
> +5V -> -10V
> 0V  -> +10V
>
> aus dem Grund stimmen die Daten nicht.

Noch besser :-) Dann hilft auch kein Spannungsteiler mehr...

von Electronics'nStuff (Gast)


Lesenswert?

Und der "Ratethread des Monats"-Preis geht an..

von Florian T. (florian_t)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Das wär mit Sicherheit bei der Produktbeschreibung vermerkt!

Sicher, Motorola schreibt in seinen Produktmerkmalen rein dass ein 
MAX232 im Kabel drin ist. Das Ding ist für den Geschäftsbereich. Die 
wollen dort Plug&Play. Anleitung lesen ist da nur dann eine Option wenn 
der Techniker danach fragt.

von Peter II (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Der Barcodesscanner bezieht seinen Strom aus der RS232 und wenn man den
> an einen Computer ansteckt, dessen RS232 das nicht schafft, dann kann
> man mit dem Steckernetzteil die Versorgungsspannung getrennt an den
> Barcodescanner einschleifen. Mehr steckt da nicht dahinter.

glaube ich nicht. Einen Scanner der sich über RS232 versorgt habe ich 
noch nie gesehen (und ich habe schon einige in der Hand gehabt)

Sie gehen nur ohne Netzteil wenn sie per USB angeschlossen sind. Bei 
RS232 brauchen sie immer ein Netzteil.

von Reinhard Kern (Gast)


Lesenswert?

Florian Trück schrieb:
> Motorola schreibt in seinen Produktmerkmalen rein dass ein
> MAX232 im Kabel drin ist.

Ein Barcodeleser zum Anschluss an PC, der eine TTL-Schnittstelle hat, 
wäre auch ein ausgesprochen blödsinniges Produkt. Das Ding muss laufen 
wenn man es in eine beliebige RS232C-Schnittstelle steckt.

Gruss Reinhard

von Karl H. (kbuchegg)


Lesenswert?

Florian Trück schrieb:
> Karl Heinz Buchegger schrieb:
>> Das wär mit Sicherheit bei der Produktbeschreibung vermerkt!
>
> Sicher, Motorola schreibt in seinen Produktmerkmalen rein dass ein
> MAX232 im Kabel drin ist. Das Ding ist für den Geschäftsbereich. Die
> wollen dort Plug&Play. Anleitung lesen ist da nur dann eine Option wenn
> der Techniker danach fragt.

Natürlich tun sie das.
So ein Kabel wäre für andere Zwecke völlig untauglich.
Die Produkbeschreibung sagt, dass es sich um ein ganz stink normales 
gerade verdrahtetes RS232 Kabel handelt. Kein Hinweis darauf, dass es 
mit einem bestimmten Gerät zu benutzen wäre oder sonst irgendwas, was 
auch nur den leisesten Hauch eines Verdachtes erwecken könnte, dass da 
mehr dahinter steckt oder das dieses Kabel selbst eine 
Sonderfunktionalität hat.

von Karl H. (kbuchegg)


Lesenswert?

Peter II schrieb:
> Karl Heinz Buchegger schrieb:
>> Der Barcodesscanner bezieht seinen Strom aus der RS232 und wenn man den
>> an einen Computer ansteckt, dessen RS232 das nicht schafft, dann kann
>> man mit dem Steckernetzteil die Versorgungsspannung getrennt an den
>> Barcodescanner einschleifen. Mehr steckt da nicht dahinter.
>
> glaube ich nicht. Einen Scanner der sich über RS232 versorgt habe ich
> noch nie gesehen (und ich habe schon einige in der Hand gehabt)

Hast du recht.
Auf der anderen Seite hab ich allerdings auch noch nie einen 
Barcodescanner gesehen (also den Stift alleine), an dem eine RS232 drann 
wäre.

Ok. Das könnte sein.
Vom Stift geht ein Kabel raus an eine Buchse und an die wird dann dieses 
Kabel angeschlossen. In der Buchse ist der Anschluss für die 5V.

von Florian T. (florian_t)


Lesenswert?

Reinhard Kern schrieb:
> Ein Barcodeleser zum Anschluss an PC, der eine TTL-Schnittstelle hat,
> wäre auch ein ausgesprochen blödsinniges Produkt. Das Ding muss laufen
> wenn man es in eine beliebige RS232C-Schnittstelle steckt.
>
> Gruss Reinhard

Das ist richtig, aber dann wäre es doch logisch das Steckernetzteil 
direkt am Scanner anzuschließen, statt am seriellen Kabel, oder? Das 
lässt mich vermuten, dass der Wandler im Kabelstecker eingebaut ist.

von oszi40 (Gast)


Lesenswert?

Wenn ich Euch jetzt richtig verstanden habe, werden 5V-Pegel erkannt und 
sind 0 und 1 vertauscht? Dann brauchte man doch bloß mal nachrechen ob 
da ein Komplement ankommt?

von Karl H. (kbuchegg)


Lesenswert?

Florian Trück schrieb:

> Das ist richtig, aber dann wäre es doch logisch das Steckernetzteil
> direkt am Scanner anzuschließen, statt am seriellen Kabel, oder? Das
> lässt mich vermuten, dass der Wandler im Kabelstecker eingebaut ist.


Ehrlich?
Mich lässt das eher vermuten, dass Tobi wieder mal nicht alles erzählt 
hat :-)
Solange ich kein Photo sehe, bei dem tatsächlich der Stecker vom 
Netzteil in genau dieses Kabel an einem Ende eingesteckt ist, halte ich 
das erst mal eher für ein Märchen.

von Florian T. (florian_t)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Solange ich kein Photo sehe, bei dem tatsächlich der Stecker vom
> Netzteil in genau dieses Kabel an einem Ende eingesteckt ist, halte ich
> das erst mal eher für ein Märchen.

Wäre natürlich auch eine Option. Wenn ich mir aber das serielle Kabel 
von Motorola anschaue ist der eine der beiden Stecker deutlich dicker. 
Platz genug wäre für Elektronik.

Motorola wäre auch nicht der erste Hersteller der ein Serielles Kabel 
zweckentfremdet und nur für eine Geräteserie nutzbar macht. Ich denke da 
nur an APC und deren serielle Kabel für deren USVs...

von Karl H. (kbuchegg)


Lesenswert?

oszi40 schrieb:
> Wenn ich Euch jetzt richtig verstanden habe, werden 5V-Pegel erkannt und
> sind 0 und 1 vertauscht? Dann brauchte man doch bloß mal nachrechen ob
> da ein Komplement ankommt?

Nö.
Das funktioniert nicht.
Weil die ganze Startbit-Erkennung nicht hinhaut.
Eine normale 12V RS232 kann mit einer 5V-TTL Version nichts anfangen, 
weil die in der ersten fallenden Flanke eines Datenbits das Startbit 
sehen würde. Das ist alles verschoben. Und wenn der Stift die Bytes 
nicht knirsch an Knirsch rausgibt, sondern mit Pausen dazwischen, dann 
wertet die USART diese Pausen als Datenbits aus - zusätzlich zu der 
Fehlinterpretation der Stoppbits.

von Reinhard Kern (Gast)


Lesenswert?

oszi40 schrieb:
> Dann brauchte man doch bloß mal nachrechen ob
> da ein Komplement ankommt?

Natürlich nicht. Das UART funktioniert schlicht und ergreifend nicht, 
weil es keine Star- und Stopbits finden kann, jedenfalls nicht die 
richtigen.

Wer schon mal serielle Schnittstellen aus der Nähe gesehen hat, erkennt 
das Problem übrigens am Oszi sofort.

Gruss Reinhard

von Karl H. (kbuchegg)


Lesenswert?

Florian Trück schrieb:
> Karl Heinz Buchegger schrieb:
>> Solange ich kein Photo sehe, bei dem tatsächlich der Stecker vom
>> Netzteil in genau dieses Kabel an einem Ende eingesteckt ist, halte ich
>> das erst mal eher für ein Märchen.
>
> Wäre natürlich auch eine Option. Wenn ich mir aber das serielle Kabel
> von Motorola anschaue ist der eine der beiden Stecker deutlich dicker.
> Platz genug wäre für Elektronik.

Ist aber auch nicht ungewöhnlich.

> Motorola wäre auch nicht der erste Hersteller der ein Serielles Kabel
> zweckentfremdet und nur für eine Geräteserie nutzbar macht. Ich denke da
> nur an APC und deren serielle Kabel für deren USVs...

Sagen wir mal so:
Möglich ist natürlich alles.

Pegel nachmessen bringt Klarheit.

von Tobi (Gast)


Lesenswert?

Glaubt es mir.
Ich habe das erwähnte Netzteil und Stecke dieses in das dicke Ende des 
RS232-Kabels.

von Florian T. (florian_t)


Lesenswert?


von Michael_ (Gast)


Lesenswert?

Und 5V, das sagt doch noch gar nichts.
Es gibt 5V mit TTL-Pegel und "richtige" RS232 mit 5V bzw. 9V anstatt der 
12V.
Über kurze Strecken geht das meist gut.
Aber dann ist noch das Problem mit dem negieren.
Das Kabel ist doch eine gebasteltes mit zwei Kabeln. Irgendwie nicht 
sehr seriös.
Ist es auch richtig herum angesteckt?
Ich würde mal den größeren Anschluß aufmachen.

von Erdnusschip (Gast)


Lesenswert?

Tobi+Arduino+Bascom und schon kriegen sich die topguns in die Wolle.

von Tobi (Gast)


Lesenswert?

Alles schon versucht.
Die Anschlüsse sind vergossen.

Ich werde mal gleich einen Pegelwandler (MAX232) zwischen den Scanner 
und mein Arduino setzen.
Evtl. hilft das weiter. Aber ich versteh immernoch nicht ganz wieso ich 
die genannten Werte bekomme. Und die sind immer gleich.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ich schau jetzt erst mal ne Weile nur zu...   ;-)
Am sinnvollsten wäre wohl ein leserliches Oszi-Bild.

Tobi schrieb:
> Aber ich versteh immernoch nicht ganz wieso ich die genannten Werte
> bekomme.
Es gibt eben Dinge zwischen Himmel und Erde, die kann ein Mensch nicht 
verstehen.
> Und die sind immer gleich.
Das ist schon mal gut. Wenigstens ein stabiler Zustand.

von Karl H. (kbuchegg)


Lesenswert?

Tobi schrieb:
> Glaubt es mir.
> Ich habe das erwähnte Netzteil und Stecke dieses in das dicke Ende des
> RS232-Kabels.

Schön.

Das sagt aber immer noch nichts darüber aus, welche Pegel aus dem Kabel 
kommen und wie rum sie sind.

von Peter II (Gast)


Lesenswert?

Florian Trück schrieb:
> Das ist richtig, aber dann wäre es doch logisch das Steckernetzteil
> direkt am Scanner anzuschließen, statt am seriellen Kabel, oder? Das
> lässt mich vermuten, dass der Wandler im Kabelstecker eingebaut ist.

nein, so sparen sie im scanner die Buchse. Sie wird ja auch bei USB oder 
sogar bei PS2 nicht gebraucht.

Außerdem ist es handlicher wenn zum Scanner nur ein kabel geht.

von Karl H. (kbuchegg)


Lesenswert?

Erdnusschip schrieb:
> Tobi+Arduino+Bascom und schon kriegen sich die topguns in die Wolle.

Seh ich nicht so.
Im wesentlichen haben wir alle dieselbe Hypothese. Lediglich über die 
konkrete technisches Umsetzung gibt es Differenzen :-)

Wie man das ganze aussortieren könnte, darüber sind sich wieder alle 
einig.

von oszi40 (Gast)


Lesenswert?

> Natürlich nicht. Das UART funktioniert schlicht und ergreifend nicht,
> weil es keine Start- und Stopbits finden kann, jedenfalls nicht die
> richtigen.

Da habt Ihr vollkommen Recht. An die hatte ich jetz nicht gedacht.
Nun könnte unser Tobi mal ein Oszillogramm posten um die Sache näher zu 
beleuchten.

von Michael_ (Gast)


Lesenswert?

Was hast du denn für ein Ardurino?
http://arduino.cc/en/Main/Products
Und wie kommst du von deinem SUB-D Stecker auf das Board?
Ich sehe nur Ser. mit 5 od. 3,3V und TTL-Pegel.

von Sven (Gast)


Lesenswert?

Ich war zu faul zum zuende lesen

Du hast Tx und Rx verbunden aber in keinem wort die Masse erwähnt ?

Hast du Masse (-)(Minus) auch angeschlossen?

von Karl H. (kbuchegg)


Lesenswert?

Sven schrieb:
> Ich war zu faul zum zuende lesen
>
> Du hast Tx und Rx verbunden aber in keinem wort die Masse erwähnt ?
>
> Hast du Masse (-)(Minus) auch angeschlossen?

Das wär jetzt allerdings ein Ding :-)

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Es wird schon so sein, dass er RS232 Signale direkt an den RXD des 
Controllers gezimmert hat und nun mit einem invertierten Datenstrom zu 
kämpfen hat.

von Marco M. (marco_m)


Lesenswert?

RS232 "mit 5 Volt" ist nicht TTL. RS232 bedeutet, dass "1" mit einer 
negativen Spannung (-3V - -12V) und "0" mit einer postiven Spannung (3V 
- 12V) übertragen wird.

Der Arduino erwartet aber für eine "0" 0V und für eine "1" 5V.

Was kommt denn jetzt aus deinem Scanner raus?

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.