Mündəricat:
- Addım 1: Bəzi Shell Komandaları
- Addım 2: Birinci Vəziyyət: I2c Cihazları Eyni Ünvana malikdir
- Addım 3: Dava 2: Fərqli I2c ünvanları
Video: Raspberry PI Çoxlu I2C Cihazları: 3 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Layihənizdə eyni I2C cihazlarının birdən çoxunu istifadə edə bilmədiyiniz üçün əsəbiləşirsiniz. Yavaş multipleksorlardan istifadə etməyə ehtiyac yoxdur. Ən son raspbian kernel GPIO pinləri istifadə edərək birdən çox I2C avtobusunun yaradılmasını dəstəkləyir. Bu həll çox sürətlidir.
Addım 1: Bəzi Shell Komandaları
İ2c cihazlarınızdan birini moruq pi olduğunuzda bağlayın, moruq pi -ni işə salın və qaçın
sudo i2cdetect -y 1
Əlavə şəkildəki kimi bir masa görəcəksiniz. BMP280 temperatur və barometrik təzyiq sensoru bağladım. İ2c ünvanı cədvələ görə 0x76 -dır. Bu ünvanı qeyd edin.
Bunu bütün i2c cihazlarınız üçün edin.
Addım 2: Birinci Vəziyyət: I2c Cihazları Eyni Ünvana malikdir
Bu həmişə problemli bir hal idi. Bir i2c avtobusu birdən çox cihazı idarə edə bilər, lakin fərqli i2c ünvanlarına sahib olmalıdır. Bəzi i2c cihazlarında digər i2c ünvanlarını təyin etmək üçün atlayıcılar var, lakin bir çoxlarında yoxdur. Bu vəziyyətdə, i2c SDA (Məlumat) və SCL (Saat) döndərmək üçün i2c multiplexer (hardware) istifadə edə bilərsiniz və ya əlavə bir i2c avtobus və ya daha çoxunu yarada bilərsiniz.
İki əlavə avtobus yaradacağam, nl avtobus 3 və 4
Klipi açın və qaçın
cd /açılış
sudo nano config.txt
Aşağıdakı kod sətrini əlavə edin, spi və i2c -in aktiv olduğu hissədə.
dtoverlay = i2c-gpio, bus = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Bu xətt GPIO 23 -də SDA və GPIO 24 -də SCL olaraq əlavə bir i2c avtobusu (avtobus 4) yaradacaq (GPIO 23 və 24 standart olaraq)
İ2c avtobus 3 yaratmaq üçün aşağıdakı xətti də əlavə edin
dtoverlay = i2c-gpio, bus = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 SDA, GPIO 27 isə i2c avtobus 4 üçün SCL olacaq.
Çıxmaq üçün X düyməsini idarə edin.
Avtobus nömrələnməsinə və sifarişinə dair qeyd:
Heç vaxt 0 və 2 nömrəli avtobuslardan istifadə etməyin, taxtadakı digər şeylər üçün eprom, papaq və s
2019 -cu ilin aprel ayı üçün raspbian versiyası üçün:
Həmişə config.txt -də ən yüksək avtobusdan (bu halda Avtobus 4) başlamalı və ən aşağı avtobusa (avtobus 3) keçməlisiniz.
Ən aşağı avtobus həmişə 3 nömrəli avtobus olmalıdır
5 əlavə avtobusa ehtiyacınız varsa, avtobuslar 7, 6, 5, 4, 3 sıralarında bi olmalıdır.
Avtobus sifarişində bu məsələ, bu Təlimat əvvəlcə yazılarkən yox idi. Nüvədə dəyişikliklər edildiyi görünür.
PI -ni bağlayın, dəyişdirin. İ2c cihazlarınızı 4 -cü avtobusa (SDA -dan GPIO 23 -ə və SCL -dən GPIO 24 -ə), digərini isə i2c -avtobusa 3 -ə (SDA -dan GPIO 17 -ə və SCL -dən GPIO 27 -yə) qoşun.
Pi'yi işə salın.
Qaç:
sudo i2cdetect -l (Kiçik hərf L)
İndi i2c 3 və 4 nömrəli avtobusun da siyahıda olduğunu görəcəksiniz. Həmçinin işləyin:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
İndi sensorunuzu proqramlaşdırma dilinizdə istifadə edə bilərsiniz. Doğru i2c avtobuslarını göstərməyi unutmayın.
Attach, məşhur BMP280 Temperatur və Təzyiq sensoru üçün bir nümunədir. Heç bir multiplexer 2 BMP280 -i bu qədər sürətli oxuya bilməz.
2 Sensirion SDP 810 sensoru nümunəsi də əlavə olunur. Yenə də keçmişdə istifadə etdiyim multiplekserdən daha sürətli işləyirəm
Adafruitdən iki yeni BMP388 oxumaq üçün python kodu yaratdım.
Gələcəkdə başqa sensorlar da əlavə edə bilərəm
Addım 3: Dava 2: Fərqli I2c ünvanları
Sadə. i2c bir avtobusdur. Bir avtobus məqsədi bir çox cihazla əlaqə qurmaqdır. Cihazları eyni i2c avtobusuna paralel olaraq bağlayın. Bir avtobusdan istifadə edə bilərsiniz.
Qaç:
sudo i2cdetect -y 1
Siyahıda göstərilən cihazları görəcəksiniz.
Tövsiyə:
Arduino Uno -da SPI vasitəsilə çoxlu BMP280 Sensorları: 6 addım
Arduino Uno -da SPI vasitəsi ilə çoxlu BMP280 Sensorları: Bu təlimatda Arduino Uno -da SPI vasitəsilə üç BMP280 -i birləşdirəcəyik, lakin hər sensor üçün nSS (Slave Select) olaraq D3 -dən D10 -a qədər rəqəmsal port istifadə edərək Uno -da səkkiz BMP280 -ə qədər qoşa bilərsiniz. Nəticə B ilə ölçülmüş atmosfer təzyiqi nümunələrinin
Çoxlu IR İstilik Sensorları - MLX90614: 4 Addım
Çoxlu İQ Temperatur Sensorları - MLX90614: Bu, Arduino uno ilə I2C avtobusu vasitəsilə birdən çox MLX90614B təmassız temperatur sensörlərinin necə qurulacağına və oxunuşların Arduino IDE -nin serial monitorunda göstərilməsinə dair qısa bir bələdçidir. Əvvəlcədən hazırlanmış lövhələrdən istifadə edirəm, ancaq sensor b alsanız
Bir neçə Mikrokontrolör Pimindən Çoxlu LED Necə Sürülür: 6 Addım (Şəkillərlə)
Bir neçə Mikrokontrolör Pimindən Çoxlu LED Necə Sürülür: Bir çox mikrokontrolör sancağının üç vəziyyətə malik olduğunu (+V, GND və ya "yüksək impedanslı") istifadə edərək N pinlərindən N*(N-1) LEDləri idarə edə bilərsiniz. Beləliklə, PIC12Fxxx və ya ATtiny11 kimi kiçik 8pin mikro nəzarətçi beş LED -də 20 LED idarə edə bilər
Çoxlu Gitara Rafı və Roll!: 5 addım
Birdən çox Gitara Rafı və Roll!: Bu təlimat, silindrli 6 ədəd çoxlu gitara stendi / rakı üçündür. Bağçanızda uzanan materiallardan öz çoxlu gitara rafınızı / stendinizi necə düzəltmək olar. Ən azından həyətimdə o qədər zibil var ki, yəqin ki, M düzəldə bilərəm
Ayrı başlı və daha çoxlu tam və ya yarı yığınlar üçün Gitar Amp Tilt Standı: 5 Addım
Ayrı Başlıqlı Tam və ya Yarım Yığınlar üçün Gitar Amp Tilt Standı və daha çoxu: Mən dəli olduğumu bilirəm, amma bununla heç bir problemim yoxdur. Bunu bəzi nəzəriyyələri sınamaq üçün qurdum. Yerli musiqi mağazasındakı pislik, qiymətli yeni Marshall yığınlarını bu yerə yerləşdirməyimə icazə vermədi və məni qaçırdı. Onu bu qədər düşüncəli olduğuna görə qınaya bilmərəm