Мазмұны:
- 1 -қадам: Кейбір Shell командалары
- 2 -қадам: Бірінші жағдай: I2c құрылғыларының адрестері бірдей
- 3 -қадам: 2 -жағдай: Әр түрлі I2c адрестері
Бейне: Raspberry PI бірнеше I2C құрылғылары: 3 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Сіз жобаңызда бірдей I2C құрылғыларының еселігін пайдалана алмайтындықтан ренжідіңіз. Баяу мультиплексорларды қолданудың қажеті жоқ. Соңғы raspbian ядросы GPIO түйреуіштерін қолдана отырып, көптеген I2C автобустарын құруды қолдайды. Бұл шешім өте жылдам.
1 -қадам: Кейбір Shell командалары
I2c құрылғыларының біреуін таңқурай пи тұрған кезде қосыңыз, таңқурай пиді іске қосыңыз және іске қосыңыз
sudo i2cdetect -y 1
Сіз тіркемедегі суреттегідей кестені көресіз. Менде BMP280 температурасы мен барометрлік қысым датчигі бар. I2c адресі кестеге сәйкес 0x76. Бұл мекен -жайға назар аударыңыз.
Мұны барлық i2c құрылғыларыңыз үшін жасаңыз.
2 -қадам: Бірінші жағдай: I2c құрылғыларының адрестері бірдей
Бұл әрқашан проблемалық жағдай болды. I2c шинасы бірнеше құрылғыларды өңдей алады, бірақ олардың i2c адрестері әр түрлі болуы керек. Кейбір i2c құрылғыларында басқа i2c адрестерін орнататын секіргіштер бар, бірақ көбінде жоқ. Бұл жағдайда i2c SDA (Деректер) мен SCL (Сағат) айналдыру үшін i2c мультиплексорын (аппараттық құрал) қолдануға болады немесе қосымша i2c шинасын немесе одан да көп құруға болады.
Мен екі қосымша автобус жасаймын, nl автобус 3 және 4
Клипті ашып, жүгіріңіз
CD /жүктеу
sudo nano config.txt
Келесі код жолын қосыңыз, spi және i2c қосылған бөлімде қолайлы.
dtoverlay = i2c-gpio, bus = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Бұл желі GPIO 23 -те SDA ретінде GPIO 24 -те қосымша i2c шинасын (4 -автобус) жасайды және SCL ретінде (GPIO 23 және 24 әдепкі бойынша)
I2c шинасы 3 жасау үшін келесі жолды қосыңыз
dtoverlay = i2c-gpio, bus = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 SDA болады, ал GPIO 27 i2c шинасы 4 үшін SCL болады.
Шығу үшін X пернесін басқару.
Автобустың нөмірленуі мен тәртібі туралы ескерту:
Ешқашан 0 және 2 автобусты пайдаланбаңыз, ол тақтадағы басқа заттар үшін қолданылады, мысалы, шляпалардағы eprom және т
2019 жылдың сәуірінде raspbian шығарылымы үшін:
Сіз әрқашан config.txt файлында ең жоғары автобустан (бұл жағдайда 4 -автобус) бастауыңыз керек және ең төменгі автобусқа (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 -ге) қосыңыз.
Пиді қосыңыз.
Іске қосу:
sudo i2cdetect -l (кіші әріп L)
Енді сіз i2c 3 және 4 -автобустың да көрсетілгенін көресіз. Сондай -ақ іске қосыңыз:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Енді сенсорды бағдарламалау тілінде қолдануға болады. Дұрыс i2c автобустарын көрсетуді ұмытпаңыз.
Attach - әйгілі BMP280 температура мен қысым сенсорының мысалы. Ешбір мультиплексор 2 BMP280 жылдам оқи алмайды.
2 Sensirion SDP 810 датчиктерінің мысалы да бекітілген. Бұрын мен қолданған мультиплексорға қарағанда әлдеқайда жылдам жұмыс істейді
Мен adafruit -тен екі жаңа BMP388 оқу үшін питон кодын жасадым.
Мен болашақта басқа сенсорларды қосуға болады
3 -қадам: 2 -жағдай: Әр түрлі I2c адрестері
Қарапайым. i2c - бұл автобус. Автобустың мақсаты - көптеген құрылғылармен байланысу. Құрылғыларды i2c шинасына параллель жалғаңыз. Сіз бір автобусты пайдалана аласыз.
Іске қосу:
sudo i2cdetect -y 1
Сіз тізімделген құрылғыларды көресіз.
Ұсынылған:
Arduino Connect бірнеше I2C құрылғылары: 6 қадам
Arduino Connect бірнеше I2C құрылғылары: Бұл оқулықта I2C қосылымы бар бірнеше модульдерді arduino -ға қосуды үйренеміз. Бейнені қараңыз! Біздің жағдайда біз 4 OLED дисплейін мысал ретінде қолданамыз, бірақ сіз басқа I2C модульдерін қолдана аласыз. Егер қаласаңыз сенсорлар. Ескерту: 4 OLED дисплей
3.3V құрылғылары үшін қарапайым DIY логикалық түрлендіргіші: 4 қадам
3.3V құрылғылары үшін қарапайым DIY логикалық түрлендіргіші: Бұл жазбада мен сізге 5V -ден 3,3В -қа дейінгі логикалық түрлендіргішті 5V датчиктерін жаңа Arduino тақталарына және Raspberry Pi -ге қосу үшін қалай жасауға болатынын көрсетемін. Көпшілігіңіз Arduino және Raspberry Pi duri -мен ойнағанды ұнатасыз
STM32 құрылғылары бар RC сервосы үшін жоғары ажыратымдылықтағы PWM сигнал генерациясы: 3 қадам
STM32 құрылғылары бар RC сервосы үшін жоғары ажыратымдылықтағы PWM сигнал генерациясы: Қазіргі уақытта мен SX1280 RF чипіне негізделген RC таратқышы/қабылдағышын құрып жатырмын. Жобаның мақсатының бірі - мен таяқшалардан servo -ға дейін 12 биттік серво ажыратымдылығын алғым келеді. Ішінара қазіргі заманғы цифрлық сервистерде 12 биттік резо бар болғандықтан
Силикон құрылғылары: 19 қадам (суреттермен)
Силикондық қондырғылар: Силиконды қондырғылар жұмсақ және созылатын электрониканың алғашқы артықшылықтарын өндірушіге ыңғайлы тәсілмен жеткізеді. Нұсқаулыққа сүйене отырып, сіз өзіңіздің толық интеграцияланған жұмсақ электронды циклды құру үшін қажетті негізгі дағдыларды үйренесіз
Жарықдиодты жолдарды қолданатын DIY IoT құрылғылары: 9 қадам (суреттермен)
Жарықдиодты жолдарды қолданатын DIY IoT құрылғылары: (Жауапкершіліктен бас тарту: Мен ағылшын тілінде сөйлеймін.) Біраз уақыт бұрын менің әйелім түнде бақшаны жарықтандыру үшін жарықдиодты шамдарды сатып алды. Олар өте жақсы атмосфера құрды. Оларды ағаштардың айналасына отырғызды, бірақ не болатынын болжап біліңіз, біз