Daftar Isi:
- Langkah 1: Beberapa Perintah Shell
- Langkah 2: Kasus Satu: Perangkat I2c Memiliki Alamat yang Sama
- Langkah 3: Kasus 2: Alamat I2c yang berbeda
Video: Raspberry PI Beberapa Perangkat I2C: 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Frustrasi karena Anda tidak dapat menggunakan beberapa perangkat I2C yang sama dalam proyek Anda. Tidak perlu menggunakan multiplexer lambat. Kernel raspbian terbaru mendukung pembuatan beberapa bus I2C menggunakan pin GPIO. Solusi ini sangat cepat.
Langkah 1: Beberapa Perintah Shell
Hubungkan salah satu perangkat i2c Anda saat raspberry pi Anda menyala, mulai raspberry pi Anda dan jalankan
sudo i2cdetect -y 1
Anda akan melihat tabel seperti pada gambar terlampir. Saya telah memasang sensor suhu dan tekanan udara BMP280. Alamat i2c adalah 0x76 menurut tabel. Perhatikan alamat ini.
Lakukan ini untuk semua perangkat i2c Anda.
Langkah 2: Kasus Satu: Perangkat I2c Memiliki Alamat yang Sama
Ini selalu menjadi kasus yang bermasalah. Bus i2c dapat menangani banyak perangkat, tetapi mereka harus memiliki alamat i2c yang berbeda. Beberapa perangkat i2c memiliki jumper untuk mengatur alamat i2c lainnya, tetapi banyak yang tidak. Dalam hal ini Anda dapat menggunakan i2c multiplexer (perangkat keras) untuk memutar i2c SDA (Data) dan SCL (Jam) atau Anda dapat membuat bus i2c tambahan atau lebih.
Saya akan membuat dua bus tambahan, nl bus 3 dan 4
Buka cli dan jalankan
cd / boot
sudo nano config.txt
Tambahkan baris kode berikut, lebih disukai di bagian di mana spi dan i2c diaktifkan.
dtoverlay=i2c-gpio, bus=4, i2c_gpio_delay_us=1, i2c_gpio_sda=23, i2c_gpio_scl=24
Baris ini akan membuat bus i2c tambahan (bus 4) pada GPIO 23 sebagai SDA dan GPIO 24 sebagai SCL (GPIO 23 dan 24 adalah default)
Tambahkan juga baris berikut untuk membuat i2c bus 3
dtoverlay=i2c-gpio, bus=3, i2c_gpio_delay_us=1, i2c_gpio_sda=17, i2c_gpio_scl=27
GPIO 17 akan menjadi SDA dan GPIO 27 akan menjadi SCL untuk i2c bus 4.
Tipe kontrol X untuk keluar.
Catatan tentang Penomoran dan Urutan Bus:
Jangan pernah menggunakan bus 0 dan 2, itu digunakan untuk hal-hal lain di papan seperti eprom di topi dll
Untuk rilis raspbian April 2019:
Anda harus selalu memulai dengan bus tertinggi (Bus 4 dalam hal ini) di config.txt Anda dan bekerja hingga bus terendah (bus 3).
Bus terendah harus selalu bus 3
Jika Anda membutuhkan 5 bus tambahan, bus harus bi dalam urutan 7, 6, 5, 4, 3
Masalah pada pesanan bus ini tidak ada ketika Instruksi ini awalnya ditulis. Sepertinya ada perubahan pada kernel.
Matikan PI Anda, matikan. Hubungkan perangkat i2c Anda ke bus 4 (SDA ke GPIO 23 dan SCL ke GPIO 24) dan yang lainnya ke i2c bus 3 (SDA ke GPIO 17 dan SCL ke GPIO 27).
Nyalakan pi.
Lari:
sudo i2cdetect -l (Huruf Kecil L)
Anda sekarang akan melihat bahwa i2c bus 3 dan 4 juga terdaftar. Juga jalankan:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Sekarang Anda dapat menggunakan sensor Anda dalam bahasa pemrograman Anda. Ingatlah untuk menentukan bus i2c yang benar.
Lampirkan adalah contoh untuk sensor Suhu dan Tekanan BMP280 yang populer. Tidak ada multiplexer yang dapat membaca 2 BMP280 secepat ini.
Contoh 2 sensor SDP 810 juga terpasang. Sekali lagi bekerja jauh lebih cepat daripada multiplexer yang saya gunakan di masa lalu
Saya membuat kode python untuk membaca dua BMP388 baru dari adafruit.
Saya juga dapat menambahkan sensor lain di masa mendatang ke
Langkah 3: Kasus 2: Alamat I2c yang berbeda
Sederhana. i2c adalah bus. Tujuan bus adalah untuk berkomunikasi dengan beberapa perangkat. Hubungkan perangkat paralel ke bus i2c yang sama. Anda dapat menggunakan bus satu.
Lari:
sudo i2cdetect -y 1
Anda akan melihat perangkat yang terdaftar.
Direkomendasikan:
Arduino Menghubungkan Beberapa Perangkat I2C: 6 Langkah
Arduino Connect Multiple I2C Devices: Dalam tutorial ini kita akan belajar bagaimana menghubungkan beberapa modul dengan koneksi I2C ke arduino. Tonton Videonya! Dalam kasus kami, kami akan menggunakan 4 Layar OLED sebagai contoh, tetapi Anda dapat menggunakan modul I2C lainnya/ sensor jika Anda mau. Catatan: 4 Layar OLED co
Tutorial: Bagaimana Arduino Mengontrol Beberapa Perangkat Alamat yang Sama dengan Menggunakan Multiplexer TCA9548A I2C: 3 Langkah
Tutorial: Bagaimana Arduino Mengontrol Beberapa Perangkat Alamat yang Sama dengan Menggunakan TCA9548A I2C Multiplexer: Deskripsi:Modul Multiplexer TCA9548A I2C memungkinkan untuk menghubungkan perangkat dengan alamat I2C yang sama (hingga 8 alamat I2C yang sama) yang terhubung ke satu mikrokontroler. Multiplexer bertindak sebagai penjaga gerbang, memindahkan perintah ke set yang dipilih
Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall dan Beberapa Memo di Nodemcu - Bagian 2 - Perangkat Lunak: 5 Langkah (dengan Gambar)
Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Hall Effect dan Beberapa Scraps di Nodemcu - Bagian 2 - Software: PendahuluanIni adalah lanjutan dari posting pertama "Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Hall Effect dan Beberapa Memo di Nodemcu - Bagian 1 - Perangkat Keras" - di mana saya menunjukkan cara merakit pengukur kecepatan dan arah angin
Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall, dan Beberapa Memo di Nodemcu. - Bagian 1 - Perangkat Keras: 8 Langkah (dengan Gambar)
Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall, dan Beberapa Memo di Nodemcu. - Bagian 1 - Perangkat Keras: Pengantar Sejak saya mulai mempelajari Arduino dan Budaya Pembuat, saya suka membuat perangkat yang berguna menggunakan barang bekas dan bekas seperti tutup botol, potongan PVC, kaleng minuman, dll. hidup untuk bagian apa pun atau pasangan apa pun
Jam Linear Menggunakan Arduino + DS1307 + Neopixel: Menggunakan Kembali Beberapa Perangkat Keras.: 5 Langkah
Jam Linear Menggunakan Arduino + DS1307 + Neopixel: Menggunakan Kembali Beberapa Perangkat Keras.: Dari proyek sebelumnya saya memiliki Arduino UNO dan strip LED Neopixel yang tersisa, dan ingin membuat sesuatu yang berbeda. Karena strip Neopixel memiliki 60 lampu LED, diperkirakan menggunakannya sebagai jam besar. Untuk menunjukkan Jam, digunakan segmen 5-LED merah (60 LED