void loop() {
unsigned long LowVal=pulseIn(2,LOW); Serial.println(LowVal);
}
Damit sollte es doch möglich sein, im allgemeinen digitale Daten in einem Oszi-ähnlichem Programm anzuzeigen. Leider kenne ich mich mit Oszis nicht wirklich aus - daher meine Frage, ob dieser Ansatz gehen würde oder ob ich da einen Denkfehler habe. Wenn das geht, könnte man sich die Signale via seriellem Port schicken lassen und aufbereiten und könnte sich Analysen über die Soundkarte sparen.
Über Feedback würde ich mich freuen. Wenn das passt, bastel ich mal ein Stück Software dazu.
Ich vermute, das Serial.println() zu langsam ist und Du damit Werte verpasst und damit die Messung verfälscht. Weiterhin arbeitet pulseIn() leider so, das es, wenn es die erste zu messende Flanke (z.B. LOW-HIGH) verpasst, den kompletten Pulse ignoriert und erst den nächsten vollständigen Pulse verwendet, damit gehen Dir wieder Daten verloren.
pulseIn() ist gut zum Messen relativ einheitlicher Signale und Frequenzen, wo es nicht schlimm ist, wenn ein Pulse ausgelassen wird.
Naja, für den üblichen Kram, der über 433 MHz kommt, reicht die serielle mit 115200 Baud gut aus. Ansonsten könnte man sicher auch auf Ethernet gehen und ggf. einen Puffer verwenden.
Ich habe damit mein Thermometer komplett dekodieren können und bin derzeit am überlegen, wie ich das stattdessen via Interrupt mache - das wäre vielleicht auch eine Lösung für das ggf. zu langsame pulseIn()?