Sadržaj:

Povezivanje dvije OOBoard ploče zajedno pomoću I2C: 4 koraka
Povezivanje dvije OOBoard ploče zajedno pomoću I2C: 4 koraka

Video: Povezivanje dvije OOBoard ploče zajedno pomoću I2C: 4 koraka

Video: Povezivanje dvije OOBoard ploče zajedno pomoću I2C: 4 koraka
Video: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, Srpanj
Anonim
Povezivanje dvije OOBoard ploče zajedno pomoću I2C
Povezivanje dvije OOBoard ploče zajedno pomoću I2C

Ovo uputstvo pokriva kako spojiti dvije OOBard kartice pomoću I2C.

Korak 1: Spajanje na I2C mrežnu sabirnicu

Spajanje na I2C mrežnu sabirnicu
Spajanje na I2C mrežnu sabirnicu
Spajanje na I2C mrežnu sabirnicu
Spajanje na I2C mrežnu sabirnicu

Na OOBoards -ima postoje dva I2C autobusa, lokalni autobus i mrežni sabirnik.

OOPIC kôd je u biti interpretirani jezik, tj. "Kôd" je pohranjen u EEPROM -u, a mikroprocesor ga čita/tumači u stvarnom vremenu. EEPROM koristi LOCAL I2C sabirnicu za komunikaciju s mikrokontrolerom. Kad biste pogledali ovaj lokalni autobus na osciloskopu, vidjeli biste neprestano brbljanje. Na OOBoards pločama lokalna sabirnica je ono što je spojeno na I2C konektor, to nije nužno ono što želimo. NETWORK sabirnica obično je sabirnica koja se koristi za komunikaciju s drugim uređajima/oopicima, na OOBoardovima ova sabirnica nema konektor. Da biste pristupili ovoj sabirnici, morate lemiti žice na pinove 42 i 37 mikrokontrolera (označeni N_SDA, N_SCL na shemi, respektivno).

Korak 2: Dodajte Pullup otpornike

Nakon što se povežu SDA i SCL veze na svakom procesoru, dvije ploče mogu

biti spojeni spajanjem SDA na SDA, SCL na SCL i spajanjem zajedničke uzemljene žice između ploča. Također će vam trebati pull-up otpornik na svakoj liniji (koristio sam 12k, ali to je ono što sam imao okolo). Imajte na umu da vam je potreban samo jedan otpornik za podizanje po liniji za ukupno dva otpornika (ne 4).

Korak 3: Programirajte slave

Sada kada postoje fizičke veze, morat ćete programirati pomoćni mikrokontroler. Dolje sam dodao neki kôd koji bi trebao započeti.

Priguši SLAVE kao novo oDDELinkDim LED kao novo oDIO1Sub Main () & postavi našu I2C adresu na 2 (imajte na umu da se ovo mora podudarati s udaljenom & adresnom adresom koju smo postavili u glavnom kodu) ooPIC. Node = 2 & apossetup LED LED. IOLine = 5 LED. Direction = cvOutput & aposnow, povežite izlaz našeg objekta DDELink sa & aposthe LED, i uključite ga … sada će automatski, LED dioda će treptati SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

Korak 4: Programirajte Master

Na kraju programirajte glavni mikrokontroler. Obratite posebnu pozornost na retke koji postavljaju svojstvo. Location DDELinka: Ako ovo nije ispravno postavljeno, ovo NEĆE uspjeti!

Dim Master As New oDDELinkDim žica kao nova oWireDim hz1 kao nova oBitSub Main () & aposinkrovati timer od 1 sekunde na bit kojem možemo pristupiti & aposthis bit će se sada mijenjati jednom u sekundi žice. Ulaz. Link (ooPIC. Hz1) žica. Link (hz1) wire. Operate = cvTrue & aposthis postavlja I2C adresu našeg lokalnog mikrokontrolera & aposthe I2C sučelje nije aktivno sve dok adresa nije postavljena ooPIC. Node = 1 & aposnow postavimo naš objekt DDELink, naš ulaz je bit hz1 & aposno napominjemo da Objekt također ima svojstvo. Output koje se koristi & apos kada smo u načinu primanja Master. Input. Link (hz1) & aposthis I2C adresa udaljenog mikrokontrolera, imajte na umu da & aposin slave code, kažemo mu da ima adresu 2 Master. Node = 2 & aposugh … ovo je usrani dio, ovo je "adresa" DDELink & aposobject u memorijskom prostoru slave & aposs. Da bismo shvatili ovaj broj, & aposwe moramo otvoriti i sastaviti slave kôd, a zatim otići na View-> Compiled Code. & aposlook za nešto poput: & aposL *. Construct. Begin; Dim as new oDDELink & aposwhere * je bilo koji broj i naziv je vašeg objekta DDELink & aposin vašeg slave koda. Redak ispod njega trebao bi glasiti nešto poput: & aposC0020: 041; This.. Address & aposthe number with the des of the & apos: & apos je adresa slave DDELink objekta Master. Location = 41 & aposthis govori objektu koji ćemo poslati data (tj. kopirajte podatke iz našeg. Input svojstva i aposto slaves.output svojstva (napomena, ako ovo postavite da prima, to je suprotno) Master. Direction = cvSend & aposturn on, ali ništa se još ne događa … Master. Operate = cvTrue Učinite & aposcheck da provjerite prenosimo li podatke. Ako Master. Transmitting = cvFalse Zatim & apospostavka ove vrijednosti na 1 uzrokuje da master pošalje vrijednost na slave & aposnote, to se automatski poništava na 0 po završetku prijenosa Master. Sync = 1 Kraj Ako je LoopEnd Sub

Preporučeni: