Der Sensor gibt ein UART Signal aus, dass wie folgt aufgebaut ist.
Frame Header --> Dauerhaft 0xFF
Data_H --> Füllstandshöhe des High Pegels in HEX
Data_L --> Füllstandshöhe des Low Pegels in Hex
Summe --> Setzt sich zusammen aus : (Frame Header + Data_H *Data_L)& oxFF
Ich habe die Signale mittels eines Logic analysers eingelesen und komme auch auf die entsprechenden Werte.
Ich würde gerne die Werte des High und des Low Pegels im Programm speichern und anschließend weiterverarbeiten.
Danke, der wird mit 5V betreiben also sollte das passen.
Den Ground des Sensors habe ich zusätzlich noch mit dem Arduino verbunden, habe gelesen, dass sich der Controller sich sonst zerschießen könnte.
Das mit 5 Volt kommt auf den Controller an. Es gibt auch welche mit 3,3V.
Und GND muss sein, sonst funktioniert es nicht, da die Daten nicht fließen können.
ich würde gerne das Sensor UART Signal einlesen und die Daten aus Data_h und Data_l des Signals zwischen speichern. Im Anschluss soll eine if oder besser switch case Abfrage laufen die, den Wert mit einem vor eingestelten Maximalwert vergleicht. Und dementsprechend in 25% Schritten den Inhalt eines Tanks mittels von 4 LEDS anzeigen soll.
Den Sensor an RX anzuschließen ist nicht die beste Wahl weil dadurch beim UNO die USB-Schnittstelle zum Datenaustausch und Programmierung mit dem PC nicht mehr funktioniert.
Wenn Du das Beispiel in der Bibliothek anschaust wird dort eine Sofrtwareemulation der Schnittstelle auf 2 beliebigen Pins genommen.
Leider steht beim freundlichen Chinesen kein Datenblatt beim Artikel (oder ich habe es übersehen). @middphi :
Du hast doch so ein schönes Oszi-Bild. Da sieht man die vier Bytes, die da nacheinander angelaufen kommen.
Frage 1: Wiederholt sich das Muster immer wieder?
Frage 2: Wie lang ist eines davon?
Daraus können wir die Baudraute für die serielle Schnittstelle ausrechnen.
Wenn bis zu 38400 kannst Du mit SoftwareSerial auf einem Pin die Bytes einlesen und erstmal auf dem Serial Monitor ausgeben am besten bei verschiedenen bekannten Füllständen
Dann wissen wir mehr.
Ich vermute DATA_H und _L sind High- und Low-Byte eines 16 Bit breiten Meßwerts.
Ok, da reicht der UNO aus. Solltest du deine Daten weiter schicken wollen, z.B. über WLAN, dann ist ein NodeMCU besser. Da gibt es die als ESP8266 oder ESP32.
Allerdings als Anfänger ist der UNO schon besser geeignet und umsteigen kannst du immer noch.
Na prima, dann hast du ja alles beisammen.
Auf Seite 3 stehen die wesentlichen Informationen für die SW: 9600, 8N1 und das Datenformat inkl. Checksumme.
Dann das Ding an einen Pin hängen (nicht 0 oder 1), Library SoftwareSerial installieren und loslegen. Da gibt es bestimmt ein "Echo"-Beispiel (kann ich gerade nicht prüfen). Der Pin ist dann Rx (Empfang).
Ein erster Test-Sketch wird nicht kompliziert:
Byte lesen.
Wenn 0xFF sind die nächsten beiden Data High und Low und das folgende die Checksumme.