Spottbilliger A/D D/A Wandler für den RPi : PCF8591

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Wahrscheinlich übersehen ...

    Ne, passt so, wie Du das machst, denke ich.
    Mitloggen wirst Du vermutlich selber müssen,


    //
    EDIT:
    Ichäng mal noch eine Schaltungsskizze mit dran, wie ich die Sensoren ausgetestet habe ...

    ciao,
    -ds-

  • Spottbilliger A/D D/A Wandler für den RPi : PCF8591? Schau mal ob du hier fündig wirst!

  • Das mit den Sensoren ist mir noch nicht so ganz klar.
    Ich möchte z.B. eine Temperatursonde anschließen. Benötige ich hierzu noch ein weiteres Modul oder ist es möglich das über den AD Wandler zu machen. Ich dachte z.B. an einen "DS18B20". Wäre aber auch da offen für Alternativen


  • Das mit den Sensoren ist mir noch nicht so ganz klar.
    Ich möchte z.B. eine Temperatursonde anschließen. Benötige ich hierzu noch ein weiteres Modul oder ist es möglich das über den AD Wandler zu machen. Ich dachte z.B. an einen "DS18B20". Wäre aber auch da offen für Alternativen

    der DS18B20 hat doch seinen eigenen GPIO den für 1w auch onewire genannt.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hallo zusammen,

    ich bin auch neu auf diesem Gebiet und wage mich an das PCF5891.
    Eine Frage habe ich. Wo finde ich Datenblätter zu dem verbauten Temperatur- und Photosensor? Mir fehlt z.B. der Bezug vom analogen Wert zur Temperatur in °C.

    Vielen Dank für Antworten.
    Lapster

  • Ich finde das Teil ja deshalb interessant, weil Du Deine eigenen Sensoren anschliessen kannst und die Schaltung schon komplett vorliegt. Deshalb habe ich mir da noch gar keinen Kopf drum gemacht.
    Ist aber ne gute Frage zu der ich leider keine Antwort ausser "keine Ahnung" weiss ...
    Die Grenzwerte des Photowiderstands hatte ich mit abkleben/Halogen-Schreibtischlampe ermittelt.
    cu,
    -ds-

  • Temperatur Sensor muss selber kalibriert werden. Üblicherweise taucht man den in Eiswasser und notiert den Digitalwert für 0°C, dann taucht man den in kochendes Wasser und notiert den Digitalwert für 100°C und alles dazwischen wird interpoliert, halber 100°C Digitalwert sind dann 50°C, ein drittel 100°C Digitalwert sind dann 33°C usw.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Guten Tag,

    Ich habe mir folgeden Version des A/D Wandlers von Ebay geholt:
    Link

    Nach der Inbetriebnahme habe ich das Programm aus dem allerersten Post ausgeführt.
    Mit interessanten Ergebnissen!

    Hier die letzte Ausgabe vor Schleifenende:

    Code
    reg 40 [light] = 20 [=32]
    reg 41 [   nc] = f1 [=241]
    reg 42 [ poti] = d8 [=216]
    reg 43 [ temp] = a5 [=165]
    analog ......: = 6e [=110]


    Der Wert reg 40 (light) verändert sich überhaupt nicht. Auch nicht wenn ich mit einer Starken Taschenlampe direkt drauf leuchte.
    Der Wert reg 42 (poti) verändert sich ebenfalls nicht. Obwohl ich wie wild am Potentiometer gedreht habe.

    Hat das etwas mit der Stellung der 3 Jumper zu tuen?
    Wie kann ich sinnvolle werte auslesen?

    Ich habe den Wander wie folgt an den Pi angeschlossen:

    Zitat


    Vcc des Moduls mit Pin #1 der GPIOs
    Gnd des Moduls mit Pin #9 der GPIOs
    SDA des Moduls mit Pin #3 (GPIO2, SDA) der GPIOs
    SCL des Moduls mit Pin #5 (GPIO3, SCL) der GPIOs

  • Moin,

    hm ... das ist ein etwas anderes Modul als das, das ich damals verwendet habe.
    Auf der ebay-Seite Deines Teils ist ein Text des Versenders der in einem ... zugegebenermassen etwas gewöhnungsbedüftigen ... Kommentar was von P6 und Voltage schreibt. Das scheint ein Spannungs-Selektor zu sein ... möglicherweise muss da was umgesteckt werden.
    Aber Achtung!!! Aufpassen, dass Du da nicht mal versehentlich 5V in einen der GPIOs einspeist ...

    Ansonsten: Du bekommst keine Fehlermeldung oder ähnlich?
    Bekommst Du mit i2cdetect das Board angezeigt?

    cheers,
    -ds-

  • Moinsen ...
    WernerPI hat mich auf einen evtl. Denkfehler zu diesem AD/Wandler aufmerksam gemacht.
    Er hat durchaus recht wenn er meint, dass meine Beschreibung nicht zum Datenblatt passt und überhaupt da was nicht ganz konsistent ist. Ich wollte Euch sowohl Werners Einwand als auch seine Korrektur jedenfalls nicht vorenthalten und hoffe er hat nichts dagegen, dass ich einen Ausschnitt aus seiner PN hier mal poste:

    Zitat


    Nachdem ich mich eingelesen glaube ich, dass Du einem Denkfehler aufgesessen bist und das Prg. nur zufällig funktioniert :stumm:.
    Es gibt keine Register beim PCF8591. Es gibt ein Ctrl Wort und das wars. Ich hab mal den Code ein wenig verschlimmbessert:

    Read/Write ohne "register"

    Code
    static unsigned short pcf8591_read_value(int client)
    {
            return i2c_smbus_read_byte(client);
    }
    
    
    static int pcf8591_write_value(int client, unsigned short value)
    {
            return i2c_smbus_write_byte(client,  value);
    }

    Und das lesen - jetzt ganz einfach:

    Da das Beispiel hier im Anhang ebenfalls funktioniert rühre ich da im Moment nicht weiter dran.
    Ich werde mir das mal vornehmen, wenn ich ausreichend Zeit dafür finde und mal überarbeiten.
    Jedenfalls nochmals danke an Werner für den Hinweis.


    cheers,
    -ds-

  • Bin gerade unterwegs. 2 Anmerkungen: in meinem Bsp. sind die Eingänge um 1 verschoben, da der Chip bei jedem Zugriff die Wandlung anstößt aber den Wert der letzten Wandlung zurückgibt. Der DAC funktioniert mit der neuen Write fkt. nicht mehr. Da dort 3 Bytes (Adresse, Ctrl Wort und DAC Wert) zum Chip übertragen werden müssen. Das schau ich mir mal an wenn ich zurück bin. Mir ging es hier jetzt speziell ums auslesen....

    Werner

  • Hi.

    Ich hänge mich hier mal mit ran...

    Habe jetzt auch so ein PCF8591 bekommen.

    Angeschlossen habe ich das Ding am RP2 an Pin 1; 9; 3; 5, A0 gibt es bei mir nicht.

    Soweit auch installiert alles, denke ich. :lol:


    sudo i2cdetect -y 1 bibt mir folgendes aus:

    untitledhpzf5aigj8.png


    Jetzt fängt die Unwissenheit an ;)


    Als Ziel soll irgendwann damit Temperaturen gemessen, gespeichert und nebenbei in Echtzeit ausgegeben werden.

    Jetzt meine Fragen: Wie bekomme ich einen pt1000 (oder mehrere) an Wandler bzw. wie komme ich an die Daten und welche Software gibt mir das dann aus? FHEM? :huh:


    Ich hoffe mich kann jemand erleuchten. ;)


    MFG

  • Hi,

    mach doch bitte einen neuen Thead auf.
    Einen schon lange als erledigt markierten Thread immer wieder zu reaktivieren ist imho suboptimal.
    Der verschwindet relativ schnell wieder im Nirvana und wird auch ansonsten kaum beachtet. Ich hätte Deinen Beitrag auch fast übersehen und mittlerweile fast wieder vergessen.
    Ein sprechender Titel in diesem Subforum ... dann wird das auch was.

    Kleiner Tipp vorab: die Ausgabe des i2cdetect Deines RPi sieht nicht besonders vertrauenerweckend aus.
    Check mal, ob dieser -> devicetree <- Kram bei Dir zutrifft.
    Wir treffen uns dann im neuen Thread von Dir.

    cheers,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!