Բովանդակություն:

Ազնվամորի PI բազմակի I2C սարքեր `3 քայլ
Ազնվամորի PI բազմակի I2C սարքեր `3 քայլ
Anonim
Ազնվամորի PI բազմակի I2C սարքեր
Ազնվամորի PI բազմակի I2C սարքեր
Ազնվամորի PI բազմակի I2C սարքեր
Ազնվամորի PI բազմակի I2C սարքեր

Վրդովված, քանի որ ձեր նախագծում չեք կարող օգտագործել նույն I2C սարքերի բազմապատիկը: Անհրաժեշտ չէ դանդաղ մուլտիպլեքսեր օգտագործել: Վերջին raspbian միջուկը աջակցում է GPIO կապում օգտագործվող բազմաթիվ I2C ավտոբուսների ստեղծմանը: Այս լուծումը շատ արագ է:

Քայլ 1: Որոշ Shell հրահանգներ

Որոշ Shell հրահանգներ
Որոշ Shell հրահանգներ

Միացրեք ձեր i2c սարքերից մեկը, քանի դեռ ձեր ազնվամորու pi- ն է, սկսեք ձեր ազնվամորի pi- ն և աշխատեք

sudo i2cdetect -y 1

Կտեսնեք աղյուսակ, ինչպես կցված նկարում: Ես կցել եմ BMP280 ջերմաստիճանի և բարոմետրիկ ճնշման տվիչ: Ըստ աղյուսակի i2c հասցեն 0x76 է: Նշեք այս հասցեն:

Դա արեք ձեր բոլոր i2c սարքերի համար:

Քայլ 2: Առաջին դեպք. I2c սարքերն ունեն նույն հասցեն

Առաջին դեպք. I2c սարքերն ունեն նույն հասցեն
Առաջին դեպք. I2c սարքերն ունեն նույն հասցեն

Սա միշտ եղել է խնդրահարույց դեպքը: I2c ավտոբուսը կարող է կարգավորել բազմաթիվ սարքեր, սակայն դրանք պետք է ունենան տարբեր i2c հասցեներ: Որոշ i2c սարքեր ունեն jumpers ՝ այլ i2c հասցեներ սահմանելու համար, բայց շատերը ՝ ոչ: Այս դեպքում կարող եք օգտագործել i2c մուլտիպլեքսեր (սարքավորում) i2c SDA (Տվյալներ) և SCL (ockամացույց) պտտելու համար կամ կարող եք ստեղծել լրացուցիչ i2c ավտոբուս կամ ավելի:

Ես կստեղծեմ երկու լրացուցիչ ավտոբուս ՝ 3 -րդ և 4 -րդ ավտոբուսներ

Բացեք cli- ն և վազեք

cd /boot

sudo nano config.txt

Ավելացրեք հետևյալ տողի ծածկագիրը, նախընտրելի է այն հատվածում, որտեղ spi և i2c միացված են:

dtoverlay = i2c-gpio, ավտոբուս = 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, ավտոբուս = 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 ավտոբուսները, այն օգտագործվում է տախտակի այլ իրերի համար, օրինակ ՝ գլխարկներ գլխարկների վրա և այլն

2019 -ի ապրիլյան raspbian թողարկման համար.

Դուք միշտ պետք է սկսեք ամենաբարձր ավտոբուսից (այս դեպքում ՝ Ավտոբուս 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 BMP280s:

Կից է նաև 2 Sensirion SDP 810 տվիչների օրինակ: Կրկին շատ ավելի արագ աշխատելով, քան նախկինում օգտագործած մուլտիպլեքսերը

Ես ստեղծեցի պիթոնի ծածկագիր ՝ adafruit- ից երկու նոր BMP388- ներ կարդալու համար:

Հետագայում կարող եմ նաև այլ սենսորներ ավելացնել

Քայլ 3: Գործ 2: Տարբեր I2c հասցեներ:

Պարզ. i2c- ը ավտոբուս է: Ավտոբուսների տարածքը պետք է շփվի բազմաթիվ սարքերի հետ: Միացրեք նույն i2c ավտոբուսին զուգահեռ սարքերը: Դուք կարող եք օգտվել ավտոբուսից մեկից:

Գործարկել:

sudo i2cdetect -y 1

Դուք կտեսնեք թվարկված սարքերը:

Խորհուրդ ենք տալիս: