Tartalomjegyzék:

Két OOBoard összekapcsolása az I2C használatával: 4 lépés
Két OOBoard összekapcsolása az I2C használatával: 4 lépés

Videó: Két OOBoard összekapcsolása az I2C használatával: 4 lépés

Videó: Két OOBoard összekapcsolása az I2C használatával: 4 lépés
Videó: 6 Поворотный энкодер FLProg и ЖК-дисплей I2C |ESP32 NodeMCU |Визуальное программирование для Arduino 2024, November
Anonim
Két OOBoard összekapcsolása az I2C használatával
Két OOBoard összekapcsolása az I2C használatával

Ez az útmutató leírja, hogyan csatlakoztatható két OOBoard az I2C segítségével.

1. lépés: Csatlakozás az I2C hálózati buszhoz

Csatlakozás az I2C hálózati buszhoz
Csatlakozás az I2C hálózati buszhoz
Csatlakozás az I2C hálózati buszhoz
Csatlakozás az I2C hálózati buszhoz

Az OOBoardson két I2C busz van, egy helyi busz és egy hálózati busz.

Az OOPIC kód lényegében értelmezett nyelv, azaz a "kódot" az EEPROM tárolja, és a mikroprocesszor valós időben olvassa/értelmezi. Az EEPROM a LOCAL I2C buszt használja a mikrokontrollerrel való kommunikációhoz. Ha ezt a helyi buszt nézi az oszcilloszkópon, állandó fecsegést lát. Az OOBoards táblákon a helyi busz csatlakozik az I2C csatlakozóhoz, nem feltétlenül ezt akarjuk. A NETWORK busz általában az a busz, amelyet más eszközökkel/oopikákkal való kommunikációhoz használnak, az OOBoards -on ez a busz nem rendelkezik csatlakozóval. Ennek a busznak a eléréséhez vezetékeket kell forrasztani a mikrokontroller 42. és 37. érintkezőjére (az ábrán N_SDA, N_SCL jelöléssel).

2. lépés: Adja hozzá a felhúzó ellenállásokat

Miután mindegyik processzoron létrejött az SDA és az SCL kapcsolat, a két kártya képes

össze kell kötni úgy, hogy az SDA -t az SDA -hoz, az SCL -t az SCL -hez, és egy közös földelővezetéket csatlakoztatnak a lapok közé. Szükséged lesz egy felhúzó ellenállásra is minden vonalon (12k-t használtam, de csak ez volt a fekvésem). Vegye figyelembe, hogy vonalonként csak egy felhúzó ellenállás szükséges összesen két ellenálláshoz (nem 4).

3. lépés: Programozza a Slave -t

Most, hogy a fizikai kapcsolatok megvannak, be kell programoznia a slave mikrokontrollert. Az alábbiakban hozzáadtam néhány kódot, amelyekkel elindulhat.

Dim SLAVE mint új oDDELinkDim LED mint új oDIO1Sub Main () & az I2C címünket 2 -re állítjuk be (megjegyzés: ennek meg kell egyeznie a távirányítóval és a címmel, amelyet a mester kódban állítottunk be) ooPIC. Node = 2 & apossetup a LED LED. IOLine = 5 LED. Direction = cvOutput & aposnow, kapcsolja össze DDELink objektumunk kimenetét a & aposthe LED -el, és kapcsolja be… most automatikusan, a LED villogni fog SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

4. lépés: Programozza be a mestert

Végül programozza be a fő mikrovezérlőt. Nagyon figyeljen a DDELink. Location tulajdonságát beállító sorokra: Ha ez nincs megfelelően beállítva, ez NEM fog működni!

Dim mester, mint új oDDELinkDim vezeték, mint új oWireDim hz1 mint új oBitSub Main () & az 1 másodperces időzítőt arra a bitre kapcsolja, amelyhez hozzáférünk, és az aposztit mostantól másodpercenként egyszer vált. Input. Link (ooPIC. Hz1) vezeték. Kimenet. Link (hz1) vezeték. Működés = cv Igaz és aposthis beállítja a helyi mikrovezérlőnk I2C -címét, és az I2C interfész nem aktív, amíg egy cím nincs beállítva. O. Az objektum rendelkezik egy. Output tulajdonsággal is, amelyet akkor használunk, ha a fogadási módban vagyunk Master. Input. Link (hz1) Master. Node = 2 & aposugh … ez a vacak rész, ez a DDELink & aposobject "címe" a slave & aposs memóriaterületen. Ahhoz, hogy ezt a számot kitaláljuk, & meg kell nyitnunk és le kell fordítanunk a slave kódot, majd a View-> Compiled Code menüpontra kell lépnünk. & aposlook valami ilyesmire: & aposL *. Construct. Begin; Dim mint új oDDELink & aposwhere * tetszőleges szám, és a DDELink objektum neve, valamint a slave kódja. A közvetlenül alatta levő sornak valahogy így kellene olvasnia: & aposC0020: 041; Ez … Az & apos: jobb oldalon lévő cím és aposzt a szolga DDELink objektum címe Master. Location = 41 & aposthis megmondja a küldendő objektumot adatok (azaz másolja az adatokat a = cvTrue Do & aposcheck, hogy lássuk, adatokat küldünk -e jelenleg. Ha Master. Transmission = cvFalse Akkor ezt az értéket 1 -re állítva a mester elküldi az értéket a slave & aposnote -nak, ez automatikusan visszaáll 0 -ra a Master Master átvitel befejezése után. = 1 End If LoopEnd Sub

Ajánlott: