جدول المحتويات:

PCF8591 (i2c Analog I / O Expander) استخدام سريع وسهل: 9 خطوات
PCF8591 (i2c Analog I / O Expander) استخدام سريع وسهل: 9 خطوات

فيديو: PCF8591 (i2c Analog I / O Expander) استخدام سريع وسهل: 9 خطوات

فيديو: PCF8591 (i2c Analog I / O Expander) استخدام سريع وسهل: 9 خطوات
فيديو: Arduino analog port expander - pcf8591 with I2C protocol 2024, يوليو
Anonim
PCF8591 (i2c Analog I / O Expander) استخدام سريع وسهل
PCF8591 (i2c Analog I / O Expander) استخدام سريع وسهل

مكتبة لاستخدام i2c pcf8591 IC مع اردوينو و esp8266.

يمكن أن يتحكم هذا IC (حتى 4) في الإدخال التناظري و / أو خرج تناظري واحد مثل قياس الجهد أو قراءة قيمة الثرمستور أو يتلاشى الصمام.

يمكن قراءة القيمة التناظرية وكتابة القيمة التناظرية بسلكين فقط (مثالي لـ ESP-01).

أحاول تبسيط استخدام هذا IC ، مع الحد الأدنى من مجموعة العمليات.

يمكنك العثور على نسخة محدثة على موقعي

الخطوة 1: كيف يعمل I2c

كيف يعمل I2c
كيف يعمل I2c

تعمل I2C مع سلكين ، SDA (خط البيانات) و SCL (خط الساعة).

كلا الخطين عبارة عن استنزاف مفتوح ، لكن يتم سحبهما باستخدام المقاومات.

عادة ما يكون هناك سيد واحد وواحد أو عدة عبيد على المحك ، على الرغم من أنه يمكن أن يكون هناك عدة سادة ، لكننا سنتحدث عن ذلك لاحقًا.

يمكن لكل من السادة والعبيد إرسال البيانات أو استقبالها ، وبالتالي ، يمكن أن يكون الجهاز في إحدى هذه الحالات الأربع: الإرسال الرئيسي ، والاستقبال الرئيسي ، والإرسال التابع ، والاستقبال التابع.

الخطوة 2:

يمكنك أن تجد مكتبتي هنا.

للتحميل.

انقر فوق الزر DOWNLOADS في الزاوية اليمنى العليا ، وأعد تسمية المجلد غير المضغوط PCF8591.

تأكد من أن المجلد PCF8591 يحتوي على PCF8591.cpp و PCF8591.h.

ضع مجلد مكتبة PCF8591 الخاص بك / libraries / folder.

قد تحتاج إلى إنشاء مجلد فرعي للمكتبات إذا كانت مكتبتك الأولى.

أعد تشغيل IDE.

الخطوة 3: الاستخدام

المُنشئ: يجب عليك إدخال عنوان i2c (للتحقق من العنوان ، استخدم هذا الدليل I2cScanner)

PCF8591 (عنوان uint8_t) ؛

بالنسبة لـ esp8266 ، إذا كنت تريد تحديد SDA e SCL pin ، فاستخدم هذا:

PCF8591 (عنوان uint8_t ، uint8_t sda ، uint8_t scl) ؛

الخطوة 4: قراءة القيمة

اقرأ القيمة
اقرأ القيمة

IC كما ترى في الصورة يحتوي على 4 مدخلات تناظرية و 1 مخرج تناظري.

لذا لقراءة كل المدخلات التناظرية في عملية انتقال واحدة يمكنك القيام بها (القيمة من 0 إلى 255):

PCF8591:: AnalogInput ai = pcf8591.analogReadAll () ؛

Serial.print (ai.ain0) ؛ Serial.print ("-") ؛ Serial.print (ai.ain1) ؛ Serial.print ("-") ؛ Serial.print (ai.ain2) ؛ Serial.print ("-") ؛ Serial.println (ai.ain3) ؛

إذا كنت تريد قراءة مدخلات أو قناة تناظرية واحدة:

int آنا = pcf8591.analogRead (AIN0) ؛ // قراءة التناظرية 0

الخطوة 5: قراءة Vale من القناة

قراءة فالى من القناة
قراءة فالى من القناة

يحتوي هذا IC على نوع متعدد من القراءة ويمكنك استخدام الإدخال التناظري أو القناة التناظرية (عند استخدام الإدخال التناظري للقراءة الفردية والقناة في الصور).

على سبيل المثال لقراءة قيمة القناة 0 في إدخالين تفاضليين ، يجب عليك القيام بذلك:

int ana = pcf8591.analogRead (CHANNEL0، TWO_DIFFERENTIAL_INPUT) ؛ // قراءة التناظرية 0

الخطوة 6: اكتب القيمة

إذا كنت تريد كتابة قيمة تمثيلية ، يجب عليك القيام بذلك (القيمة من 0 إلى 255):

pcf8591.analogWrite (128) ؛

الخطوة 7: ميزات إضافية

ميزة إضافية هي قراءة جهد الكتابة: لحساب الجهد ، يجب عليك تمرير بعض المعلمات:

  • متحكم مرجعيالجهد: احصل على الجهد من جهد متحكم دقيق (فقط AVR لا esp8266 لـ esp 3.3v ثابت)
  • ReferenceVoltage: إذا كان متحكمًا مرجعيًا Voltage false فخذ هذه القيمةالأمر هو:

كتابة الجهد الفارغ (قيمة تعويم ، وحدة تحكم دقيقة منطقية ، مرجع الجهد = صحيح ، مرجع تعويم الجهد = 5.0) ؛

قراءة الجهد العائم (uint8_t analogPin ، متحكم منطقي ، مرجع الجهد = صحيح ، مرجع تعويم الجهد = 5.0) ؛

ومن الأمثلة على ذلك:

pcf8591.voltageWrite (2.7) ؛ // 2.7Volts الإخراج

تأخير (3000) ؛

تعويم ana0V = pcf8591.voltageRead (AIN0) ؛ // قراءة الجهد من التناظرية 0

Serial.println (ana0V) ؛

الخطوة 8: أمثلة مخطط الاتصال

أمثلة مخطط الاتصال
أمثلة مخطط الاتصال

الخطوة 9: شكرا

سلسلة مشروع i2c (مجموعة):

  • مستشعر درجة الحرارة والرطوبة
  • الموسع التناظري
  • موسع رقمي
  • عرض شاشات الكريستال السائل

موصى به: