Përmbajtje:

Raspberry PI Multiple I2C Pajisjet: 3 Hapa
Raspberry PI Multiple I2C Pajisjet: 3 Hapa

Video: Raspberry PI Multiple I2C Pajisjet: 3 Hapa

Video: Raspberry PI Multiple I2C Pajisjet: 3 Hapa
Video: SKR 1.4 - I2C BlinkM 2024, Nëntor
Anonim
Pajisje të Shumëfishta I2C me mjedër PI
Pajisje të Shumëfishta I2C me mjedër PI
Pajisje të Shumëfishta I2C me mjedër PI
Pajisje të Shumëfishta I2C me mjedër PI

I frustruar sepse nuk mund të përdorni shumëfish të të njëjtave pajisje I2C në projektin tuaj. Nuk ka nevojë të përdorni multiplexerë të ngadaltë. Kerneli i fundit raspbian mbështet krijimin e autobusëve të shumtë I2C duke përdorur kunjat GPIO. Kjo zgjidhje është super e shpejtë.

Hapi 1: Disa komandat e guaskës

Disa Komandat e Shell
Disa Komandat e Shell

Lidhni një nga pajisjet tuaja i2c ndërsa pi juaj e mjedrës është, filloni pi piun tuaj të mjedrës dhe vraponi

sudo i2cdetect -y 1

Do të shihni një tabelë si në figurën bashkëngjitur. Unë kam bashkangjitur një temperaturë BMP280 dhe një sensor presioni barometrik. Adresa i2c është 0x76 sipas tabelës. Vini re këtë adresë.

Bëni këtë për të gjitha pajisjet tuaja i2c.

Hapi 2: Rasti i Parë: Pajisjet I2c kanë të njëjtën adresë

Rasti i Parë: Pajisjet I2c kanë të njëjtën adresë
Rasti i Parë: Pajisjet I2c kanë të njëjtën adresë

Ky ishte gjithmonë rasti problematik. Një autobus i2c mund të trajtojë pajisje të shumta, por ato duhet të kenë adresa të ndryshme i2c. Disa pajisje i2c kanë kërcyes për të vendosur adresa të tjera i2c, por shumë jo. Në këtë rast mund të përdorni një multiplexer i2c (pajisje) për të rrotulluar i2c SDA (Data) dhe SCL (Clock) ose mund të krijoni një autobus shtesë i2c ose më shumë.

Unë do të krijoj dy autobusë shtesë, nl autobus 3 dhe 4

Hapni cli dhe vraponi

cd /boot

sudo nano config.txt

Shtoni rreshtin e mëposhtëm të kodit, e preferueshme në pjesën ku është aktivizuar spi dhe i2c.

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

Kjo linjë do të krijojë një autobus shtesë i2c (autobusi 4) në GPIO 23 si SDA dhe GPIO 24 si SCL (GPIO 23 dhe 24 është parazgjedhje)

Shtoni gjithashtu rreshtin e mëposhtëm për të krijuar autobusin i2c 3

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

GPIO 17 do të jetë SDA dhe GPIO 27 do të jetë SCL për autobusin i2c 4.

Tip kontrollit X për të dalë.

Shënim mbi Numërimin e Autobusëve dhe Renditjen:

Asnjëherë mos përdorni autobusin 0 dhe 2, ai përdoret për gjëra të tjera në tabelë si eprom në kapele, etj

Për publikimin raspbian të prillit 2019:

Gjithmonë duhet të filloni me autobusin më të lartë (Autobusi 4 në këtë rast) në konfigurimin tuaj dhe të kaloni në autobusin më të ulët (autobusi 3).

Autobusi më i ulët duhet të jetë gjithmonë autobusi 3

Nëse keni nevojë për 5 autobusë shtesë, autobusët duhet të bi në rendin 7, 6, 5, 4, 3

Kjo çështje me porosi autobusi nuk ishte aty kur u shkrua fillimisht kjo Udhëzues. Duket sikur ndryshimet janë bërë në kernel.

Mbyllni PI -në tuaj, fikeni atë. Lidhni pajisjet tuaja i2c me autobusin 4 (SDA në GPIO 23 dhe SCL në GPIO 24) dhe tjetrën me autobusin i2c 3 (SDA në GPIO 17 dhe SCL në GPIO 27).

Ndizni pi.

Drejtuar:

sudo i2cdetect -l (shkronja e vogël L)

Tani do të shihni që autobusi i2c 3 dhe 4 është gjithashtu i listuar. Drejtoni gjithashtu:

sudo i2cdetect -y 3

sudo i2cdetect -y 4

Tani mund ta përdorni sensorin tuaj në gjuhën tuaj të programimit. Mos harroni të specifikoni autobusët e saktë i2c.

Bashkangjit është një shembull për sensorin e njohur të temperaturës dhe presionit BMP280. Asnjë multiplexer nuk mund të lexojë 2 BMP280 kaq shpejt.

Një shembull i 2 sensorëve Sensirion SDP 810 është gjithashtu i bashkangjitur. Përsëri duke punuar shumë më shpejt sesa multiplexeri që kam përdorur në të kaluarën

Kam krijuar kodin python për të lexuar dy BMP388 të reja nga adafruit.

Unë gjithashtu mund të shtoj sensorë të tjerë në të ardhmen në

Hapi 3: Rasti 2: Adresa të ndryshme I2c

E thjeshte i2c është një autobus. Një purpus autobusi duhet të komunikojë me pajisje të shumta. Lidhni pajisjet paralelisht me të njëjtin autobus i2c. Mund të përdorni autobusin një.

Drejtuar:

sudo i2cdetect -y 1

Do të shihni pajisjet e listuara.

Recommended: