Isi kandungan:

Menyambungkan Dua OOBoards Bersama Menggunakan Langkah I2C: 4
Menyambungkan Dua OOBoards Bersama Menggunakan Langkah I2C: 4

Video: Menyambungkan Dua OOBoards Bersama Menggunakan Langkah I2C: 4

Video: Menyambungkan Dua OOBoards Bersama Menggunakan Langkah I2C: 4
Video: šŸ”“Tutorial I2C Arduino Master dan Arduino Slave - Bahasa Indonesia 2024, November
Anonim
Menghubungkan Dua OOBoards Bersama Menggunakan I2C
Menghubungkan Dua OOBoards Bersama Menggunakan I2C

Petunjuk ini merangkumi cara menghubungkan dua OOBoards menggunakan I2C.

Langkah 1: Menyambung ke Bas Rangkaian I2C

Menyambung ke Bas Rangkaian I2C
Menyambung ke Bas Rangkaian I2C
Menyambung ke Bas Rangkaian I2C
Menyambung ke Bas Rangkaian I2C

Terdapat dua bas I2C di OOBoards, bas tempatan, dan bas rangkaian.

Kod OOPIC pada dasarnya adalah bahasa yang ditafsirkan, iaitu "kod" disimpan di EEPROM, dan dibaca / ditafsirkan oleh mikropemproses dalam masa nyata. EEPROM menggunakan bas LOCAL I2C untuk berkomunikasi dengan mikrokontroler. Sekiranya anda melihat bas tempatan ini di osiloskop, anda akan melihat perbualan berterusan. Di papan OOBoards, bas tempatan adalah yang disambungkan ke penyambung I2C, ini tidak semestinya seperti yang kita mahukan. Bas NETWORK biasanya bas yang digunakan untuk berkomunikasi dengan peranti / oopik lain, di OOBo bus ini tidak mempunyai penyambung. Untuk mengakses bas ini, anda mesti memasangkan wayar ke pin 42 dan 37 mikrokontroler (masing-masing bertanda N_SDA, N_SCL pada skema).

Langkah 2: Tambahkan Pullup Resistor

Setelah sambungan SDA dan SCL dibuat pada setiap pemproses, kedua-dua papan boleh

dihubungkan bersama dengan menyambungkan SDA ke SDA, SCL ke SCL, dan menyambungkan wayar tanah yang sama antara papan. Anda juga memerlukan perintang penarik pada setiap baris (saya menggunakan 12k, tetapi hanya itu yang saya ada). Perhatikan bahawa anda hanya memerlukan satu perintang penarik setiap baris untuk jumlah dua perintang (bukan 4).

Langkah 3: Programkan Budak

Setelah sambungan fizikal ada, anda perlu memprogram mikrokontroler hamba. Saya menambah beberapa kod di bawah yang semestinya anda mulakan.

Dim SLAVE As New oDDELinkDim LED As New oDIO1Sub Main () & susun alamat I2C kami ke 2 (perhatikan, ini mesti sepadan dengan remote & aposaddress yang kami tetapkan dalam kod induk) ooPIC. Node = 2 & aposetup LED LED. IOLine = 5 LED. Arah = cvOutput & aposnow, hubungkan output objek DDELink kami ke & aposthe LED, dan hidupkanā€¦ sekarang secara automatik, LED akan berkelip SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

Langkah 4: Program Master

Akhirnya, atur mikrokontroler induk. Perhatikan garis-garis yang menetapkan harta tanah DDELink. Lokasi: Kecuali ini diset dengan betul, ini TIDAK akan berfungsi!

Dim Master As New oDDELinkDim wire As New oWireDim hz1 As New oBitSub Main () & aposlink pemasa 1 saat ke bit yang dapat kita akses & aposth bit ini sekarang akan menukar wayar sekali per detik. Input. Link (ooPIC. Hz1) wire. Output. Pautan (hz1) wayar. Operate = cvTrue & aposthet ini menetapkan alamat I2C mikrokontroler tempatan kami & antara muka I2C tidak aktif sehingga alamat ditetapkan ooPIC. Node = 1 & aposnow kami menyiapkan objek DDELink kami, input kami adalah bit hz1 & mengingatkan bahawa objek juga mempunyai harta. Output yang digunakan & apos ketika kita berada dalam mod penerimaan Master. Input. Link (hz1) & aposthis ini adalah alamat I2C mikrokontroler jauh, perhatikan bahawa & aposin kod hamba, kami memberitahu ia mempunyai alamat 2 Master. Node = 2 & aposugh ā€¦ ini adalah bahagian yang buruk, ini adalah "alamat" DDELink & aposobject di ruang memori hamba &. Untuk mengetahui nombor ini, & aposwe perlu membuka dan menyusun kod hamba, kemudian pergi Lihat-> Kod yang disusun. & cari sesuatu seperti: & aposL *. Construct. Begin; Dim sebagai oDDELink baru & aposwhere * adalah sebarang nombor, dan merupakan nama objek DDELink anda & masukkan kod hamba anda. Garis yang betul-betul di bawahnya akan membaca seperti: & aposC0020: 041; Ini.. Alamat & nombor di sebelah kanan & apos: & apos adalah alamat hamba objek DDELink Master. Location = 41 & aposthis memberitahu objek yang akan kami hantar data (iaitu, salin data dari harta. Input milik kami & kerasukan hamba. harta output (perhatikan, jika anda menetapkan ini untuk diterima, ia adalah sebaliknya) = cvTrue Do & aposcheck untuk melihat apakah kita sedang menghantar data Jika Master. Transmitting = cvFalse Kemudian & pengisian nilai ini menjadi 1 akan menyebabkan master menghantar nilai kepada hamba & aposnote, ini secara automatik diset semula ke 0 setelah selesai penghantaran Master. Sync = 1 Tamat Sekiranya Sub LoopEnd

Disyorkan: