Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 15 lip 2025, o 10:19


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
    Autor Wiadomość
    PostNapisane: 25 mar 2017, o 17:26 
    Offline
    Nowy

    Dołączył(a): 05 gru 2015
    Posty: 3
    Pomógł: 0

    Witam, zacząłem pisać własną bibliotekę do w.w. expandera MCP. Otóż mam wielki problem z połączeniem układ nie reaguje. Ale zacznijmy od fundamentów..

    A0=A1 -> podłączone do VCC, A2 -> GND więc ustawiłem adres jako 0x43h . Następnie podłączyłem diody poprzez rezystor 220om do portu A. W programie wykorzystuje "Mirkową" bibliotekę do obsługi I2C. W inicjalizacji ustawiam port A jako wyjście poprzez zapisanie do rejestru IODIRA wartości 0x00h, następnie na połowie portu ustawiam stan wysoki, na drugiej połowie niski (czyli teoretycznie 4 diody się zapalają, a 4 są zgaszone). W tym celu zmieniam rejestr GPIOA na wartość 0xF0h.

    Sercem jest ATmega328p do której również podłączony jest LCD2x16 też przez I2C o adresie 0x40h który działa. Dodatkowo przy expanderze dołożyłem 2x 4.7k om dla linii SDA i SCL choć już te linie są podciągnięte na adapterze przy LCD.

    Gdzie może być bubel i czym się różnią 2 rejestry GPIOx i OLATx wg. mnie przy zapisie działają tak samo a przy odczycie? Pozdrawiam


    Ciało funkcji inicjalizującej

    Składnia: [ Pobierz ] [ Ukryj ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Ostatnio edytowano 25 mar 2017, o 17:57 przez karl9955, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2017, o 17:50 
    Offline
    Użytkownik

    Dołączył(a): 15 gru 2013
    Posty: 213
    Pomógł: 5

    Na początek popraw sposób w jaki zamieściłeś swój kod i skorzystaj z SYNTAX. To ważne ;) .



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2017, o 19:04 
    Offline
    Nowy

    Dołączył(a): 05 gru 2015
    Posty: 3
    Pomógł: 0

    Działa! :D Dla potomnych, skucha była w adresie pominąłem bit R/W zatem wysyłając "zapytanie" do urządzenia slave należy użyć bitu kontrolnego o wartości |0|1|0|0|A2|A1|A0|R/W| np dla A2 podłączonego do VCC i A1=A0 podłączonego do GND. |0|1|0|0||1|0|0|0| czyli adres to 0x48
    0x4 pozostaje bez zmian, pozostałe 4 bity mogą przyjmować wartości z przedziału <0;E>
    edit: :!:
    bez wartości gdzie na najmłodszym bicie występuje 1. Może przyjąć np 0000 0010 0100 0110 1000 1010 1100 1110 tylko te 8 ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 mar 2017, o 21:00 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 06 gru 2013
    Posty: 121
    Pomógł: 16

    Fajny scalaczek też mam na stercie karteczkę z napisem dotknać-przetestować :) Dla ciekawości jego brat MCP23018 jest ciut szybszy w razie potrzeby :) potrafi gadać po I2C z prędkością 3.4 MHz. Miłej zabawy :)

    _________________
    http://strefapic.blogspot.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 3 lis 2020, o 21:34 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2015
    Posty: 55
    Pomógł: 0

    Witam
    Widzę że wątek już ma kilka lat ale właśnie usiłuję odpalić układ MCP tak jak w temacie
    czy można prosić autora o fragment kodu jak ustawiać porty jako wejścia i wyjścia i jak to odczytywać i zapisywać tez używam biblioteki Mirka MK_I2C i o ile ogarnąłem sobie już pcf-y to z tym MCP jakoś mi nie idzie
    wszystko mam podłączone raczej na 99% dobrze tylko tych rejestrów nie ogarniam :(

    piny A1 A2 A3 -> VCC
    diody podłączone katodami do układu
    wiec teoretycznie powinno wszystko się zaświecić a tu nic :(
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Proszę o pomoc
    Pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Google [Bot] i 7 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO