فهرست مطالب:

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) استفاده آسان سریع

کتابخانه برای استفاده از IC icc pcf8591 با آردوینو و esp8266.

این IC می تواند (تا 4) ورودی آنالوگ و/یا 1 خروجی آنالوگ مانند اندازه گیری ولتاژ ، مقدار ترمیستور را بخواند یا یک led را محو کند.

می تواند مقدار آنالوگ را بخواند و مقدار آنالوگ را فقط با 2 سیم (برای ESP-01 مناسب است) بنویسد.

من سعی می کنم استفاده از این IC را با حداقل مجموعه عملکرد ساده کنم.

می توانید نسخه به روز شده را در سایت من پیدا کنید

مرحله 1: نحوه عملکرد I2c

نحوه کار I2c
نحوه کار I2c

I2C با دو سیم SDA (خط داده) و SCL (خط ساعت) کار می کند.

هر دو این خطوط تخلیه باز هستند ، اما با مقاومت کشیده می شوند.

معمولاً یک استاد و یک یا چند برده در خط وجود دارد ، اگرچه ممکن است چندین استاد وجود داشته باشد ، اما بعداً در مورد آن صحبت خواهیم کرد.

هر دو ارباب و بردگان می توانند داده ها را ارسال یا دریافت کنند ، بنابراین یک دستگاه می تواند در یکی از این چهار حالت باشد: ارسال اصلی ، دریافت اصلی ، ارسال برده ، دریافت برده.

گام 2:

کتابخانه من را اینجا می توانید پیدا کنید.

بارگذاری.

روی دکمه DOWNLOADS در گوشه بالا سمت راست کلیک کنید ، نام پوشه فشرده نشده را PCF8591 تغییر دهید.

بررسی کنید که پوشه PCF8591 حاوی PCF8591.cpp و PCF8591.h باشد.

پوشه کتابخانه PCF8591 را در پوشه / libraries / خود قرار دهید.

در صورتی که اولین کتابخانه شما باشد ، باید پوشه فرعی کتابخانه ها را ایجاد کنید.

IDE را راه اندازی مجدد کنید.

مرحله 3: استفاده

سازنده: باید آدرس i2c را وارد کنید (برای بررسی آدرس از این راهنمای I2cScanner استفاده کنید)

PCF8591 (آدرس uint8_t) ؛

برای esp8266 اگر می خواهید پین SDA e SCL را مشخص کنید از این استفاده کنید:

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 ana = 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: if microcontrollerReferenceVoltage false این مقدار را بگیرید دستور زیر هستند:

void voltageWrite (مقدار شناور ، میکروکنترلر boolReferenceVoltage = true ، float referenceVoltage = 5.0) ؛

float voltageRead (uint8_t analogPin ، bool microcontrollerReferenceVoltage = true ، float referenceVoltage = 5.0) ؛

یک مثال این است:

pcf8591.voltageWrite (2.7) ؛ // خروجی 2.7 ولت

تاخیر (3000) ؛

float ana0V = pcf8591.voltageRead (AIN0) ؛ // خواندن ولتاژ از آنالوگ 0

Serial.println (ana0V) ؛

مرحله 8: نمونه نمودار اتصال

مثالها نمودار اتصال
مثالها نمودار اتصال

مرحله 9: با تشکر

سری پروژه i2c (مجموعه):

  • سنسور رطوبت دما
  • گسترش دهنده آنالوگ
  • گسترش دهنده دیجیتال
  • صفحه نمایش ال سی دی

توصیه شده: