Spisu treści:
- Krok 1: Podłączanie do magistrali sieciowej I2C
- Krok 2: Dodaj rezystory podciągające
- Krok 3: Zaprogramuj Slave
- Krok 4: Zaprogramuj Master
Wideo: Łączenie dwóch OOBoards razem za pomocą I2C: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:33
Ta instrukcja opisuje, jak połączyć dwie płyty OOBoard za pomocą I2C.
Krok 1: Podłączanie do magistrali sieciowej I2C
Na płytach OOBoard znajdują się dwie magistrale I2C, magistrala lokalna i magistrala sieciowa.
Kod OOPIC jest zasadniczo językiem interpretowanym, tj. „kod” jest przechowywany w pamięci EEPROM i odczytywany/interpretowany przez mikroprocesor w czasie rzeczywistym. EEPROM wykorzystuje magistralę LOCAL I2C do komunikacji z mikrokontrolerem. Gdybyś spojrzał na ten lokalny autobus na oscyloskopie, zobaczyłbyś nieustanną paplaninę. Na płytach OOBoards magistrala lokalna jest podłączona do złącza I2C, niekoniecznie tego chcemy. Magistrala NETWORK jest zwykle magistralą używaną do komunikacji z innymi urządzeniami/optykami, na płytach OOBoards ta magistrala nie ma złącza. Aby uzyskać dostęp do tej magistrali należy przylutować przewody do pinów 42 i 37 mikrokontrolera (oznaczone odpowiednio N_SDA, N_SCL na schemacie).
Krok 2: Dodaj rezystory podciągające
Po nawiązaniu połączeń SDA i SCL na każdym procesorze obie płyty mogą:
być połączone ze sobą, podłączając SDA do SDA, SCL do SCL i podłączając wspólny przewód uziemiający między płytami. Będziesz także potrzebował rezystora podciągającego na każdej linii (użyłem 12k, ale to właśnie leżało wokół). Zauważ, że potrzebujesz tylko jednego rezystora podciągającego na linię, co daje w sumie dwa rezystory (nie 4).
Krok 3: Zaprogramuj Slave
Teraz, gdy istnieją fizyczne połączenia, musisz zaprogramować podrzędny mikrokontroler. Dodałem poniżej kod, który powinien Ci zacząć.
Dim SLAVE As New oDDELinkDim LED As New oDIO1Sub Main() &ustaw nasz adres I2C na 2 (uwaga, musi on odpowiadać zdalnemu &adresowi ustawionemu w kodzie głównym) ooPIC. Node = 2 &ustaw diodę LED. IOLine = 5 LED. Direction = cvOutput &aposnow, połącz wyjście naszego obiektu DDELink z &apostthe LED i włącz je…teraz automagicznie dioda LED zacznie migać SLAVE. Output. Link(LED) SLAVE. Operate = cvTrueEnd Sub
Krok 4: Zaprogramuj Master
Na koniec zaprogramuj główny mikrokontroler. Zwróć szczególną uwagę na linie, które ustawiają właściwość. Location DDELink: Jeśli nie jest to ustawione poprawnie, to NIE zadziała!
Dim Master Jak nowy przewód oDDELinkDim Jak nowy oWireDim hz1 Jak nowy oBitSub Main() &apołącz 1-sekundowy timer z bitem, do którego mamy dostęp &aposthis bit będzie teraz przełączał się raz na sekundę przewodu. Input. Link(ooPIC. Hz1) wire. Output. Link(hz1) wire. Operate = cvTrue &apostto ustawia adres I2C naszego lokalnego mikrokontrolera &apostoże interfejs I2C nie jest aktywny dopóki nie zostanie ustawiony adres ooPIC. Node = 1 obiekt ma również właściwość. Output, która jest używana &aposgdy jesteśmy w trybie odbioru Master. Input. Link(hz1) &apostjest to adres I2C zdalnego mikrokontrolera, zauważ, że w kodzie slave mówimy mu, aby miał adres 2 Master. Node = 2 &aposugh…to jest gówniana część, to jest "adres" &aposobject DDELink w pamięci slave'a. Aby obliczyć tę liczbę, musimy otworzyć i skompilować kod slave, a następnie przejść do View->Compiled Code. &aposszukaj czegoś takiego: &aposL*. Construct. Begin;Dim as new oDDELink &aposwhere * jest dowolną liczbą i jest nazwą twojego obiektu DDELink &aposin twojego kodu podrzędnego. Wiersz bezpośrednio pod nim powinien wyglądać mniej więcej tak: &aposC0020:041;Ten.. Adres 'liczba po prawej stronie 'apos:' to adres obiektu podrzędnego DDELink Master. Location = 41 'aposthis informuje o obiekcie, który będziemy wysyłać data (tzn. skopiuj dane z naszej właściwości. Input & aposto właściwość slaves.output (uwaga, jeśli ustawisz tę opcję na otrzymywanie, jest odwrotnie) Master. Direction = cvSend &aposturn it on, ale jeszcze nic się nie dzieje… Master. Operate = cvTrue Do &apossprawdź, czy aktualnie przesyłamy dane If Master. Transmitting = cvFalse Następnie &ustawienie tej wartości na 1 spowoduje, że master wyśle wartość do slave'a. = 1 Koniec, jeśli Pętla Koniec Sub
Zalecana:
Podstawy IoT: Łączenie IoT z chmurą za pomocą systemu operacyjnego Mongoose: 5 kroków
Podstawy IoT: Łączenie IoT z chmurą za pomocą systemu operacyjnego Mongoose: Jeśli jesteś osobą, która zajmuje się majsterkowaniem i elektroniką, najczęściej natkniesz się na termin Internet rzeczy, zwykle w skrócie IoT, i że odnosi się do zestawu urządzeń, które mogą łączyć się z Internetem! Będąc taką osobą
Stwórz parę Darlington za pomocą dwóch Npn BJT: 9 kroków
Stwórz parę Darlington za pomocą dwóch Npn BJT: Ta instrukcja będzie dotyczyć pary Darlington i jej zastosowań. Przejdę szczegółowo pod kątem konstrukcji opartej zarówno na typie NPN, jak i PNP (wkrótce! - bądź na bieżąco). Więc zacznijmy
Transfer energii za pomocą dwóch cewek Tesli: 7 kroków (ze zdjęciami)
Przenoszenie energii za pomocą dwóch cewek Tesli: Za pomocą tych cewek Tesli można zapalić diodę LED podłączoną do jednego przewodu. Energia jest przesyłana w prawo z lewej anteny. Generator sygnału jest podłączony do czarnej prawej cewki (prawa antena). Na 2 antenach energia jest przekazywana przez indukcję
Sterowanie silnikiem serwo RC za pomocą Arduino i dwóch chwilowych przełączników: 4 kroki
Sterowanie serwomotorem RC za pomocą Arduino i dwóch chwilowych przełączników: nazwa mówi wszystko. Sterowanie serwomotorem samochodu RC za pomocą Arduino i niektórych rezystorów, przewodów połączeniowych i dwóch przełączników dotykowych. Zrobiłem to drugiego dnia, kiedy dostałem Arduino, więc jestem z siebie dość dumny
Opanuj perfekcyjne łączenie przewodów w linii za każdym razem: 7 kroków (ze zdjęciami)
Opanuj perfekcyjne łączenie przewodów za każdym razem: W tej instrukcji nauczę Cię, jak wykonać idealne łączenie przewodów w linii za każdym razem. Co to jest łączenie w linii? Cóż, jeśli pracujesz z dowolnym rodzajem okablowania elektrycznego i musisz połączyć 2 części drut masz 2 opcje, pigtail lub inlinePigtail s