Hallo zusammen,
ich möchte an einem PCF8575 eine LED an und ausschalten.
Leider funktioniert das nicht und ich bin langsam etwas ratlos.
In vielen Beispiel- Sketche, sehe ich auch die Verwendung von den Befehlen:
pinMode
analoWrite
digitalWrite
Diese 3 Befehle kann ich nicht verwenden, da dann bei der Sketch- Überprüfung der Fehler.. kommt:
Compilation error: 'class PCF8575' has no member named 'digitalWrite'
Anbei der Sketch:
#include <Wire.h>
#include <PCF8575.h> // (https://github.com/RobTillaart/PCF8575)
PCF8575 PCF(0x20);
void setup() {
Serial.begin(115200);
while (!Serial) {
delay(100);
}
delay(2000);
Wire.begin();
//PCF.pinMode(16, OUTPUT); => Befehl pinMode fürt zu Sketch- Error, da Befehl nicht bekannt
// B PCF8575
if (!PCF.begin())
Serial.print("### PCF8575 nicht initialisiert ");
else
Serial.print("### PCF8575 initialisiert ");
if (!PCF.isConnected())
Serial.println("=> und nicht connected");
else
Serial.println("=> und connected!!");
// E PCF8575
}
void loop() {
PCF.write(16, HIGH);
Serial.println("an");
delay(1000);
PCF.write(16, LOW);
Serial.println("aus");
delay(1000);
}
Der PCF8575 wird erkannt und ist auch connected.
Betriebsspannung: 3,3V
Kann mir da evtl. jemand weiterhelfen?
Gruß
Falke07
fony
May 27, 2024, 10:14am
2
Falke07:
PCF.write(16, HIGH);
Da ist was falsch
pcf8575.digitalWrite(16, HIGH);
Immer in die Beispiele schauen
Sehe da ist mehr falsch versuch mall
/*
Blink led on PIN0
by Mischianti Renzo <http://www.mischianti.org>
https://www.mischianti.org/2019/01/02/pcf8575-i2c-digital-i-o-expander-fast-easy-usage/
*/
#include "Arduino.h"
#include "PCF8575.h"
// Set i2c address
PCF8575 pcf8575(0x20);
void setup()
{
Serial.begin(115200);
// Set pinMode to OUTPUT
pcf8575.pinMode(P0, OUTPUT);
pcf8575.begin();
}
void loop()
{
pcf8575.digitalWrite(P0, HIGH);
delay(1000);
pcf8575.digitalWrite(P0, LOW);
delay(1000);
}
wenn du wirklich diese Lib verwendest:
bool setAddress(const uint8_t deviceAddress);
uint8_t getAddress();
uint16_t read16();
uint8_t read(uint8_t pin);
uint16_t value();
void write16(const uint16_t value);
void write(const uint8_t pin, const uint8_t value);
uint16_t valueOut();
// added 0.1.07/08 Septillion
uint16_t readButton16();
uint16_t readButton16(const uint16_t mask);
uint8_t readButton(const uint8_t pin);
void setButtonMask(uint16_t mask);
uint16_t getButtonMask();
dann musst du dich schon an deren Interface halten.
Und dann ist das .write() und nicht digitalWrite()
Aber der Hinweis einen Blick auf die mitgelieferten Beispiele zu werfen - das ist immer gut.
Falke07:
Betriebsspannung: 3,3V
Was für einen Controller verwendest du ?
fony
May 27, 2024, 11:05am
5
Ist Beispiel aus der Lieb
/*
Blink led on PIN0
by Mischianti Renzo <http://www.mischianti.org>
https://www.mischianti.org/2019/01/02/pcf8575-i2c-digital-i-o-expander-fast-easy-usage/
*/
#include "Arduino.h"
#include "PCF8575.h"
// Set i2c address
PCF8575 pcf8575(0x20);
void setup()
{
Serial.begin(115200);
// Set pinMode to OUTPUT
pcf8575.pinMode(P0, OUTPUT);
This file has been truncated. show original
Also es gibt mehrere Bibliotheken !
Hallo,
ok, aufgrund der Antworten, habe ich eine andere Lib verwendet. In deren Beispiel war dann auch pinMode, digitalWrite definiert und somit konnte das Problem gelöst werden.
Somit ein Dankeschön an alle für die schnelle Lösung.
Gruß
Falke07
Wäre doch schön, wenn du auch Fragen beantwortest.
Ha, kein Thema,
Und dann:
Ja und hier lag das Problem. Lib vom einen, Example vom anderen => das hat logischer weiße nicht gepasst. (Anfängerfehler)
system
Closed
November 23, 2024, 2:36pm
11
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.