ich habe einen IR Sensor der bekommt 5V zum Arbeiten, sendet dann über sein TX Pin 3.3V .
Ich habe einen Pegelwandler gekauft , um das Signal für den Arduino Nano hochzuziehen auf 5V , ich betreibe den Sensor indem ich vor der Arduino Nano Schutzdiode die echten 5V vom USB Hub abgreife, die System Spannung nach der Diode (Pin Header +5V liefert nur 4.7V) Was zu wenig ist.
Schließe ich den Arduino wie im Bild an, sinkt die Systemspannung wieder auf 4.8V aber nur wenn ich den Pin 10 am TXD Ausgang anschließe, scheinbar ist die Last zu hoch ? Ich empfange bei 9600 Baud nur daten-müll, aber nur wenn ich pin 11 auch anschließe.
Es funktioniert einfach nicht, ich würde mich freuen wenn mich da jemand technisch belehren könnte, welche Fehler ich hier gerade mache.
Vielen Dank für Hinwiese
Karsten aus Berlin
Der primitive Sketch soll nur übertragen, funktioniert, auch der Sensor funktioniert, sendet über sein USB Serial Extrakabel alles was man sehen wollte.
#include <SoftwareSerial.h>
#define RX_PIN 10 // RX-Pin von SoftwareSerial
#define TX_PIN 11 // TX-Pin von SoftwareSerial
Ein MAX3232 ist kein 3,3V <-> 5V Pegelwandler. Das ist ein TTL (3,3V bis 5V) zu RS232 Wandler. Der liefert laut Datenblatt ein Signal von +/- 13V mit bis zu 60mA auf der RS232 TX Seite (High 13V, Low -13V). Er erwartet auf der RS232 RX Seite auch ein Signal von mindestens +/- 5V (High +5V, Low -5V).
Auf dem Bild sieht es so aus, als ob die RS232 Seite am Arduino auf die TTL Ein-/Ausgänge gelegt wurden. Damit ergibt sich quasi ein Kurzschluss über die internen Schutzdioden des Arduino mit bis zu 60mA. Mit etwas Pech ist die Belastung zu und die jeweiligen Eingänge sind jetzt defekt.
Ok Danke, da fehlt mir scheinbar die technische Grundlage, das heißt er Pegel't nur von 5V auf 3V also umgekehrt als gedacht, ist der nicht bidirektional ?
ich würde mich freuen wenn mich da jemand technisch belehren könnte,
welche Fehler ich hier gerade mache.
Denselben Fehler, den Du immer machst: Rumwursteln, ohne Dich mit den Grundlagen zu befassen. Wie schon im anderen Thread verlinkt, als Du noch Kahnsoft-Karsten warst:
Der MAX3232 enthält einen Spannungswandler mit umgeschalteten Kondensatoren, die machen aus der einfachen Versorgungsspannung (ungeregelt) die doppelte und doppelte negative Spannung, also theoretisch aus 3,3V +/-6,6V und aus 5V +/-10V. Tatsächlich sind die kleiner und brechen bei Belastung noch zusammen.
Der Sensor wird über sein Programmierkabel so eingestellt das er keine Spannung sondern ein 3.3V Out Pegel liefert UART Konform.
Den Pegelwandler habe ich rausgeworfen, ich werde morgen versuchen mit einem
Mosfet Verstärker Transistor das TXD Signal hochziehen, 2N3904
Das Signal ist sehr leistungsschwach, und wird unter Last sofort runtergezogen, der Arduino hat ja schaltbare Pull Down Wiederstände an den Eingängen, kann sein das die Pins am Header relativ viel Strom ziehen ?
Eigentlich sollten die internen Widerstände der Pins off sein bei Default ?
Danke für die Hinweise, Es ist gesichert das der Sensor CS- mit 5V arbeitet und am TXD 3.3 V abgibt.
Es funktioniert einfach nicht, ich würde mich freuen wenn mich da jemand
technisch belehren könnte, welche Fehler ich hier gerade mache.
Du erwartest, dass nach dem Einstecken alles funktioniert. Versuche es einmal mit systematischer Fehlersuche und setzt geeignete Messtechnik ein. Nimm ein Oszi, fast egal wie primitiv. Damit prüfst du die Signale, bevor du alles verbindest und dann geht es weiter. Dazu musst du dir vorher überlegen, was du erwartest und kannst das dann mit deinen Messungen vergleichen.
Eigentlich sollten die internen Widerstände der Pins off sein bei
Default ?
Schau ins Datenblatt
Don't feed the Troll!
Der Troll bist Du, hast keinen Punkt technischer Aspekte liefe4rn können defarmieren ist dein sinnlose Hobby,
Es funktioniert jetzt , ich musste Pin2 Statt Pin 10 nehmen warum auch immer, alles läuft ohne Pegelwandler ! Der Nanao sieht das Signal am Stift 2
Via Softwareserial, danke allen für die Aufwendige Hilfe, warum der Stift nun eine rolle spiele bleibt unklar, Stift 10 funktioniert unter TTL Bedingungen, scheinbar nicht unter Softwareserial bei low input.
Grüße aus Berlin
Karsten
Und was sagen die vier Byte aus DB AA AA 04 (gelegentlich auch DA oder DC)?
Sind das die erwarteten Daten?
Und gibt es zu dem Sensor auch ein ordentliches Datenblatt, in dem auch die Programmiermöglichkeiten beschreiben sind?
Das PDF vom Hersteller hat irgendein Werbegrafiker gebastelt, der keine Ahnung hat, was die Kunden brauchen.
Oder sind die Angaben streng geheim und nur gegen Unterzeichnung eines "Non-disclosure agreement" zu bekommen?
Und was sagen die vier Byte aus DB AA AA 04 (gelegentlich auch DA oder
DC)?
Sind das die erwarteten Daten?
Und gibt es zu dem Sensor auch ein ordentliches Datenblatt, in dem auch
die Programmiermöglichkeiten beschreiben sind?
Das PDF vom Hersteller hat irgendein Werbegrafiker gebastelt, der keine
Ahnung hat, was die Kunden brauchen.
Oder sind die Angaben streng geheim und nur gegen Unterzeichnung eines
"Non-disclosure agreement" zu bekommen?
AA AA sind die beiden Synchronisation Bytes , danach folgen zwei Daten Bytes. Nicht ganz easy auszuwerten, denn das Softwareserial gibt auch Fehler Daten so alle 2 Minuten die man abfangen muss.
Ist ein 1€ China Klon Nano, hoffe der neue vom Hersteller (19€) läuft besser da höhere Bootloader und höhere Lib Versionen möglich sind bin da bei 1.8.6
AA AA sind die beiden Synchronisation Bytes , danach folgen zwei Daten
Bytes. Nicht ganz easy auszuwerten, denn das Softwareserial gibt auch
Fehler Daten so alle 2 Minuten die man abfangen muss.
Ist ein 1€ China Klon Nano, hoffe der neue vom Hersteller (19€) läuft
besser da höhere Bootloader und höhere Lib Versionen möglich sind bin da
bei 1.8.6
so sieht ein etwas vernünftigeres Datenblatt aus. Aber die verschiedenen Schnittstellenprogrammierungen sind nicht sehr deutlich.
Es gibt also neben dem analogen Ausgang entweder einen USB-Anschluss (bidirektional oder unidirektional, letzteres ist für USB unüblich). Das steht auf Seite 20.
Und dann den seriellen Anschluss. Auf Seite 24 steht, wie man die Programmiersoftware CompactConnect in Betrieb nimmt, um das einzuschalten.
Auf S.25-26 folgt endlich die Beschreibung der digitalen Schnittstelle.
9.5 Kommunikationseinstellungen und
10. Digitaler Befehlssatz
da gibt es auch einen bidirektionalen oder unidirektionalen Modus
Auf Seite 10 steht die wichtigste Information in der Fußnote 3:
"Invertiertes RS232-Signal, TTL, 9,6 kBaud" (laut S.25 umstellbar auf 115,2 kBaud) also genau das was z.B. ein Arduino als "serielles TTL-Signal" erwartet.
Der invertierende Pegelwandler wird nur für einen PC mit RS232-Anschluss benötigt. Oder man für ein RS232/USB-Wandlerkabel am PC, dann ist der Pegelwandler auch nötig, eher wegen der Invertierung, die Logikpegel sind meistens flexibel. Der ist auf Seite 40 beschrieben, vorgeschlagen der MAX3381E, dem MAX3232 sehr ähnlich.
das Projekt ist nun fertig, es gab einige hürden, aber am Ende läuft alles wie erwartet, das ganze habe ich für Reproduktionszwecke als Video hochgeladen, wo alle Schwerpunkte erklärt sind.
(Pegelwandler war nicht nötig, bei spannungsabgriff, vor der Arduino Schutzdiode, sonnst hat man durch deren Spannungsabfall 0.4V zu wenig Spannung für den Sensor, und pin 10 geht nicht für SoftwareSerial Interface da an diesem Pin der interne Timer mit einwirkt, daher PIN 2 , nun reicht das 3.3V Signal um den Arduino Pin2 durchzusteuern).