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
Habe zwar keine Ahnung von Bascom, aber hast du die korrekte Baudrate eingestellt?
Jop. Die Kommunikation funktioniert. Sonst würde ich die: Wert: 217 Wert: 214 Wert: 246 Wert: 6 Wert: 0 ja nicht bekommen.
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?
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 :)
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?
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
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
Ich verstehe nicht ganz was ihr mit diesem hypertherm wollt. Ich habe es doch an meinem Arduino dran. Da habe ich ein Terminalprogramm eingebaut.
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.
Was? Habe ich längst. Woher sollte ich sonst die Wert: 217 Wert: 214 Wert: 246 Wert: 6 Wert: 0 bekommen?
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.
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.
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".
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.
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
Tobi schrieb: > 4090 jop. das ist der String WOHER weisst Du ueberhaupt, was im Barcode codiert ist? Gruss Michael
So sieht uebrigens ein "4090" (ohne Anfuehrungszeichen) in Code-128 aus. Gruss Michael
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)
Genauso sieht meiner auch aus. ich habs grad mal mit Putty getestet. Es kommt 4090 raus. So wie es seien soll
Aber das löst immernoch nicht mein Problem, dass ich mit Arduino nicht das richtige kriege
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.
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
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.
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"
Welchen Arduino hast du? (Wenn möglich: Link posten) Wie hängt der Scanner hardwaremäßig am Arduino dran?
@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?
Ich habe ein ganz normales Arduino Uno Re http://arduino.cc/en/Main/arduinoBoardUno Scanner RX/TX --> Arduino TX/RX
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?
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?
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.
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 -.-
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?
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...
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?!
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
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); } } }
Wie wärs mit einer kleinen Gegenprobe mit rs232-Teststecker? Loop-Test RX-TX? 8n1 ? http://de.wikipedia.org/wiki/RS232
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?
Wie Ratestunde? Das Arduino-Board wird normal über USB mit dem PC verbunden.
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 ...
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.
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.
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.
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.
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...
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
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?"
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.
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.
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.
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.
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...
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.
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.
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
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.
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.
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.
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?
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.
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...
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.
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
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.
Glaubt es mir. Ich habe das erwähnte Netzteil und Stecke dieses in das dicke Ende des RS232-Kabels.
Ich hab das hier gefunden: http://www.google.de/imgres?hl=de&sa=X&tbo=d&biw=1866&bih=1038&tbm=isch&tbnid=mFtK6xOqzV4NRM:&imgrefurl=http://support.scansource.com/scripts/sseasyfaqs.cfg/php.exe/enduser/std_adp.php%3Fp_sid%3D9o1wijck%26p_lva%3D%26p_faqid%3D3704%26p_created%3D1216845417%26p_sp%3DcF9zcmNoPSZwX2dyaWRzb3J0PSZwX3Jvd19jbnQ9MTAzOCZwX3BhZ2U9MTI*%26p_li%3D&docid=-8kc_iidcLe-HM&imgurl=http://support.scansource.com/images/TKP3XXX%252520Articles/TKP3704/25-13228-02R%252520wTrig%252520wBeep.jpg&w=400&h=218&ei=SPAHUbGFJIvhtQbHgoDgCQ&zoom=1&iact=hc&vpx=1123&vpy=291&dur=2648&hovh=165&hovw=304&tx=207&ty=73&sig=106232752102963784659&page=1&tbnh=142&tbnw=260&start=0&ndsp=79&ved=1t:429,r:22,s:0,i:154 Das ist die erweiterte Variante mit Auslöser und Beeper. Aber: Mit dem normalen hat es gemein, dass man das Netzteil tatsächlich in den seriellen Stecker einsteckt.
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.
Tobi+Arduino+Bascom und schon kriegen sich die topguns in die Wolle.
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.
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.
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.
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.
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.
> 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.
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.
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?
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 :-)
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.