Orodha ya maudhui:

Raspberry PI Vifaa vingi vya I2C: Hatua 3
Raspberry PI Vifaa vingi vya I2C: Hatua 3

Video: Raspberry PI Vifaa vingi vya I2C: Hatua 3

Video: Raspberry PI Vifaa vingi vya I2C: Hatua 3
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Julai
Anonim
Raspberry PI Vifaa vingi vya I2C
Raspberry PI Vifaa vingi vya I2C
Raspberry PI Vifaa vingi vya I2C
Raspberry PI Vifaa vingi vya I2C

Imechanganyikiwa kwa sababu huwezi kutumia anuwai ya vifaa sawa vya I2C katika mradi wako. Hakuna haja ya kutumia multiplexers polepole. Kernel ya raspbian ya hivi karibuni inasaidia kuundwa kwa mabasi mengi ya I2C kwa kutumia pini za GPIO. Suluhisho hili ni haraka sana.

Hatua ya 1: Baadhi ya ganda huja

Baadhi ya ganda huja
Baadhi ya ganda huja

Unganisha moja ya vifaa vyako vya i2c wakati pi yako ya rasipiberi iko, anzisha pi yako raspberry na uendeshe

Sura i2cdetect -y 1

Utaona meza kama vile kiambatisho. Ninaambatanisha sensorer ya shinikizo na kiwambo cha shinikizo la BMP280. Anwani ya i2c ni 0x76 kulingana na jedwali. Kumbuka anwani hii.

Fanya hivi kwa vifaa vyako vyote vya i2c.

Hatua ya 2: Kesi ya Kwanza: Vifaa vya I2c vina Anwani Sawa

Kesi ya Kwanza: Vifaa vya I2c vina Anwani Sawa
Kesi ya Kwanza: Vifaa vya I2c vina Anwani Sawa

Hii mara zote ilikuwa shida. Basi ya i2c inaweza kushughulikia vifaa vingi, lakini inapaswa kuwa na anwani tofauti za i2c. Vifaa vingine vya i2c vina kuruka kuweka anwani zingine za i2c, lakini nyingi hazina. Katika kesi hii unaweza kutumia multiplexer i2c (vifaa) kuzungusha i2c SDA (Takwimu) na SCL (Saa) au unaweza kuunda basi ya ziada ya i2c au zaidi.

Nitaunda mabasi mawili ya ziada, nl basi 3 na 4

Fungua cli na ukimbie

cd / buti

Sudo nano config.txt

Ongeza laini ifuatayo ya nambari, ikiwezekana katika sehemu ambayo spi na i2c imewezeshwa.

dtoverlay = i2c-gpio, basi = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24

Mstari huu utaunda basi ya ziada ya i2c (basi 4) kwenye GPIO 23 kama SDA na GPIO 24 kama SCL (GPIO 23 na 24 ni chaguo-msingi)

Pia ongeza laini ifuatayo kuunda i2c basi 3

dtoverlay = i2c-gpio, basi = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27

GPIO 17 itakuwa SDA na GPIO 27 itakuwa SCL ya i2c basi 4.

Udhibiti wa bomba X ili kutoka.

Kumbuka juu ya Kuhesabiwa kwa Basi na kuagiza:

Kamwe usitumie basi 0 na 2, ni matumizi ya vitu vingine kwenye bodi kama eprom kwenye kofia n.k.

Kwa kutolewa kwa raspbian Aprili 2019:

Unapaswa kuanza kila wakati na basi ya juu zaidi (Basi 4 katika kesi hii) kwenye config.txt yako na ufanye kazi hadi basi ya chini kabisa (basi 3).

Basi ya chini kabisa lazima iwe basi 3

Ikiwa unahitaji mabasi 5 ya ziada, basi lazima ziwe kwa mpangilio wa 7, 6, 5, 4, 3

Suala hili juu ya agizo la basi halikuwepo wakati Agizo hili liliandikwa hapo awali. Inaonekana kama mabadiliko yalifanywa kwa punje.

Zima PI yako, ibadilishe. Unganisha vifaa vyako vya i2c kwenye basi 4 (SDA hadi GPIO 23 na SCL hadi GPIO 24) na nyingine kwa i2c basi 3 (SDA hadi GPIO 17 na SCL hadi GPIO 27).

Washa pi.

Endesha:

sudo i2cdetect -l (Uchunguzi wa chini L)

Sasa utaona kuwa i2c basi 3 na 4 pia imeorodheshwa. Endesha pia:

sudo i2cdetect -y 3

Sura ya i2cdetect -y 4

Sasa unaweza kutumia sensorer yako katika lugha yako ya programu. Kumbuka kutaja mabasi sahihi ya i2c.

Ambatisha ni mfano kwa sensorer maarufu ya Joto na Shinikizo la BMP280. Hakuna multiplexer anayeweza kusoma 2 BMP280s haraka sana.

Mfano wa sensorer 2 Sensirion SDP 810 pia inaambatanishwa. Tena kufanya kazi kwa kasi zaidi kuliko multiplexer niliyotumia zamani

Niliunda nambari ya chatu kusoma BMP388 mbili mpya kutoka kwa matunda.

Ninaweza pia kuongeza sensorer zingine siku zijazo kwa

Hatua ya 3: Uchunguzi 2: Anwani tofauti za I2c

Rahisi. i2c ni basi. Kusudi la basi ni kuwasiliana na vifaa anuwai. Unganisha vifaa sawa na basi ile ile ya i2c. Unaweza kutumia basi moja.

Endesha:

Sura i2cdetect -y 1

Utaona vifaa vilivyoorodheshwa.

Ilipendekeza: