Beiträge von Ordoban

    Für einen Datenaustausch stehen beim Raspberry ne ganze Menge Möglichkeiten zur Verfügung. Welche Du später verwenden kannst hängt nicht nur vom Raspberry, sondern hauptsächlich von dem (noch unbekannten) zweiten Gerät ab. Wenn Du 2 Raspberrys miteinander verbinden willst dann hast Du die freie Auswahl.

    Mir fallen dazu diese Möglichkeiten ein:
    - RS232-Verbindung (Auch für Kommunikation mit älteren PC's und Microcontrollern)
    - I2C-Bus (Auch für Kommunikation mit Microcontrollern und diversen anderen Sensor/Aktor-IC's)
    - Ethernet/Wlan (Auch für Kommunikation mit PC's und Smartphones)
    - GPIO mit Morsecode :D (Auch für Kommunikation mit PC's, Microcontrollern und SPS'en)
    - über diverse USB-Zusatzhardware (Auch für Kommunikation mit PC's und Smartphones)

    Soweit ich weiß läuft Modbus immer im Halbduplex Modus, auch wenn physikalisch Sende und Empfangskanäle getrennt sind und damit Vollduplex möglich wäre.

    Der Master fragt und wartet auf die Antwort vom Slave. Kommt die Antwort oder die maximale Antwortzeit ist um, dann das ganze für den nächsten Job. Master und Slave senden also nie gleichzeitig.

    Ich kenne die modbus library nicht und weiß auch nicht wie die mit dem Echo der eigenen Telegramme zurechtkommt. Du solltest vielleicht mal den Bus belauschen um herauszufinden ob denn der Slave überhaupt antwortet.

    Man sollte eigendlich erstmal fragen was Wuitgili genau messen will, und wie die Anforderungen sind.
    Fakt ist, daß eine exakte Messung der Wirkenergie bei Wechselstrom gar nicht so einfach ist. Nicht umsonst sind auch heute noch mechanische Stromzähler weit verbreitet.

    Mal ne blöde Frage: liefert ein Fahrraddynamo nicht Wechselstrom ? :s
    (Zumindest alle Dynamos die ich kenne tun das !)
    Da wirste mit einem Gleichstrom-A/D-Wandler nicht weit kommen...

    Einen Gleichrichter davor zu schalten wird sehr ungenau. Gleichrichter vernichten je nach Schaltung und Diodentyp 0,3-1,4V. Wenn das konstant wäre dann könnte man das ja wegrechnen, aber die Schleusenspannung ist Temperatur und Stromabhängig.

    Bei der Berechnung der Leistung ist bei Wechselstrom auch noch die Phasenverschiebung zu berücksichtigen.

    Ganz übel wird es wenn du "komische" Lasten wie elektronische Geräte oder Gleichstrommotoren an dem Dynamo hängen hast. Die ziehen den Strom nicht gleichmäßig sondern pulsierend. Je nachdem ob du gerade auf dem Puls oder dazwischen misst, bekommst du sehr hohe oder sehr niedrige Werte. Stimmen tun beide nicht :geek:

    Schon an die Elektrolyse gedacht?
    Weiß jetzt ja nicht wie sich das auf den Dünger auswirkt. :rolleyes:

    Elekrolyse bei ein paar µA ?
    Wenn du schon so anfängst dann solltest du dir auch Gedanken über Stoff-Eintrag über Korrosion und Abrasion an Pümpchen, Ventilen und Leitungen machen.

    Sind deine Flaschen durchsichtig, und darf dein Dünger mit Licht in Kontakt kommen ? Dann könntest du auch über Lichtschranken nachdenken.

    Eine weitere Möglichkeit wäre eine Messung über Perlrohr. Siehe Wikipedia. Dafür bräuchtest du allerdings eine kleine Menge Druckluft/Stickstoff und eine relativ empfindliche Druckmessung.


    und wenn man am Ende vom Program eine Warteschleife einbaut mit Tastaturabfrage ? ob man dann was sieht ?


    Klar könnte man das. Man könnte das Beispielprogramm auch mit ner GUI ausstatten. Das wäre aber beides nicht die Antwort auf die Fragen von Max. Wichtig ist erstmal daß er die Zusammenhänge zwischen Quellcode und ausführbarer Datei versteht.

    Das was du mit dem Notepad++ unter Windows geschrieben hast nennt sich "Quelltext".
    Wie der Name schon sagt ist es nur ein Text, mit dem ein Computer erstmal nichts anfangen kann.
    Damit sich das ändert musst du diesen Quelltext mit einem Compiler in eine ausführbare Datei umwandeln. Notepad++ ist kein Compiler sondern ein (sehr guter) Texteditor. Unter Windows nennt man ausführbare Dateien .exe, unter Linux ist man nicht an Dateiendungen gebunden.

    So funktioniert das umwandeln von Quelltext in ausführbare Datei
    Zuerst kopieren wir die Quelldatei "hello.c" vom Stick in das Home-Verzeichnis.
    Danach starten wir eine Console.
    Zur Sicherheit schauen wir mal nach ob die Quelldatei auch wirklich hier ist. Das geht mit dem Befehl ls.

    Code
    stefan@stefan-P55A-UD4 ~ $ ls
    Bilder     hello.c     PlayOnLinux's virtual drives  Videos
    Dokumente  Musik       Programme                     Vorlagen
    Downloads  Öffentlich  Schreibtisch                  wine-1.7.17
    stefan@stefan-P55A-UD4 ~ $

    (hier zu sehen ist ein Linux Mint auf dem PC. Das ganze funktioniert auf dem PI aber genauso.)
    Nun compilieren wir die hello.c

    Code
    gcc hello.c


    Wenn wir keinen Namen für die "exe"-Datei angeben dann wird die a.out genannt.
    Das gucken wir uns mit ls an:

    Code
    stefan@stefan-P55A-UD4 ~ $ ls
    a.out      Downloads  Öffentlich                    Schreibtisch  wine-1.7.17
    Bilder     hello.c    PlayOnLinux's virtual drives  Videos
    Dokumente  Musik      Programme                     Vorlagen
    stefan@stefan-P55A-UD4 ~ $


    Juhu, da isse! Nun können wir diese Datei mit ./a.out starten.

    Code
    stefan@stefan-P55A-UD4 ~ $ ./a.out 
    Hello World
    stefan@stefan-P55A-UD4 ~ $


    Natürlich kannst du die Datei auch auf dem Desktop per Doppelklick starten. Allerdings wirst du dann von dem "Hello World" nicht viel sehen.

    Ja, es ist nicht möglich. Bei deinem Link steht das auch dabei.

    Zitat

    Das Kabel erfordert einen Laptop mit HDMI-Ausgang, der sich auf ein analoges Signal umstellen lässt. Eine Verbindung zwischen VGA und dem normalen, also digitalen HDMI, ist nicht möglich.


    Und genau diese Umschaltung auf ein analoges Signal kann die PI nicht

    zu 1)
    Sieht so schon mal nicht schlecht aus.

    Ich würde noch von der Katode der Z-Diode einen Widerstand auf + machen, damit du dort stabile 2,5V krigst. Den Spannungsteiler R30/R31 würd ich weglassen. Der verfälscht in dem Fall das Ergebnis. Das Verhältnis der Widerstände R29/R33 solltest du auch noch ändern. 10/1 ergibt einen Verstärkungsfaktor 11. Die Formel ist 1+(R29/R33). Ein paar Bedenken habe ich auch noch wegen den C3, der wird dafür sorgen daß die Schaltung hochfrequente Störungen am Sensor stark verstärkt.

    zu 2)
    Die Versorgungsspannung ist relativ egal. Sie sollte nur die Grenzen des verwendeten OPV nicht über/unterschreiten. Typische Grenzwerte sind hier 3V min und 30V max.

    Es ist ein Key pro Benutzer. Wenn ein Benutzer von mehreren Orten aus zugreifen können soll, dann muss er entweder den Key mit sich rumschleppen (z.B. auf nem USB-Stick) oder auf alle Rechner kopieren.

    Genau das macht diese Methode sicherer als das bloße Login per Passwort:
    Man braucht Passwort und Keyfile zum Login.

    Du kannst auch R3 gegen 4,7K austauschen.
    Damit ergibt sich ein Verstärkungsfaktor von 3,1 und damit eine Ausgangsspannung von max 10,3V
    Formel für den Verstärkungsfaktor ist R3+R2 / R3.

    Die Schaltung die Kai gepostet hat, hat übrigens eine Schwachstelle: die kommt nicht ganz bis auf 0V runter. Dazu müsste an U- nicht GND sondern eine negative Versorgungsspannung anliegen. Wer das ganz genau wissen möchte sollte das Datenblatt des benutzten OPV lesen. (oder den Apotheker fragen :lol:)


    Meinst Du wirklich die C-Compiler sind so schlecht? Mehr als 20-50 würde ich nicht vermuten.


    In die 1000 fach hab ich weniger an die Unterschiede zwischen Assembler und C gedacht als an den Overhead vom Betriebssystem. Schließlich wird bei jedem Byte was du schreibst erstmal das BS aufgerufen, zigmal Parameter auf den Stack geworfen, wieder runter geholt und was weiß ich nicht noch alles.

    Ich muss dazu aber zugeben daß ich von den internas von Linux nicht die geringste Ahnung habe. Das wiringPi-Benchmark im Link von Bjoern lässt vermuten daß der Overhead doch nicht so groß ist. Mit gemessenen 7 Mhz kommt man auf 50 CPU-Takte pro GPIO-Schreibvorgang (bei 700mhz CPU-Takt).
    Bei dem nativen C-Benchmark sinds 20 Mhz, das wären dann 17 CPU-Takte. Gar nicht schlecht, auch wenns genaugenommen immer noch 16 zuviel sind ;)

    Vielen Dank an Bjoern, MMI und Orb. Meine Neugierde zu dem Thema ist erstmal gestillt ;)

    Mit "direkt" meine ich ein Arbeiten mit der Hardware, so wie man es bei Microcontrollern macht.
    Dabei werden die Zwischenschritte von Dateisystem, Kernel und Kernelmodulen umgangen.
    Man würde zwar die Hardwareunabhängigkeit verlieren, aber einen enormen Performanceschub bekommen. Ich schätze mal daß da Leistungssteigerungen bis zum 1000-fachen möglich sind.

    Vom PC ist man es gewohnt mit dem Betiebssystem und Treibern zu arbeiten weil man sein Programm nicht auf eine bestimmte Hardware festlegen möchte.

    Bei der RasPI ist das anders. Da ist die eingebaute Hardware immer gleich. Da könnte man sein Programm durch direktes Arbeiten mit der Hardware optimieren. Die GPIO's sind ein Anwendungsfall wo das schon Sinn machen würde. Schließlich erfordert die eigendliche Ein/Ausgabe nur einen einzigen Assembler-Befehl.

    Ich Frage das übrigens nur aus reiner Neugierde. Ich hab noch kein konkretes Projekt bei dem ich GPIO's nutzen könnte. Ich bau derartige Sachen immer mit Microcontrollern.

    Welche Spannung hast du am [font="Tahoma, Verdana, Arial, sans-serif"]GPIO22 bei gedrücktem und bei losgelassenem Taster ?[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Gedrückt sollte 0V und losgelassen 3,3V sein. Wenn ja dann ist der GPIO defekt.[/font]
    Sollte beides 0V sein dann ist der Stromkreis über den Pullup irgendwo unterbrochen.
    Sollte beides 3,3V sein dann ist der Stromkreis über den Taster unterbrochen. Vielleicht Taster kaputt ?
    Sollten die Werte dazwischen liegen dann ist da Hexerei im Spiel. In diesem Fall ist ein Exorzist hinzuzuziehen.

    [font="Tahoma, Verdana, Arial, sans-serif"]Wie hast du denn die Widerstände gemessen ? Während sie in der Schaltung eingebaut sind ? Dann misst du nämlich den Rest der Schaltung mit.[/font]

    [font="Tahoma, Verdana, Arial, sans-serif"]Die Höhe des Widerstandes ist so ziemlich unwichtig solange die Spannungen stimmen.[/font]


    wenn keiner die 35A will fliessen sie auch nicht, du hättest Recht wenn einer ohne weitere Sicherung einen Kurzschluß baut.

    Ach so war das gemeint. Ich hatte verstanden, daß da jemand nen 35A Verbraucher dran hängen hätte :stumm:

    Das mit der Sicherung ist klar, als gelernter Elektroniker sollte ich sowas wissen.

    ich sehe 2 mögliche Ursachen für die Unterschiedlichen Ströme:

    1. Unterschiedliche Messungenauigkeiten (wie von Fliegenhals beschrieben)
    D.h. bei 200mA zeigt das Messgerät etwas zuviel an (aber noch innerhalb der Toleranz) und bei 20mA etwas zuwenig (aber auch innerhalb der Toleranz).

    2. Einfluss des Messgerätes auf den tatsächlich fließenden Strom. (wie von Orb beschrieben)
    Bei beiden Messbereichen hat das Messgerät einen unterschiedlichen Innenwiderstand. Dieser Innenwiderstand beeinflusst natürlich auch den fließenden Strom. Besonders bei kleinen Spannungen ist dieser Einfluss zu bemerken. Zur Kontrolle könnte man ja mal ein zweites Messgerät dazuschalten (wenn man denn eins hat).

    Ich halte die 2. Möglichkeit für wahrscheinlicher.