Arduino 25: MAGISTRALA I2C
HTML-код
- Опубликовано: 19 авг 2024
- O magistrali I2C i jej użyciu przez Arduino. O ekspanderach portów. O układzie MCP23008. Poznajemy tablice.
Kod, na którym bazuje odcinek można pobrać stąd:
adamsmialek.co...
Zapraszam do wsparcia mojego kanału:
patronite.pl/s...
PayPal.Me/smialekadam
oraz do subskrybowania:
www.youtube.co...
#Arduino #i2c #mpc23008
Kolejny świetny film. Trochę coś tam kumam gdyż jestem z wykształcenia informatykiem ale ogólnie jestem zielony z mikrokomputera arduino ale ogląda się Pana panie Adamie swietnie od dechy do dechy. Jest coś w Pana filmach co zatrzymuje mnie na dłużej. Osobiście najbardziej podobał mi się film o świetlówkach a ostatnio w pracy padła nam lampa jazeniowa to dzięki Pana wykładzie blyszczalem z wiedzy jaka pan przekazał i dzięki Panu znalazłem usterkę nie działającej lampy. Dziękuję i pozdrawiam.
Brać zestaw i robić układy!! Sama frajda, zapewniam. :)
@@BartekEVH trochę się nad tym zastanawiałem aby zacząć się bawić arduino i myślałem zacząć od automatu do oświetlenia w mieszkaniu i na balkonie typu dzień noc. 😀
@@rafalboro4856 to do tego nie trzeba Arduino, wystarczy fotorezystor, tranzystor i jakiś komparator do tego
@@uzyszkodnikaplikacji5757 ale może akurat on nie chce sterować światłem na dworze, co bywa problematyczne, tylko ustalać sobie godziny pracy i inne patenty.. Dla nie elektronika, a właśnie informatyka Arduino to zbawienie i wnosi dodatkowo ogromne możliwości rozwoju swego układu nie stawiając ograniczeń, jak zwykła elektronika.
I pięknie! :)
Ładne basy na końcu w słuchawkach. :)
👍 👍 👍 Klasyka! P.S. Nie chcę wyjść na czepialskiego, ale jak pod koniec filmu widzę tablicę, a potem w kodzie "&& licznik < 17", to to 17 przyprawia mnie o... 😜
A nie kumam, co z tym licznikiem nie tak...
@ Ano nie tak, że jak dasz wartość liczbową na stałe wpisaną w kod, a później zmienisz wielkość tabeli np. do 20, a zapomnisz zmienić te 17, to będziesz miał bałagan. Ale jeszcze większy bałagan będzie jak zmienisz wielkość tabeli do np. 10 a zostawisz te 17 bez zmian. W pierwszym przypadku nie uzyskasz tylko dodatkowej funkcjonalności, w drugim program się wyłoży. To nie jest zbyt elegancki sposób pisania kodu, że tak powiem dyplomatycznie... 😜
Aaa, że o to chodzi. A to racja, ale to niejako była ewolucja już w trzeciej odsłonie i nie chciałem mocniej mieszać. Poza tym generalnie to ja nie deklaruję rozmiarów tablic, bo i po co. Warunki graniczne deklaruję albo w miejscu ich badania, albo globalnie - jeśli jest taka potrzeba.
W zasadzie to istnieją dwie szkoły: deklarowania wszystkich stałych w jednym miejscu (popieram w dużych projektach) albo w miejscach ich użycia - i tu popieram w małych programach z grupy automatyki przemysłowej, bo tam zwykle nie ma potrzeby robienia większych spraw.
Witam i pozdrawiam 👍
Adam kolejny świetny materiał. Gratuluje
przy okazji możesz edukować z dobryk praktyk - czyli nazwać tablicę taką nazwą, aby czytając kod, sama nazwa wyjaśniła jej funkcję, bez potrzeby analizowania deklaracji tablicy i jej zawartości - taka moja drobna uwaga na przyszłość. A generalnie to ten cykl z arduino jest mega. Niby wszędzie pełno tego arduino, ale taki kompleksowy i praktyczny kurs to rarytas.
Tu tak właśnie jest: tablica nazywa się "tablica", ponieważ jej zadaniem jest wyjaśnienie czym jest tablica :) W kolejnych filmach oczywiście tak już nie będzie.
Odcinek o I2C powinien się pojawić znacznie wcześniej, może nawet tuż po odc. 3!
Panie Adamie 👍👍👍
Dziękuję I pozdrawiam
Jak na filmik o I2C to było tu wyjątkowo mało o I2C. Tak, znowu marudzę :P
Poszukaj na kanale RS Elektronika.
@@Mr7700mayday Wejdę sobie na elektrodę. Tam mi na pewno jacyś życzliwi ludzie pomogą ;-D
@@Excray80 🤣 tam sami tacy
W kolejnym odcinku można użyć MPC23S08 i mamy o SPI, nawet za wiele nie trzeba poprawiać materiału ;)
@Bartek cytat: "Moderowany przez tomaszo: Ostrzezenie za pisanie postow jeden pod drugim. Nastepnym razem bedzie za to przynajmniej blokada pisania na miesiac,jesli nie BAN" ;)
Dziękuię.
A może tak odcinek towarów modnych o różnych rodzajach wyświetlaczy w RTV i AGD, taka propozycja
Co prawda, jest to jeszcze w zakresie mojej wiedzy. Ale warto się upewnić. Czekam na następne odcinki. Pozdrawiam.
Super.
Zazwyczaj słowa "port" używa się w odniesieniu do grupy wejść lub wyjść, a nie do pojedynczego wejścia/wyjścia.
A co w przypadku wejść/wyjść szeregowych? :)
"Aj-skłer-si" ;)
👍👍👍👍
Zastosowanie arraya do deklaracji znaków nijak nie robi tego kodu bardziej pro, a jedynie zadowala pewnych ortodoksów. Switch-case jest w tym przypadku najbardziej na miejscu, array niczemu tutaj nie służy i jedynie zmniejsza czytelność i wygodę (bo trzeba się odwoływać do indeksu tablicy, które to indeksy liczbowe kompletnie nic nie mówią). Idealnie i pro byłoby napisać klasę i użyć obiektu, która to abstrakcja mogłaby zarówno ukryć definicje wartości binarnych, jak i pozwoliłaby odwoływać się do znaków po jakichś wyższego poziomu czytelnych wywołaniach metod klasy. Albo wyekstrahować wartości z kodu do zewnętrznego configa. Co oczywiście dołożyłoby roboty i byłoby trochę pretensjonalnym przerostem chujni nad grzybnią, ale skoro miałoby być "fachowo"... to można iść dalej i zakodować to np. z użyciem exceptions / try/catch, albo jeszcze innych fikołków. Tylko po co. Dla takiego zastosowania trzymałbym się po prostu switcha, który robi dokładnie co ma robić, wszystko widać, a praktyki dobrego kodowania i architektury oprogramowania to nie ta lekcja. A jak ktoś będzie marudził, że switch..case - są be, a if..else - a kysz, to niech sobie implementuje jak uważa.
Najważniejsze, że można zrobić tak i tak.
Pozdrawiam.#
Jeżeli deklarujemy zmienną, nie nadając jej wartości początkowej, to ma ona wartość nieokreśloną, a nie domyślną.
To zależy od mikroprocesora. W większości wypadków pamięć jest zerowana, więc i zmienne mają domyślnie tę wartość.
Drzemdobry
Ok
sprawdź co dla ciebie nagrałem
A teraz wyobraźmy sobie gdzie mamy jakieś urządzenie pod i2c ale żadnej biblioteki nie ma do niego.
To bierzemy pedeefa i piszemy obsługę tego protokołu na piechotę, żaden problem.
@ Żaden problem dla Pana :)
Widać nigdy nie musiał się Pan uczyć Fortranu. Wtedy inna zmienna sterująca pętli niż i, j lub k nie przejdzie przez palce 🙂