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 w 2025? 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 12 kwi 2025, o 14:32


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
    Autor Wiadomość
    PostNapisane: 15 mar 2021, o 23:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 sie 2015
    Posty: 205
    Lokalizacja: UK
    Pomógł: 10

    Zobacz sobie do noty jak wygląda rozdział o I2C (TWI). Masz tam nawet przykład kodu w języku C (zdjęcie poniżej) jeżeli chcesz się upewnić czy dobrze ustawiasz bity w opisanych tam rejestrach.
    Musisz dostosować ustawienia komunikacji do modułu, z którym się komunikujesz. Dotyczy to również jego adresu w magistrali. Sama nota opisuje dosyć dobrze budowę ramki. Warto również poczytać w internecie o samym standardzie. Jeżeli masz bluebooka to wydaje mi się, że w nim też był jakiś przykład (bodajże oparty na komunikacji z zewnętrznym układem RTC o ile mnie pamięć nie myli).

    Obrazek

    ------------------------ [ Dodano po: 2 minutach ]

    Przy okazji, patrząc na twój kod, należałoby pozbyć się częstotliwości taktowania uC z definicji preprocesora. Jeżeli faktycznie jesteś początkujący to polecałbym zacząć od początku (chociażby od wcześniej wspomnianego przeze mnie bluebooka).

    _________________
    MMT Technologies



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 mar 2021, o 23:46 
    Offline
    Nowy

    Dołączył(a): 14 mar 2019
    Posty: 1
    Pomógł: 0

    tak w dużym skrócie

    1. musisz mieć biblioteki do obsługi LCD i I2C i je zainkludować do programu

    #include "LCD/lcd44780.h"
    #include "I2C_TWI/i2c_twi.h"

    nie zapominając o zaadresowaniu expandera w bibliotece lcd


    2. zrobić inicjację

    i2cSetBitrate(100);
    lcd_init();

    3. potem możesz już użyć

    lcd_str("start...");

    itp. itd.

    a najlepiej zacznij od bb



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 mar 2021, o 07:23 
    Offline
    Użytkownik

    Dołączył(a): 01 mar 2021
    Posty: 28
    Pomógł: 2

    Ttt



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 mar 2021, o 08:21 
    Offline
    Użytkownik

    Dołączył(a): 18 lut 2015
    Posty: 164
    Lokalizacja: Koszalin
    Pomógł: 16

    Witaj!
    Bardzo dużo praktycznych informacji jak zacząć znajdziesz na kanale Atnel - mirekk36.
    Tam jest mnóstwo filmów i jeślibyś tylko obejrzał większość z nich to nauczysz się programowania w C.
    Nie wiem w czym pracujesz na GNU/Linux ale ja (Fedora/Debian) pracuję w Eclipse i również na tym samym kanale YT masz mnóstwo informacji jak pisać, kompilować i działać w tym środowisku polecam.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 mar 2021, o 19:50 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    Nie zdaje to egzaminu bo to po prostu tak nie działa...
    Programowanie wieloplatformowe w C++ i programowanie mikrokontrolerów
    to niestety inna bajka.
    Jeśli chcesz to ogarnąć to musisz się troszkę poduczyć.

    Powodzenia

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 mar 2021, o 20:08 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1033
    Lokalizacja: Trójmiasto
    Pomógł: 190

    Przede wszystkim to powinieneś zacząć od tego jaki to wyświetlacz, bo na razie to można tylko powróżyć z tekstu jaki wypisałeś.
    Druga sprawa to obojętnie jaki to nie będzie wyświetlacz, jeśli jest podłączany na magistralę TWI (czy jak kto woli I2C) to tu masz 2 rzeczy do ogarnięcia:
    1 - to obsługa magistrali - i to powiedzmy w jakimś tam stopniu masz ogarnięte (choć nie do końca bo w Twoich funkcjach brakuje adresowania urządzenia - na magistrali I2C może pracować kilka urządzeń, ale nawet jak jest jedno to i tak ma ono swój adres i podczas wysyłki musisz je najpierw zaadresować inaczej będzie ignorować nadchodzące dane).
    2 - protokół komunikacyjny wyświetlacza - i tu nie masz nic. Wyświetlacz ma swój zestaw komend które nim sterują. Samo wysłanie kodu znaku nie spowoduje że on go wyświetli. Przede wszystkim wyświetlacz trzeba zainicjalizować (czyli wysłać zestaw komend które go przygotują do pracy) dopiero wówczas można coś na nim będzie wyświetlić... i to nie koniec bo pisząc "coś wyświetlić" niekoniecznie musi być to znak, bo np. jak to wyświetlacz graficzny typu dotmatrix to możesz sobie co najwyżej wyświetlić pixel. Aby wyświetlić znak musisz stworzyć tablicę znaków złożonych z pixeli, i dopiero wówczas możesz myśleć o wyświetleniu znaku. Ale tak jak pisałem wcześniej, wszystko zależy od tego co to za wyświetlacz.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 mar 2021, o 20:51 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    A w opisie Twojego wyświetlacza jest napisane, że konwerter oparty jest na PCF8574.
    No to teraz nota PDF i trzeba poczytać jak jest on sterowany. Jak szybka może być magistrala
    jaki jest adres układu...
    Potem trzeba zapoznać się ze sterowaniem wyświetlaczem opartym na sterowniku kompatybilnym\
    z HD44780...
    Trochę tego jest na początek

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 16 mar 2021, o 21:02 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 paź 2014
    Posty: 1033
    Lokalizacja: Trójmiasto
    Pomógł: 190

    Ok, to problem tablicy znaków masz z głowy, bo kontroler tego wyświetlacza ma taką wbudowaną.
    Ten konwerter LCM1602 ma 3 zworki A0, A1, A2 którymi ustalasz jaki adres będzie miał ów moduł na magistrali I2C (musisz zajrzeć do noty pdf od scalaka który siedzi na module czyli PCF8574 i dobrze rozpoznać jaka jest korelacja pomiędzy tymi zworkami a pełnym adresem)
    Ale to dopiero początek drogi. Potrzebujesz bibliotekę do wyświetlacza czyli zestaw funkcji które zainicjują wyświetlacz, funkcje służące do wysyłki znaków, ustawiania kursora na odpowiedniej pozycji itd itp; i to biblioteki która będzie dostosowana do komunikacji po I2C, bo ten wyświetlacz domyślnie komunikuje się po interfejsie równoległym.
    Bibliotekę możesz albo napisać sam, albo poszukać w necie, ewentualnie przeportować z bibliotek arduino...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 mar 2021, o 11:40 
    Offline
    Użytkownik

    Dołączył(a): 02 gru 2015
    Posty: 548
    Pomógł: 27

    Cytuj:
    To chyba jednak jeszcze nie na moje możliwości...
    Zmuszony jestem wsadzić wyświetlacz do szuflady na jakiś czas i pobawić się wyświetlaczem led.


    Myślę że za szybko się poddajesz jest jeszcze jedna dużo łatwiejsza droga, ale za to wymaga więcej zaangażowania. Kup Bluebooka tam masz wszystko opisane co i jak, i są nawet gotowe biblioteki ogromna pomoc na start.



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

    Dołączył(a): 25 lip 2013
    Posty: 2595
    Pomógł: 128

    Jeżeli temat uC Ciebie wciągnie to gorąco polecam zestaw ATB od Mirka. Sam mam ich kilka i używam ich do deweloperki z różnymi producentami procków :)



    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: 10 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO