Daftar Isi:

Menghubungkan Dua OOBoard Bersama Menggunakan I2C: 4 Langkah
Menghubungkan Dua OOBoard Bersama Menggunakan I2C: 4 Langkah

Video: Menghubungkan Dua OOBoard Bersama Menggunakan I2C: 4 Langkah

Video: Menghubungkan Dua OOBoard Bersama Menggunakan I2C: 4 Langkah
Video: đź”´Tutorial I2C Arduino Master dan Arduino Slave - Bahasa Indonesia 2024, November
Anonim
Menghubungkan Dua OOBoard Bersama Menggunakan I2C
Menghubungkan Dua OOBoard Bersama Menggunakan I2C

Instruksi ini mencakup cara menghubungkan dua OOBoards menggunakan I2C.

Langkah 1: Menghubungkan ke Bus Jaringan I2C

Menghubungkan ke Bus Jaringan I2C
Menghubungkan ke Bus Jaringan I2C
Menghubungkan ke Bus Jaringan I2C
Menghubungkan ke Bus Jaringan I2C

Ada dua bus I2C di OOBoards, bus lokal, dan bus jaringan.

Kode OOPIC pada dasarnya adalah bahasa yang ditafsirkan, yaitu "kode" disimpan dalam EEPROM, dan dibaca/diinterpretasikan oleh mikroprosesor secara real time. EEPROM menggunakan bus LOCAL I2C untuk berkomunikasi dengan mikrokontroler. Jika Anda melihat bus lokal ini di osiloskop, Anda akan melihat obrolan yang konstan. Pada board OOBoards, bus lokal yang terhubung ke konektor I2C, ini belum tentu yang kita inginkan. Bus NETWORK biasanya adalah bus yang digunakan untuk berkomunikasi dengan perangkat lain/opik, pada OOBoards bus ini tidak memiliki konektor. Untuk mengakses bus ini, Anda harus menyolder kabel ke pin 42 dan 37 mikrokontroler (masing-masing ditandai N_SDA, N_SCL pada skema).

Langkah 2: Tambahkan Resistor Pullup

Setelah koneksi SDA dan SCL dibuat pada setiap prosesor, kedua papan dapat

dihubungkan bersama dengan menghubungkan SDA ke SDA, SCL ke SCL, dan menghubungkan kabel arde yang sama di antara papan. Anda juga akan memerlukan resistor pull-up di setiap baris (saya menggunakan 12k, tapi itulah yang saya miliki). Perhatikan bahwa Anda hanya memerlukan satu resistor pullup per baris untuk total dua resistor (bukan 4).

Langkah 3: Program Budak

Sekarang koneksi fisik sudah ada, Anda perlu memprogram mikrokontroler slave. Saya menambahkan beberapa kode di bawah ini yang akan membantu Anda memulai.

Redupkan SLAVE As New oDDELinkDim LED As New oDIO1Sub Main() &aposset alamat I2C kita menjadi 2 (catatan, ini harus sesuai dengan remote &alamat alamat yang kita atur dalam kode master) ooPIC. Node = 2 &apossetup LED LED. IOLine = 5 LED. Direction = cvOutput &aposnow, tautkan output objek DDELink kita ke &posto LED, dan nyalakan…sekarang secara otomatis, LED akan berkedip SLAVE. Output. Link(LED) SLAVE. Operate = cvTrueEnd Sub

Langkah 4: Program Master

Terakhir, program mikrokontroler master. Perhatikan baik-baik baris yang menyetel properti. Location DDELink: Kecuali jika ini disetel dengan benar, ini TIDAK akan berfungsi!

Redupkan Master Seperti Baru oDDELinkDim wire Seperti Baru oWireDim hz1 Sebagai Baru oBitSub Main() &aposkan penghitung waktu 1 detik ke bit yang dapat kita akses &apostis bit ini sekarang akan beralih kabel sekali per detik. Input. Link(ooPIC. Hz1) wire. Output. Link(hz1) wire. Operate = cvTrue &aposthis menyetel alamat I2C mikrokontroler lokal kami &apostthe I2C interface tidak aktif sampai alamat disetel ooPIC. Node = 1 &apossekarang kita setup objek DDELink kita, input kita adalah bit hz1 &aposting bahwa objek juga memiliki properti. Output yang digunakan &aposketika kita berada dalam mode terima Master. Input. Link(hz1) &aposthis adalah alamat I2C dari mikrokontroler jarak jauh, perhatikan bahwa &aposin kode budak, kami menyuruhnya memiliki alamat 2 Master. Node = 2 &aposugh…ini adalah bagian yang jelek, ini adalah "alamat" dari DDELink &aposobject di ruang memori slave&aposs. Untuk mengetahui nomor ini, &aposkita perlu membuka dan mengkompilasi kode slave, lalu masuk ke View->Compiled Code. &aposcari sesuatu seperti: &aposL*. Construct. Begin;Dim as new oDDELink &aposwhere * adalah angka apa saja, dan merupakan nama objek DDELink Anda &aposin kode budak Anda. Baris tepat di bawahnya harus membaca sesuatu seperti: &aposC0020:041;This.. Address &aposthe number di sebelah kanan &apos:&apos adalah alamat dari objek DDELink slave Master. Location = 41 &aposthis memberitahu objek yang akan kita kirim data (mis., salin data dari properti. Input &aposto properti slaves.output (perhatikan, jika Anda mengatur ini untuk menerima, ini adalah kebalikannya) Master. Direction = cvSend &apostturn on, tapi belum ada yang terjadi… Master. Operate = cvTrue Lakukan &aposperiksa untuk melihat apakah kita sedang mentransmisikan data Jika Master. Transmitting = cvFalse Kemudian &aposting nilai ini ke 1 akan menyebabkan master mengirim nilai ke slave &aposnote, ini secara otomatis direset ke 0 setelah selesainya transmisi Master. Sync = 1 End If LoopEnd Sub

Direkomendasikan: