PCF8575 एक 16-बिट I/O विस्तारक है जो I2C इंटरफ़ेस के माध्यम से एक माइक्रोकंट्रोलर के साथ संचार करता है। यह आपको अपने Arduino पर इनपुट/आउटपुट पिन की संख्या का विस्तार करने की अनुमति देता है, जिससे यह कई सेंसर, बटन या एलईडी की आवश्यकता वाली परियोजनाओं के लिए एकदम सही है। यह ट्यूटोरियल आपको Arduino के साथ PCF8575 को जोड़ने और उपयोग करने के माध्यम से मार्गदर्शन करेगा।
आपको क्या चाहिए
- PCF8575 I/O विस्तारक मॉड्यूल
- Arduino बोर्ड (जैसे, UNO, मेगा, नैनो)
- परीक्षण के लिए सेंसर, बटन, या एलईडी
- ब्रेडबोर्ड और जम्पर तार
- Arduino IDE के साथ एक कंप्यूटर स्थापित
चरण 1: PCF8575 मॉड्यूल को समझना
PCF8575 16 अतिरिक्त GPIO पिन प्रदान करता है जिसे इनपुट या आउटपुट के रूप में कॉन्फ़िगर किया जा सकता है। यह I2C प्रोटोकॉल के माध्यम से संचार करता है और एक ही बस में कई मॉड्यूल को जोड़ने के लिए एक समायोज्य I2C पता है।
पिनआउट करना
| नत्थी करना | समारोह |
|---|---|
| वीसीसी | बिजली की आपूर्ति (3.3V/5V) |
| Gnd | मैदान |
| एसएडीए | I2C डेटा लाइन |
| आयोग | I2C क्लॉक लाइन |
| P0-P15 | सामान्य प्रयोजन I/O पिन |
I2C पता कॉन्फ़िगरेशन
- I2C पता A0, A1 और A2 पिन द्वारा निर्धारित किया जाता है:
- GND के लिए सभी पिन:
0x20(डिफ़ॉल्ट पता) - VCC के लिए सभी पिन:
0x27
- GND के लिए सभी पिन:
चरण 2: Arduino को PCF8575 को वायरिंग करें
यहां बताया गया है कि PCF8575 को Arduino से कैसे कनेक्ट किया जाए:
| PCF8575 पिन | अर्डुइनो पिन |
|---|---|
| वीसीसी | 5V |
| Gnd | Gnd |
| एसएडीए | ए 4 (एसडीए) |
| आयोग | ए 5 (एससीएल) |
अपने परिधीयों (जैसे, एलईडी या बटन) को P0-P15 पिन से कनेक्ट करें।
टिप्पणी: अन्य Arduino बोर्डों के लिए, सुनिश्चित करें कि आप सही I2C पिन का उपयोग करें।
चरण 3: आवश्यक पुस्तकालय स्थापित करें
PCF8575 के साथ काम करने के लिए, "PCF8575" लाइब्रेरी स्थापित करें।
स्थापित करने के लिए कदम:
- Arduino ide खोलें।
- जाओ स्केच > पुस्तकालय शामिल करें > पुस्तकालयों का प्रबंधन करें.
- "PCF8575" के लिए खोजें और क्लिक करें स्थापित करना.
चरण 4: कोड अपलोड करें
उदाहरण: एलईडी को नियंत्रित करना
यह कोड दर्शाता है कि PCF8575 का उपयोग करके एलईडी को कैसे चालू और बंद किया जाए:
#include <Wire.h>
#include <PCF8575.h>
PCF8575 pcf8575(0x20); // Initialize with the default I2C address
void setup() {
Serial.begin(9600);
// Set all pins as outputs
for (int i = 0; i < 16; i++) {
pcf8575.pinMode(i, OUTPUT);
}
Serial.println("PCF8575 initialized.");
}
void loop() {
// Turn all LEDs on
for (int i = 0; i < 16; i++) {
pcf8575.digitalWrite(i, HIGH);
}
delay(1000);
// Turn all LEDs off
for (int i = 0; i < 16; i++) {
pcf8575.digitalWrite(i, LOW);
}
delay(1000);
}
उदाहरण: बटन पढ़ना
यह कोड दर्शाता है कि PCF8575 से जुड़े बटन से इनपुट कैसे पढ़ें:
#include <Wire.h>
#include <PCF8575.h>
PCF8575 pcf8575(0x20); // Initialize with the default I2C address
void setup() {
Serial.begin(9600);
// Set all pins as inputs
for (int i = 0; i < 16; i++) {
pcf8575.pinMode(i, INPUT);
}
Serial.println("PCF8575 initialized.");
}
void loop() {
for (int i = 0; i < 16; i++) {
int state = pcf8575.digitalRead(i);
Serial.print("Pin ");
Serial.print(i);
Serial.print(": ");
Serial.println(state);
}
delay(500);
}
चरण 5: सेटअप का परीक्षण करें
- USB के माध्यम से अपने कंप्यूटर से Arduino कनेक्ट करें।
- Arduino ide खोलें और सही का चयन करें तख़्ता और पत्तन नीचे औजार मेनू।
- क्लिक करके Arduino पर कोड अपलोड करें अपलोड करना.
- एलईडी उदाहरण के लिए, एल ई डी को चालू और बंद करने का निरीक्षण करें। बटन उदाहरण के लिए, मॉनिटर बटन सीरियल मॉनिटर में बताता है।
PCF8575 के अनुप्रयोग
- Arduino परियोजनाओं के लिए GPIO पिन का विस्तार
- बिल्डिंग कॉम्प्लेक्स एलईडी मैट्रिसेस
- कई सेंसर या बटन सरणियों को पढ़ना
- रिले और एक्ट्यूएटर्स को नियंत्रित करना
समस्या निवारण
- मॉड्यूल से कोई प्रतिक्रिया नहीं: I2C कनेक्शन और पता कॉन्फ़िगरेशन को सत्यापित करें।
- असंगत रीडिंग: I2C लाइनों के लिए एक स्थिर बिजली की आपूर्ति और उचित पुल-अप प्रतिरोधों को सुनिश्चित करें।
- गलत पिन व्यवहार: कोड में डबल-चेक पिन मोड (इनपुट/आउटपुट)।
निष्कर्ष
आपने Arduino के साथ PCF8575 I/o विस्तारक को सफलतापूर्वक इंटरफ्रेंस किया है, जिससे आप 16 अतिरिक्त GPIO पिन से नियंत्रित या पढ़ सकते हैं। विभिन्न बाह्य उपकरणों के साथ प्रयोग करें और इस बहुमुखी मॉड्यूल के साथ अपनी परियोजनाओं का विस्तार करें!





2 सूचना
Hallo Bruce,
benutze das Library von Renzo Mischianti (kannste nach googlen uind dort auch runterladen) und benenne den Folder in “PCF8575” um. Das Repository von Rob Tillaart hat andere Befehle und passt nicht zu dem o.g. Beispiel.
Ich hoffe das bringt dich weiter.
Gruß
Jochen
I copy the code and get a coplilation error:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino: In function ‘void setup()’:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino:11:13: error: ‘class PCF8575’ has no member named ‘pinMode’
pcf8575.pinMode(i, INPUT);
^~~~~~~
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino: In function ‘void loop()’:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino:19:25: error: ‘class PCF8575’ has no member named ‘digitalRead’
int state = pcf8575.digitalRead(i);
^~~~~~~~~~~
exit status 1
Compilation error: ‘class PCF8575’ has no member named ‘pinMode’