فهرست مطالب:
- مرحله 1: نحوه عملکرد I2c
- گام 2:
- مرحله 3: استفاده
- مرحله 4: مقدار را بخوانید
- مرحله 5: Vale را از کانال بخوانید
- مرحله 6: مقدار را بنویسید
- مرحله 7: ویژگی های اضافی
- مرحله 8: نمونه نمودار اتصال
- مرحله 9: با تشکر
تصویری: PCF8591 (i2c Analog I/O Expander) استفاده آسان سریع: 9 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
کتابخانه برای استفاده از IC icc pcf8591 با آردوینو و esp8266.
این IC می تواند (تا 4) ورودی آنالوگ و/یا 1 خروجی آنالوگ مانند اندازه گیری ولتاژ ، مقدار ترمیستور را بخواند یا یک led را محو کند.
می تواند مقدار آنالوگ را بخواند و مقدار آنالوگ را فقط با 2 سیم (برای ESP-01 مناسب است) بنویسد.
من سعی می کنم استفاده از این IC را با حداقل مجموعه عملکرد ساده کنم.
می توانید نسخه به روز شده را در سایت من پیدا کنید
مرحله 1: نحوه عملکرد 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 (مجموعه):
- سنسور رطوبت دما
- گسترش دهنده آنالوگ
- گسترش دهنده دیجیتال
- صفحه نمایش ال سی دی
توصیه شده:
DHT12 (سنسور رطوبت و دما ارزان i2c) ، استفاده سریع آسان: 14 مرحله
DHT12 (سنسور دما و رطوبت ارزان i2c) ، استفاده سریع آسان: می توانید به روز رسانی و سایر موارد را در سایت من پیدا کنید https://www.mischianti.org/2019/01/01/dht12-library-fa/. من حسگر آن را دوست دارم می توان با 2 سیم (پروتکل i2c) استفاده کرد ، اما من ارزان قیمت را دوست دارم. این کتابخانه Arduino و esp8266 برای سری DHT12 است
مولد پالس سریع موج مربع سریع: 4 مرحله
مولد پالس سریع موج سریع: ژنراتور پالس سریع لبه - ژنراتور پالس فوق سریع موج مربع این مدار ساده ، با استفاده از 74HC14N (شش اینورتر TTL با سرعت حرکت پایین) قادر به تولید سیگنال موج مربعی تا 10 مگاهرتز است. ایده آل برای برخی از آزمایش های الکترونیکی. با پوسیدگی
DIY MusiLED ، LED های هماهنگ موسیقی با یک کلیک Windows & Linux برنامه (32 بیتی و 64 بیتی). بازآفرینی آسان ، استفاده آسان ، حمل آسان: 3 مرحله
DIY MusiLED ، LED های هماهنگ موسیقی با یک کلیک Windows & Linux برنامه (32 بیتی و 64 بیتی). آسان برای ایجاد مجدد ، آسان برای استفاده ، آسان برای انتقال: این پروژه به شما کمک می کند تا 18 LED (6 قرمز + 6 آبی + 6 زرد) را به برد Arduino خود متصل کرده و سیگنال های زمان واقعی کارت صدا رایانه خود را تجزیه و تحلیل کرده و آنها را به چراغ های LED برای روشن کردن آنها مطابق با جلوه های ضرب (Snare ، High Hat ، Kick)
نحوه انجام یک حالت سریع آتش سریع (تنها چیزی که نیاز دارید یک پیچ گوشتی است): 10 مرحله
چگونه می توان یک Mod Rapid Fire را به صورت رایگان انجام داد (تنها چیزی که شما نیاز دارید یک پیچ گوشتی است): امروز من به شما آموزش می دهم که چگونه یک مد آتش سریع روی یک xbox Supplies بسازید: یک پیچ گوشتی torx T8 با یک حفره امنیتی یا می توانید از یک کوچک استفاده کنید سر صاف این بار من از Titan Torx t8 با حفره امنیتی استفاده می کنم که می توان آن را در Autozone خریداری کرد
نورپردازی سریع ، سریع ، ارزان ، زیبا و با کیفیت LED اتاق (برای هر کسی): 5 مرحله (همراه با تصاویر)
سریع ، سریع ، ارزان ، با نورپردازی خوب LED (برای هر کسی): به همه خوش آمدید :-) این اولین دستورالعمل من است بنابراین نظرات خوش آمدید :-) آنچه امیدوارم به شما نشان دهم نحوه ایجاد روشنایی سریع LED است TINY buget. آنچه شما نیاز دارید: CableLEDsResistors (510 اهم برای 12 ولت) منگنه ها آهن لحیم کاری کاترها و سایر پایه ها