Seite 4 von 8

Re: Windrichtung 8 Sektoren pot.-frei

Verfasst: 29.01.2021, 15:15
von hummell
sehr strange...

hab es jetzt nochmal gegen VCC geprüft... ändert sich nichts. Gleiche Ausgabe im s.M. wie vorher.
Hab den Sketch mal in die DropBox geschmissen..
https://www.dropbox.com/sh/9jxtnchdc8v8 ... OAy0a?dl=0

Re: Windrichtung 8 Sektoren pot.-frei

Verfasst: 29.01.2021, 15:51
von jp112sdl
Der Sketch sieht ok aus.
Fangen wir mal mit einer einfachen Übung, bzw einem einfachen Testsketch an:

Code: Alles auswählen

#include <PCF8574.h>


template <uint8_t ADDRESS=0x20>
class PCF8574_WindDir {
  private:
  PCF8574 pcf8574;
  public:
    PCF8574_WindDir () : pcf8574(ADDRESS) {}

    void init () {
      for (uint8_t i = 0; i < 8; i++) 
        pcf8574.pinMode(i, INPUT);
        
      pcf8574.begin();  

    }

    uint8_t winddirValue(bool asIndex = false) {
      PCF8574::DigitalInput state = pcf8574.digitalReadAll();

      if (state.p0) return asIndex ? 0 : 0;
      if (state.p1) return asIndex ? 1 : 15;
      if (state.p2) return asIndex ? 2 : 30;
      if (state.p3) return asIndex ? 3 : 45;
      if (state.p4) return asIndex ? 4 : 60;
      if (state.p5) return asIndex ? 5 : 75;
      if (state.p6) return asIndex ? 6 : 90;
      if (state.p7) return asIndex ? 7 : 105;
      return 0;
    }    
};

PCF8574_WindDir<0x20> pcf;

void setup() {
  Serial.begin(57600);
  Serial.println();
  pcf.init();
}

void loop() {
  delay(500);
  uint8_t winddir = pcf.winddirValue();
  Serial.println("winddir="+String(winddir));
}
Hier wird jetzt alle 500ms die Windrichtung ausgegeben.
Ändert sich denn hier was, wenn du die Pins mal gegen GND / VCC verbindest?

Re: Windrichtung 8 Sektoren pot.-frei

Verfasst: 29.01.2021, 16:43
von hummell
Nö,
egal ob ich gegen GND oder VCC taste... läuft so durch, ohne Änderung.
Hab grad nochmal die Spannung am PCF gemessen, aber die liegt mit 3,3V an.
Der I2C Scanner hat ihn ja auch erkannt.

Re: Windrichtung 8 Sektoren pot.-frei

Verfasst: 29.01.2021, 17:32
von jp112sdl
Dann bin ich mit meinem Latein erstmal am Ende.

Kannst ja mal einen Beispiel-Sketch aus der PCF8574 Lib probieren, ob da was gelesen wird.

Re: Windrichtung 8 Sektoren pot.-frei

Verfasst: 29.01.2021, 18:22
von hummell
Das werde ich mal probieren.
Welchen hast du den da? den mit oder ohne "A"
Es kann ja auch gut sein, das meiner defekt ist, auch wenn er neu ist...

Re: Windrichtung 8 Sektoren pot.-frei

Verfasst: 29.01.2021, 18:26
von jp112sdl
Ich hab hier den mit A, an Adresse 0x38

Aber eigentlich gibt es bis auf den Adressbereich keinen Unterschied zwischen dem mit/ohne A
https://www.ipd.kit.edu/mitarbeiter/buc ... er/i2c.htm

Re: Windrichtung 8 Sektoren pot.-frei

Verfasst: 29.01.2021, 18:33
von hummell
Hab grad drei verschiedene Sketche ausprobiert.
bei keinem passiert was.
ich bestelle mal einem mit A und melde mich wieder.

Schönes WE erstmal und Dank

Re: Windrichtung 8 Sektoren pot.-frei

Verfasst: 03.02.2021, 18:52
von hummell
Moin,
so, habe den neuen PCF bekommen.
Das gleiche wie vorher. er erkennt nichts. ich habe nochmal den i2c scanner laufen lassen: wird erkannt, auch wenn ich die Adressen ändere.
Hab auch nochmal deinen Testsketch laufen lassen. Auch nichts.
Egal ob ich gegen GND oder VCC taste.

?? Nur nochmal für meine Kontrolle:
Ich habe den MiniPro nur mit den Programmieradapter verbunden. Keine externe Spannungsversorgung.
Vom MiniPro gehe ich von VCC und GND gehe ich jeweils zum CC1101 und PFC.

Re: Windrichtung 8 Sektoren pot.-frei

Verfasst: 06.02.2021, 11:45
von hummell
Mahlzeit,
ich hatte grade in der "PCF8574_WindDir.h" gesehen, dass dort die Adresse noch auf "template <uint8_t ADDRESS=0x38>" stand.
Habe Sie auf "0x20" geändert, jedoch ändert sich immer noch nichts...
Es kann doch nicht sein, dass der neue PCF auch defekt ist.
Hast du den reinen Microprozessor oder auch so ein fertiges Teil wie ich, fertig auf Platine mit Anschlüssen?
https://www.ebay.de/itm/PCF8574-IO-Expa ... 2749.l2649

Re: Windrichtung 8 Sektoren pot.-frei

Verfasst: 06.02.2021, 11:54
von jp112sdl
hummell hat geschrieben:
06.02.2021, 11:45
dass dort die Adresse noch auf "template <uint8_t ADDRESS=0x38>" stand.
Das ist nur die Default-Einstellung, wenn man bei der Typdefinition nichts (<>) übergibt.

Hab genau so ein Breakout-Board wie du da hast.
Wobei in deinem Link die Bezeichnung PCF8574T lautet und ich nicht weiß, was das T dabei ausmacht.

Du solltest nach wie vor zunächst nicht weiter an diesem Projekt festhalten, sondern erstmal mit einem einfachen Beispiel-Sketch schauen, dass du den Status der Pins erfassen kannst.
Das hier wäre vielleicht ein Anfang
https://github.com/xreef/PCF8574_librar ... errupt.ino