Saya ingin menambahkan modul jam waktu nyata ke dalam proyek kecil saya. Saya ingin menampilkan waktu dan tanggal pada modul LCD i2c 2x16 yang ada.
Kedua modul jam waktu nyata i2c-antarmuka dan modul LCD 2x16 menggunakan pin A4 (SDA) dan A5 (SCL) yang sama pada Arduino Uno. Setelah berjam-jam mencari di internet, bus i2c sebenarnya dapat mengambil banyak perangkat serial. Ini dimungkinkan karena setiap perangkat memiliki alamat uniknya sendiri.
Pertanyaan saya adalah bagaimana cara menghubungkan kedua perangkat i2c-interface secara fisik menjadi satu A4 dan A5? Terima kasih.
Jawaban:
Beberapa orang mengalami kesulitan memvisualisasikan hal-hal yang terhubung bersama, jadi inilah gambarannya:
(Saran Penyajian)
mensimulasikan rangkaian ini - Skema yang dibuat menggunakan CircuitLab I2C adalah bus, sehingga sinyal yang dinamai saling terhubung. Skema pengalamatan memungkinkan mikrokontroler untuk memilih perangkat mana yang ia ajak bicara. Pada Arduino, resistor pull-up 10k kebagian "VDD", yang merupakan pin 5V atau 3.3V.
sumber
Untuk I2C, jika semua perangkat slave memiliki alamat perangkat yang berbeda, semua pin SDA harus dihubungkan bersama, dan semua pin SCL harus terhubung bersama. Sesederhana itu.
Tentu, Anda juga harus menyertakan resistor pull-up di kedua garis, seperti yang diperlukan untuk I2C. Cara memilih nilai-nilai resistor telah dibahas di sini sebelumnya .
sumber
Hubungkan dua pin A4-sda ke A5-scl (pada kedua papan uno-uno) dan hubungkan resistor dari 5v dari masing-masing jalur sda-scl yang sesuai.
sumber
I2C adalah protokol transfer data yang dikembangkan oleh Philips. Juga dikenal sebagai antarmuka dua kawat karena menggunakan dua kabel untuk komunikasi. SCL-Jalur Jam Serial. SDL-Serial Data Line. Jadi Anda perlu menghubungkan pin yang sesuai dari perangkat i2c baik itu eeprom atau lcd ke SCL dan pin SDL dari pengontrol mikro yang Anda gunakan dengan resistor pullup ke VDD. Karena ini adalah protokol alamat yang memiliki alamat 7-bit untuk setiap perangkat yang terhubung, Anda dapat menangani hingga 2 ^ 7 perangkat yang berbeda. Tapi biasanya alamat I2C dari perangkat slave sudah ditentukan sebelumnya dengan beberapa bit untuk di-bawaan oleh pengembang. Ini membantu menghubungkan jenis perangkat yang sama dengan bagian alamat bawaan yang berbeda pada bus yang sama.
sumber
Anda juga harus memeriksa resistor pull up. Jika Anda menggunakan papan yang sudah dibuat, tidak hanya chip, papan itu biasanya memiliki menarik resistor di papan antara buss dan vcc. Jadi ketika Anda menghubungkan segala sesuatu secara paralel, resistor juga paralel, sehingga nilai total resistor turun dan komunikasi Anda mungkin gagal.
sumber