اجازه دهید باهم توابع I2C پایتونی را بررسی کنیم که مکرراً برای ارتباط I2C روی رزبریپای به کار رفته است.
هنگام توسعهی برنامه برای ارتباط I2C با رزبریپای در پایتون، از پکیج کتابخانهی SMBus استفاده کنید که پشتیبانی قدرتمندی برای دسترسی به دستگاههای I2C فراهم میکند. بنابراین، باید با استفاده از برنامهی مدیریت پکیجهای SMBus ،apt را برای پایتون اضافه کنیم.
sudo apt-get install python-smbus
توابع پایتون برای I2C
Import SMBus
- برای دسترسی به گذرگاه I2C رزبریپای، با استفاده از ماژول SMBus پایتون، ماژول SMBus را به صورت زیر وارد میکنیم.
import smbus
- برای دسترسی به توابع پایتون I2C، یک شی از کلاس SMBus ایجاد کنید.
<Object name> = smbus.SMBus(I2C port no.)
.I2C port no: شماره پورت I2C، یعنی ۰ یا ۱.
مثال:
Bus = smbus.SMBus(1)
اکنون میتوان با شی Bus به کلاس SMBus دسترسی داشت.
Bus.write_byte_data(Device Address, Register Address, Value)
- این تابع برای نوشتن داده در رجیستر مورد نیاز به کار میرود.
Device Address: آدرس ۷ یا ۱۰ بیتی دستگاه.
Register Address: آدرس رجیستری که باید در آن داده نوشت.
Value: مقداری که باید برای نوشتن در رجیستر ارسال شود.
مثال:
write_byte_data(0x68, 0x01, 0x07)
Bus.write_i2c_block_data(Device Address, Register Address, [value1, value2,….])
- این تابع برای نوشتن یک بلوک ۳۲ بایتی استفاده میشود.
Device Address: آدرس ۷ یا ۱۰ بیتی دستگاه.
Register Address: آدرس رجیستری که باید در آن داده نوشت.
… Value 1 Value2: یک بلوک داده که باید در آدرس مورد نظر نوشته شود.
مثال:
write_i2c_block_data(0x68, 0x00, [0, 1, 2, 3, 4, 5]) # write 6 bytes of data from 0 address.
Bus.read_byte_data(Device Address, Register Address)
- این تابع برای خواندن بایت داده از رجیستر مورد نظر به کار میرود.
Device Address: آدرس ۷ یا ۱۰ بیتی دستگاه.
Register Address: آدرس رجیستری که باید داده از آن خوانده شود.
مثال:
read_byte_data (0x68, 0x01)
Bus.read_i2c_block_data(Device Address, Register Address, block of bytes)
- این تابع برای خواندن یک بلوک ۳۲ بایتی داده به کار میرود.
Device Address: آدرس ۷ یا ۱۰ بیتی دستگاه.
Register Address: آدرس رجیستری که باید داده از آن خوانده شود.
مثال:
read_i2c_block_data(0x68, 0x00, 8) # returnvalue is a list of 6 bytes
منبع: ترجمه از سایت electronicwings.com
امیدواریم این آموزش کوتاه توابع I2C پایتون برای رزبریپای برایتان مفید واقع شده باشه. لطفا کامنت یادتون نره.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.