Cuprins:
- Pasul 1: Conectarea la magistrala de rețea I2C
- Pasul 2: Adăugați rezistențele Pullup
- Pasul 3: Programați Slave
- Pasul 4: Programați Masterul
Video: Conectarea a două OOBoards împreună folosind I2C: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Acest instructable descrie cum să conectați două OOBoards folosind I2C.
Pasul 1: Conectarea la magistrala de rețea I2C
Există două autobuze I2C pe OOBoards, un autobuz local și un autobuz de rețea.
Codul OOPIC este în esență un limbaj interpretat, adică „codul” este stocat în EEPROM și citit / interpretat de microprocesor în timp real. EEPROM utilizează magistrala LOCAL I2C pentru a comunica cu microcontrolerul. Dacă ar fi să te uiți la acest autobuz local pe osciloscop, ai vedea o conversație constantă. Pe plăcile OOBoards, magistrala locală este ceea ce este conectat la conectorul I2C, nu este neapărat ceea ce ne dorim. Autobuzul de rețea este de obicei autobuzul care este utilizat pentru a comunica cu alte dispozitive / oopics, pe OOBoards acest autobuz nu are un conector. Pentru a accesa această magistrală, trebuie să lipiți firele la pinii 42 și 37 ai microcontrolerului (marcat respectiv N_SDA, N_SCL pe schemă).
Pasul 2: Adăugați rezistențele Pullup
Odată ce conexiunile SDA și SCL sunt realizate pe fiecare procesor, cele două plăci pot
să fie conectate împreună prin conectarea SDA la SDA, SCL la SCL și conectarea unui fir comun de masă între plăci. Veți avea nevoie, de asemenea, de un rezistor pull-up pe fiecare linie (am folosit 12k, dar asta este exact ceea ce aveam în jur). Rețineți că aveți nevoie doar de un rezistor de tragere pe linie pentru un total de două rezistențe (nu 4).
Pasul 3: Programați Slave
Acum că conexiunile fizice sunt acolo, va trebui să programați microcontrolerul slave. Am adăugat mai jos un cod care ar trebui să vă ajute să începeți.
Dim SLAVE as New oDDELinkDim LED as New oDIO1Sub Main () & apasă adresa noastră I2C la 2 (rețineți, aceasta trebuie să se potrivească cu adresa de la distanță și adresa pe care o setăm în codul master) ooPIC. Node = 2 & apossetup a LED LED. IOLine = 5 LED. Direction = cvOutput & aposnow, conectați ieșirea obiectului nostru DDELink la LED-ul & aposthe și porniți-l … acum automat, LED-ul va clipi SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub
Pasul 4: Programați Masterul
În cele din urmă, programați microcontrolerul principal. Acordați o atenție deosebită liniilor care setează proprietatea DDELink. Localizare: dacă nu este setat corect, acest lucru NU va funcționa!
Dim Master As New oDDELinkDim wire As New oWireDim hz1 As New oBitSub Main () & aposlink cronometrul de 1 secundă la un bit pe care îl putem accesa și bitul aposthis va comuta acum o dată pe secundă wire. Input. Link (ooPIC. Hz1) wire. Output. Link (hz1) wire. Operate = cvTrue & aposthis setează adresa I2C a microcontrolerului nostru local și interfața aposthe I2C nu este activă până când nu este setată o adresă ooPIC. Node = 1 & aposnow ne configurăm obiectul DDELink, intrarea noastră este bitul hz1 și aposnote că obiectul are, de asemenea, o proprietate. Output care este utilizată și când suntem în modul de primire Master. Input. Link (hz1) & aposthis este adresa I2C a microcontrolerului la distanță, rețineți că & aposin codul slave, îi spunem să aibă o adresă de 2 Master. Node = 2 & aposugh … aceasta este partea mizerabilă, aceasta este „adresa” DDELink & aposobject în spațiul de memorie slave & aposs. Pentru a afla acest număr, trebuie să deschideți și să compilați codul sclav, apoi să mergeți la Vizualizare-> Cod compilat. & Aposlook pentru ceva de genul: & aposL *. Construct. Begin; Dim ca nou oDDELink & aposwhere * este orice număr și este numele obiectului DDELink & Aposin codul sclav. Rândul imediat dedesubt ar trebui să citească ceva de genul: & aposC0020: 041; Acesta.. Adresa și numărul aposthei din dreapta & apos: & apos este adresa obiectului slave DDELink Master. Location = 41 & aposthis spune obiectului că vom fi trimis date (adică, copiați datele din proprietatea noastră. Input & aposto the slave.output property (notă, dacă setați acest lucru pentru a primi, este opusul) Master. Direction = cvTrimiteți și apelați-l, dar încă nu se întâmplă nimic … Master. Operate = cvToate Do & aposcheck pentru a vedea dacă în prezent transmitem date Dacă Master. Transmitting = cvFalse Apoi & apossetting această valoare la 1 va face ca masterul să trimită valoarea către slave și aposnote, aceasta este resetată automat la 0 la finalizarea transmisiei Master. Sync = 1 End If LoopEnd Sub
Recomandat:
Permite remedierea unei taxe Fitbit 2 împreună. Linii în ecran .: 3 pași
Permite remedierea unei taxe Fitbit 2 împreună. Linii în ecran .: Deci, la aproximativ 13 monturi după ce am cumpărat primul meu Fitbit, am început să primesc linii care treceau pe ecran. În fiecare zi, altul ar apărea uneori mai mult decât unul pe zi. M-am gândit foarte bine și nu știam de ce a început. o singura data
Cum se face ca un termometru și un LCD să funcționeze împreună ?: 10 pași
Cum se face ca un termometru și un LCD să funcționeze împreună ?: Scopul acestui tutorial este să vă arăt cum să utilizați un termometru DHT11 care va afișa temperatura și umiditatea pe un ecran LCD de 16 x 2
Conectarea motorului la Arduino folosind L293D: 3 pași
Conectarea motorului la Arduino folosind L293D: Un motor este elementul de bază al roboticii și dacă înveți Arduino, atunci este foarte important să înveți să conectezi un motor la acesta. Astăzi o vom face folosind ic L293D. Un driver de motor L293D IC este cu adevărat important. Altfel, va
Discutați împreună cu Alexa și Google Assistant împreună într-un Raspberry Pi: 4 pași
Discutați împreună cu Alexa și Google Assistant împreună într-un Raspberry Pi: Rulați Amazon Alexa și Google Assistant în același timp într-un Raspberry Pi. Apelați oricare dintre numele lor, își aprind propriile LED-uri și sunete pentru a răspunde. Apoi cereți o cerere și vă răspund. Poți să le cunoști caracterul
Curățarea unei camere de generația a doua sau a doua: 8 pași
Curățarea unui Roomba de prima sau a doua generație: un robot curat este un robot fericit