تاسو خامخا د PCF8574 IC، یو چپ چې په جلا توګه پیرود کیدی شي یا دمخه د ډیری نورو په څیر په ماډل کې ایښودل شوی بریښنایی برخې ستاسو د اردوینو بورډ سره ستاسو ادغام اسانوي. پدې حالت کې ، دا د وسیلو او محصولاتو لپاره غزونکی دی د I2C بس.
تاسو ممکن فکر وکړئ چې اردوینو لا دمخه خپل لري مدغم I2C بس، او دا ریښتیا دي. مګر PCF8574 کولی شي دا بس ستاسو د پراختیایی بورډ له حد څخه هاخوا وغځوي ، کوم چې د ځینې جوړونکو لپاره خورا لوی مرسته کیدی شي څوک چې د هغه څه څخه ډیر څه ته اړتیا لري چې اریډوو چمتو کوي.
I2C بس څه شی دی؟
د I2C نوم راځي د یوځای کولو سرکټ یا یو له بل سره متحد شوي سرکټونه. د دې نسخه 1.0 په 1992 کې د فیلیپس لخوا رامینځته شوی. بیا به دوهم 2.1 په 2000 کې راشي او نن ورځ دا یو معیاري شو (په 100 kbit / s کې ، پداسې حال کې چې دا د 3.4 Mbit / s پورې اعظمي ته اجازه ورکوي) کله چې پیټینټ په 2006 کې پای ته رسیدلی او په آزاده توګه کارول کیدی شي.
اوس مهال دا په صنعت کې په پراخه کچه کارول کیږي د مخابراتو لپاره، او همدارنګه د جوړونکو لخوا د دوی د پروژو لپاره خورا ستاینه شوې چې د مختلفو مایکرو کنټرولرانو او په یوه آی سي کې مدغم پیرودونکي خبرو اترو لپاره.
El I2C یو بس دی له سریال مخابراتو څخه ښه پیژندل شوی. دا یوازې دوه چینلونو سره د همغږۍ مواصلاتو پروتوکول کاروي (دریم شتون لري ، مګر دا د حوالې یا GND سره جوړیږي) ، په حقیقت کې دا د TWI (دوه تار انٹرفیس) په نوم هم پیژندل کیږي:
- یو د ساعت لپاره (SCL).
- نور د معلوماتو لپاره (SDA).
دا پدې مانا ده چې ماسټر او غلام دوی ورته ورته کیبل یا ټریک ډاټا لیږي ، کوم چې د لومړي چا لخوا کنټرول کیږي چې د ساعت سګنل رامینځته کوي. د I2C بس سره وصل هرې پیروونکي وسیلې به د لیږد لارښود کولو لپاره یو ځانګړی پته ټاکل شوی وي. مګر دا لازمي ندي چې ماسټر تل ورته (څو ماسټر) وي ، دا تل هغه څوک دی چې لیږد پیل کوي.
لکه څنګه چې ما دمخه په مقاله کې تشریح کړی اردوینو I2C ما دمخه حواله کړې ، هر بورډ په مختلف ځایونو کې دا I2C اړیکې لري. دا یو څه دی چې تاسو یې باید په پام کې ونیسئ ترڅو د پلیټ هرې نسخې کې د دې د سم کارولو وړ اوسئ:
- Arduino UNO: SDA په A4 کې دی او په A5 کې SCK
- اردوینو نانو: د تیر په څیر ورته.
- اردوینو مینی پرو: ورته.
- اردوینو میګا: SDA په 20 کې په 21 او SCK په XNUMX کې دی.
- د پلیټونو په اړه نور معلومات.
تاسو دمخه پوهیږئ چې تاسو کولی شئ په اسانۍ سره د خپلو ساکچونو لپاره I2C وکاروئ ، له هغه وخته چې Wire.h کتابتون د دې سریال مواصلاتو لپاره مختلف فعالیتونو سره:
- پيل كيدل؛ شروع كيدل: او چنېدل، راوتل (): د تار کتابتون پیل کړئ او مشخص کړئ چې دا ماسټر یا غلام دی
- غوښتنه له () څخه: د غلام څخه د معلوماتو غوښتنه کولو لپاره د ماسټر لخوا کارول شوی.
- د پیل ټرانسمیشن (): د غلام سره لیږد پیل کړئ.
- پای ټرانسمیشن ()د پای لیږد.
- ولیکئ ()- د ماسټر غوښتنې په ځواب کې د غلام څخه ډاټا ولیکئ ، یا تاسو کولی شئ د ماسټر لیږد قطار کړئ.
- موجود (): د لوستلو لپاره به د بایوټونو شمیر راشي.
- لوستل (): یوه بنده یوه غلام څخه لیږدونکي ته ماسټر ته یا په مقابل کې لوستل.
- ترلاسه کول (): یو فنکشن بولي کله چې یو غلام د ماسټر څخه لیږد ترلاسه کوي.
- په غوښتنه (): فنکشن غوښتنه کوي کله چې یو غلام د ماسټر څخه ډاټا غوښتنه کوي.
لپاره نور معلومات د اردوینو برنامې او دندو په اړه تاسو کولی شئ زموږ ډاونلوډ کړئ د پی ډی ایف لارښود.
PCF8574 څه شی دی؟
د PCF8574 دی د I2C بس ډیجیټل ننوتنې او پایلې (I / O) پراخوي. دا د مختلف تولید کونکو لخوا رامینځته کیدی شي ، سربیره پردې دا په ICs او ماډلونو کې شتون لري. په هر حالت کې ، دا خورا عملي دی چې دا ستاسو د اردوینو بورډ سره وصل کړئ او د مور بورډ اجازه ورکولو په پرتله د ډیرو وسیلو کنټرول ظرفیت ولرئ.
El د PCF8574 پنیټ دا ساده دی ، ځکه چې پدې کې یوازې شامل دي د 8 صفونه نیمه لارښود (P0-P7 چیرې چې د خبرو اترو لپاره چپس وصل شوي دي) ، او له بلې خوا تاسو SDA او SCL لرئ چې تاسو باید د اردوینو بورډ سره وصل شئ ، همدا رنګه VCC او GND هم د انډول بریښنا کولو لپاره. او د درې مخاطب پنونو A0، A1، A2 مه هیروئ چې غوره کړئ چې کوم وسیلې ته د اړیکې لارښود شوی ...
مالکیت نورې ب .ې چې تاسو باید پوه شئ:
- د دې ارتباطات ، یو خلاص نالی دی ، کیدی شي دواړه د ننوتلو او پایلو په توګه کارول کیږي.
- La اوسنی چوکۍ دا 25mA دی کله چې دا د محصول په توګه عمل کوي (ډوب ، کله چې د PCF8574 په لور روان وي) او 300 µA (سرچینه ، د PCF8574 څخه اوسنی جریان).
- La رنځ د بریښنا رسونې 2.5 او 6v دي. د موقف لخوا مصرف خورا ټیټ دی ، یوازې 10 µA.
- ټولې وتل لیچونه لری، د بهرنیو اقداماتو اړتیا پرته د دولت ساتلو لپاره. تاسو باید یوازې هغه وخت عمل وکړئ کله چې تاسو غواړئ ریاست بدل کړئ.
- تاسو کولی شئ 8 ترلاسه کړئ احتمالي لارښوونې ، دا ، تر 8 وسایلو پورې اړیکه ونیسئ یا د 8 موډلونو کارولو لپاره دا د 64 وسیلو پورې پراخه کړئ. پتې (د A0 ، A1 ، A2 پنونه) به وي:
- 000: پته 0x20
- 001: پته 0x21
- 010: پته 0x22
- 011: پته 0x23
- 100: پته 0x24
- 101: پته 0x25
- 110: پته 0x26
- 111: پته 0x27
- اعتراف کوي مداخله (INT) د ځانګړي کرښې په واسطه د دوامداره څارنې پرته د معلوماتو کشف کولو لپاره.
د اردوینو سره یوځای کیدل
د اردوینو سره اړیکه خورا اسانه ده ، تاسو باید د Vrc د Ardino بورډ 5v پن سره وصل کړئ ، او GND د Ardino GND سره. له بلې خوا ، د PCF8574 SDA او SCL انډولونه پنونه کیدی شي د پنونو سره ونښلوئ 14 (A5 SCL) او 15 (A4 SDA). یوازې د دې سره به دا کار پیل شي ، په څرګنده توګه تاسو کولی شئ Px وکاروئ هغه وسیلې چې تاسو یې غواړئ اړیکه ونیسئ وصل کړئ ...
بیا به دا یوازې ورک شي د مثال سکیچ سره پیل کړئ په اردینو IDE کې. تاسو دا د اضافي کتابتون کارولو پرته ترسره کولی شئ لکه د مثال په توګه ...
#include <Wire.h> const int address = 0x38; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { for (short channel = 0; channel < 8; channel++) { // Escribir dato en cada uno de los 8 canales Wire.beginTransmission(address); Wire.write(~(1 << channel)); Wire.endTransmission(); // Lee dato del canal delay(500); } }
د ننوتلو په توګه:
#include <Wire.h> const int address = 0x38; void setup() { Wire.begin(); Serial.begin(9600); } void loop() { short channel = 1; byte value = 0; // Leer el dato del canal Wire.requestFrom(pcfAddress, 1 << channel); if (Wire.available()) { value = Wire.read(); } Wire.endTransmission(); // Mostrar el valor leido por el monitor serie Serial.println(value); }
یا هم کتابتونونه وکاروئ، لکه PCF8574 چې تاسو یې کولی شئ دلته کښته کول او دې ته ورته کوډ وکاروئ د مثال څخه پخپله چې د دې کتابتون سره راځي:
#include <Wire.h> #include "PCF8574.h" PCF8574 expander; void setup() { Serial.begin(9600); expander.begin(0x20); /* Setup some PCF8574 pins for demo */ expander.pinMode(0, OUTPUT); expander.pinMode(1, OUTPUT); expander.pinMode(2, OUTPUT); expander.pinMode(3, INPUT_PULLUP); /* Blink hardware LED for debug */ digitalWrite(13, HIGH); /* Toggle PCF8574 output 0 for demo */ expander.toggle(); /* Blink hardware LED for debug */ digitalWrite(13, LOW); } void loop() { }
لومړی د تبصره کولو لپاره وئ