فهرست مطالب:
- مرحله 1: برخی دستورات پوسته
- مرحله 2: مورد اول: دستگاه های I2c آدرس یکسانی دارند
- مرحله 3: مورد 2: آدرس های مختلف I2c
تصویری: Raspberry PI Multile I2C Devices: 3 Step
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
ناامید شده اید زیرا نمی توانید از چندین دستگاه از دستگاه های I2C یکسان در پروژه خود استفاده کنید. نیازی به استفاده از مولتی پلکسرهای کند نیست. جدیدترین هسته raspbian از ایجاد چندین اتوبوس I2C با استفاده از پین های GPIO پشتیبانی می کند. این راه حل فوق سریع است.
مرحله 1: برخی دستورات پوسته
یکی از دستگاه های i2c خود را در حالی که رزبری پای شما از آن متصل شده است ، raspberry pi خود را راه اندازی کرده و اجرا کنید
sudo i2cdetect -y 1
شما یک جدول مانند شکل ضمیمه مشاهده خواهید کرد. من یک سنسور دما و فشار فشارسنج BMP280 وصل کرده ام. آدرس i2c طبق جدول 0x76 است. به این آدرس توجه کنید.
این کار را برای همه دستگاه های i2c انجام دهید.
مرحله 2: مورد اول: دستگاه های I2c آدرس یکسانی دارند
این همیشه مورد مشکل ساز بود. یک گذرگاه i2c می تواند چندین دستگاه را اداره کند ، اما باید آدرس i2c متفاوتی داشته باشند. برخی از دستگاههای i2c برای تنظیم آدرسهای دیگر i2c دارای jumper هستند ، اما بسیاری دیگر ندارند. در این حالت شما می توانید از یک نرم افزار i2c (سخت افزار) برای چرخاندن i2c SDA (Data) و SCL (Clock) استفاده کنید یا می توانید یک گذرگاه i2c یا بیشتر ایجاد کنید.
من دو اتوبوس اضافی ایجاد می کنم ، nl bus 3 و 4
cli را باز کرده و اجرا کنید
سی دی /بوت
sudo nano config.txt
خط زیر را ترجیحاً در قسمتی که spi و i2c فعال است اضافه کنید.
dtoverlay = i2c-gpio ، bus = 4 ، i2c_gpio_delay_us = 1 ، i2c_gpio_sda = 23 ، i2c_gpio_scl = 24
این خط یک گذرگاه i2c اضافی (گذرگاه 4) در GPIO 23 به عنوان SDA و GPIO 24 به عنوان SCL ایجاد می کند (GPIO 23 و 24 به طور پیش فرض)
خط زیر را نیز برای ایجاد گذرگاه i2c 3 اضافه کنید
dtoverlay = i2c-gpio ، bus = 3 ، i2c_gpio_delay_us = 1 ، i2c_gpio_sda = 17 ، i2c_gpio_scl = 27
GPIO 17 SDA و GPIO 27 SCL برای گذرگاه i2c 4 خواهد بود.
برای خروج روی کنترل X ضربه بزنید.
توجه به شماره گذرگاه و ترتیب:
هرگز از گذرگاه 0 و 2 استفاده نکنید ، برای موارد دیگر در برد مانند eprom روی کلاه و غیره استفاده می شود
برای انتشار raspbian آوریل 2019:
شما همیشه باید از بالاترین گذرگاه (در این مورد گذرگاه 4) در config.txt خود شروع کرده و به پایین ترین اتوبوس (گذرگاه 3) بروید.
پایین ترین اتوبوس همیشه باید اتوبوس 3 باشد
اگر به 5 اتوبوس اضافی نیاز دارید ، اتوبوس ها باید به ترتیب 7 ، 6 ، 5 ، 4 ، 3
وقتی این دستورالعمل در اصل نوشته شد ، این مشکل در سفارش اتوبوس وجود نداشت. به نظر می رسد تغییراتی در هسته ایجاد شده است.
PI خود را خاموش کنید ، آن را تغییر دهید. دستگاه های i2c خود را به گذرگاه 4 (SDA به GPIO 23 و SCL به GPIO 24) و دستگاه دیگر را به گذرگاه i2c 3 (SDA به GPIO 17 و SCL به GPIO 27) وصل کنید.
pi را روشن کنید.
اجرا کن:
sudo i2cdetect -l (حروف کوچک L)
اکنون خواهید دید که گذرگاه i2c 3 و 4 نیز فهرست شده است. همچنین اجرا کنید:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
اکنون می توانید از سنسور خود در زبان برنامه نویسی خود استفاده کنید. به یاد داشته باشید که گذرگاه های صحیح i2c را مشخص کنید.
ضمیمه نمونه ای برای سنسور محبوب دما و فشار BMP280 است. هیچ مالتی پلکسری نمی تواند 2 BMP280 را با این سرعت بخواند.
نمونه ای از 2 سنسور Sensirion SDP 810 نیز ضمیمه شده است. باز هم بسیار سریعتر از مولتی پلکسری که در گذشته استفاده می کردم
من کد پایتون را برای خواندن دو BMP388 جدید از adafruit ایجاد کردم.
همچنین ممکن است در آینده سنسورهای دیگری را به https://github.com/JJSlabbert/Raspberry_PI_i2C_conficts اضافه کنم
مرحله 3: مورد 2: آدرس های مختلف I2c
ساده. i2c یک اتوبوس است. یک اتوبوس برای برقراری ارتباط با چندین دستگاه است. دستگاهها را به موازات همان گذرگاه i2c متصل کنید. می توانید از اتوبوس یک استفاده کنید.
اجرا کن:
sudo i2cdetect -y 1
دستگاه های ذکر شده را مشاهده خواهید کرد.
توصیه شده:
Micro: bit MU Vision Sensor for Beginners - I2C and Shape Card Recognition: 8 Step
Micro: bit MU Vision Sensor for Beginners - I2C و Shape Card تشخیص: من یک سنسور دید MU را برای Micro: bit در دست گرفته ام. به نظر می رسد این یک ابزار جالب است که به من امکان می دهد بسیاری از پروژه های مختلف مبتنی بر چشم انداز را بسازم. متأسفانه به نظر نمی رسد راهنمای زیادی برای آن وجود داشته باشد و در حالی که مستندات واقعاً
نمایشگر LCD I2C / IIC - استفاده از LCD SPI به صفحه LCD I2C با استفاده از ماژول SPI تا IIC با آردوینو: 5 مرحله
نمایشگر LCD I2C / IIC | استفاده از LCD SPI برای نمایشگر LCD I2C با استفاده از ماژول SPI به IIC با آردوینو: سلام بچه ها از آنجایی که یک SPI LCD 1602 معمولی سیم های زیادی برای اتصال دارد ، بنابراین اتصال آن با آردوینو بسیار مشکل است ، اما یک ماژول در بازار موجود است که می تواند صفحه نمایش SPI را به صفحه IIC تبدیل کنید ، بنابراین فقط باید 4 سیم را وصل کنید
نمایشگر LCD I2C / IIC - LCD SPI را به صفحه LCD I2C تبدیل کنید: 5 مرحله
نمایشگر LCD I2C / IIC | تبدیل یک LCD SPI به صفحه LCD I2C: استفاده از صفحه نمایش spi LCD به اتصالات زیادی احتیاج دارد که انجام آن بسیار دشوار است ، ماژولی را پیدا کردم که می تواند LCD i2c را به spi LCD تبدیل کند ، بنابراین بیایید شروع کنیم
آداپتور LCD I2c شخصیت (مثال اتصال I2c): 12 مرحله (همراه با تصاویر)
Character LCD I2c Adapter (مثال اتصال I2c): من یک طرح اتصال برای یک آداپتور نمایش کاراکتر i2c انجام می دهم. به روزرسانی های سایت من را بررسی کنید. حالا من یک الگوی اتصال سیم کشی اضافه می کنم تا از کتابخانه اصلی استفاده کنم ، نه کتابخانه من. برای نمایش LCD های کاراکتر ، پروژه چنگال
TCA9548A I2C Multiplexer Module - With Arduino and NodeMCU: 11 Step
ماژول چند منظوره TCA9548A I2C - با Arduino و NodeMCU: آیا تا به حال در موقعیتی قرار گرفته اید که مجبور شوید دو ، سه یا چند سنسور I2C را به آردوینو خود وصل کنید فقط برای اینکه متوجه شوید سنسورها دارای آدرس I2C ثابت یا یکسان هستند. علاوه بر این ، نمی توانید دو دستگاه با آدرس یکسان در SDA یکسان داشته باشید