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 10 maja 2025, o 19:06


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 
    Autor Wiadomość
     Tytuł: 74HC595
    PostNapisane: 25 maja 2013, o 08:28 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 78
    Lokalizacja: Grójec
    Pomógł: 2

    Witam :) Próbuję połączyć kaskadowo dwa układy 74HC595 i za każdym razem drugi układ zczytuje mi z pierwszego układu.
    Wygląda to tak: http://www.youtube.com/watch?v=KAsZDdgbYQE
    Podłączałem według schematu od kolegi Antystatycznego http://imageshack.us/f/842/kaskada.png/
    Kod: http://www.wklej.org/id/1047692/

    Sprawdzałem kilkanaście razy połączenia, rozłączałem wszystko i jeszcze raz podłączałem i za każdym razem tak samo.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 maja 2013, o 08:44 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2013
    Posty: 328
    Lokalizacja: Rzgów k. Łodzi
    Pomógł: 11

    Pokaż funkcje send_spi. Jeśli ona jest bez zmian jak w książce to normalne jest takie zachowanie. Musisz pozmieniać w niej żeby wysłała 16 bitów a nie 8

    Wysłane z mojego Nexusa 7 za pomocą Tapatalk 2

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 25 maja 2013, o 08:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 78
    Lokalizacja: Grójec
    Pomógł: 2

    Zgadza się funkcja jest bez zmian, taka sama jak w książce, żeby wysłać 16 bitów trzeba zmienić void SendSpi(uint8_t bajt ) na void SendSpi(uint16_t bajt ) ??
    Po zmianie jest tak samo :(



    Ostatnio edytowano 25 maja 2013, o 08:55 przez komor34, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 maja 2013, o 08:55 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2013
    Posty: 328
    Lokalizacja: Rzgów k. Łodzi
    Pomógł: 11

    Musisz jeszcze zmienić ciało funkcji.

    Wysłane z mojego Nexusa 7 za pomocą Tapatalk 2

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 25 maja 2013, o 09:01 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27383
    Lokalizacja: Szczecin
    Pomógł: 1043

    PawelGaj napisał(a):
    Musisz pozmieniać w niej żeby wysłała 16 bitów a nie 8


    panowie ale to jest troszkę bez sensu ;) a jak ktoś zechce podłączyć 3 scalaki to co będziecie przerabiać funkcję żeby wysyłała 24 bity, a jak 12 scalaków to ????

    język C to świetne narzędzie, wystarczy zrobić sobie funkcję, która wysyła 1bajt gdziekolwiek , na dowolną magistralę, i tego staram się nauczyć was w książce, to PODSTAWA

    a później to już się robi funkcje nadrzędne, które mogą przesyłać ile całych bajtów chcecie - tylko w środku wykorzystujemy zawsze tę podstawową do wysłania pojedynczego bajtu....

    taką drogą warto iść i myśleć ... a nie przerabiać podstawową funkcję, mając podstawową - chcesz wysłać dwa bajty, proszę

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


    chcesz trzy, cztery a może 10 ? nie ma sprawy napisz podobną, ale przekaż jako argument bufor z bajtami do wysłania i użyj pętli for, znowu wyjdzie tylko kilka linijek kodu.

    Toż to się robi jak z klocków lego ;)


    Autor postu otrzymał pochwałę

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 maja 2013, o 09:04 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2013
    Posty: 328
    Lokalizacja: Rzgów k. Łodzi
    Pomógł: 11

    Chciałem bardziej łopatologiczne żeby łatwiej było mu to zrozumieć ;-)

    Wysłane z mojego Nexusa 7 za pomocą Tapatalk 2

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 maja 2013, o 09:31 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2013
    Posty: 328
    Lokalizacja: Rzgów k. Łodzi
    Pomógł: 11

    Zamiast tysiąca tych funkcji na początku mogłeś zastosować #define ;) Czyli np. tak : #DEFINE MOSI_H SPI_PORT
    |= MOSI
    Wysłane z mojego Nexusa 7 za pomocą Tapatalk 2

    _________________
    sig off ;(



    Ostatnio edytowano 25 maja 2013, o 09:33 przez PawelGaj, łącznie edytowano 1 raz

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 maja 2013, o 09:34 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 sty 2013
    Posty: 328
    Lokalizacja: Rzgów k. Łodzi
    Pomógł: 11

    Ważne ze działa i spełnia Twoje oczekiwania ;-)

    Wysłane z mojego Nexusa 7 za pomocą Tapatalk 2

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 25 maja 2013, o 09:53 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 78
    Lokalizacja: Grójec
    Pomógł: 2

    Dziękuję wszystkim za pomoc, działa prawie dobrze. Jeśli na 2 układzie świeci się pierwsza dioda to na 1 układzie lekko miga pierwsza dioda. Wygląda to tak http://www.youtube.com/watch?v=FA0LNcPg ... e=youtu.be



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 25 maja 2013, o 10:20 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27383
    Lokalizacja: Szczecin
    Pomógł: 1043

    komor34 napisał(a):
    Dziękuję wszystkim za pomoc, działa prawie dobrze. Jeśli na 2 układzie świeci się pierwsza dioda to na 1 układzie lekko miga pierwsza dioda. Wygląda to tak http://www.youtube.com/watch?v=FA0LNcPg ... e=youtu.be


    bo nie LATCH'uszesz ;)

    czyli prościej mówiąc nie zatrzaskujesz ;) .... danych po wprowadzeniu, i dlatego widać jak wprowadzasz kolejne ....

    przy okazji wyrzuć to opóźnienie delay_ms(1), które jest tam pokazane w książce w tej funkcji

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 25 maja 2013, o 10:58 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 78
    Lokalizacja: Grójec
    Pomógł: 2

    A jak zrobić takie zatrzaskiwanie danych?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 2 cze 2013, o 10:40 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27383
    Lokalizacja: Szczecin
    Pomógł: 1043

    Spójrz sobie to noty PDF - przecież zatrzaskiwania nie robi się pinem OE bo to jest odpowiednik sygnału CS (Chip Select), więc OE (pin nr.13) można na stałe do GND podłączyć. A zatrzaskiwanie masz sygnałem LC (Latch Clock pin nr.12) .....

    Obrazek

    i z procka używasz TYLKO 3 linii

    MOSI - - - - > Serial IN (pin nr.14)
    SCK - - - - - > Shift Clock (pin nr.11)
    CS - - - - - - > Latch Clock (pin nr.12) ..... przy czym tym pinem sterujesz ręcznie TYLKO po wysłaniu danych na chwilkę zmieniasz na nim stan na przeciwny i z powrotem żeby zatrzasnąć dane


    to wsio

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 2 cze 2013, o 12:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 78
    Lokalizacja: Grójec
    Pomógł: 2

    Czyli wysyłam dane do układu, zmieniam stan CS na przeciwny potem z powrotem. I diody będą mi się zaświecać na pierwszym układzie a na pozostałych nie?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 2 cze 2013, o 13:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 10 mar 2013
    Posty: 739
    Lokalizacja: Poznań
    Pomógł: 84

    Witam
    jeśli połączysz równolegle piny nr.12 dwóch układów to zatrzaskujesz dane w dwóch układach jednocześnie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 2 cze 2013, o 13:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 78
    Lokalizacja: Grójec
    Pomógł: 2

    Chcę uzyskać efekt wężyka na diodach na 3 układach (dioda przeskakuje po kolei od pinu nr 1 do 7 pierwszego układu i przeskakuje na następny), więc jak mam sterować linią CS, aby na 2 i 3 układzie nie zapalały się diody jeśli diody lecą na pierwszym układzie?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 2 cze 2013, o 14:15 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 10 mar 2013
    Posty: 739
    Lokalizacja: Poznań
    Pomógł: 84

    Jeśli połączyłeś układy w kaskadę to wysyłasz z procka
    trzy bajty danych ośmio-bitowych jeden za drugim a
    później zatrzaskujesz je jednocześnie.
    np.
    dana1 - 0b00000000
    bana2 - 0b00000000
    dana3 - 0b01000000

    machnięcie (przełączenie) CS
    i pali ci się dioda nr. 2

    Zaznaczam jestem początkujący :)


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 2 cze 2013, o 15:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 78
    Lokalizacja: Grójec
    Pomógł: 2

    Dziękuję za pomoc, wieczorkiem zrobię tak jak kolega napisał i zobaczymy co z tego wyjdzie :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 3 cze 2013, o 14:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 28 lip 2012
    Posty: 78
    Lokalizacja: Grójec
    Pomógł: 2

    Bardzo dziękuję za pomoc, teraz działa dobrze :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 25 sie 2013, o 18:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 lut 2013
    Posty: 376
    Lokalizacja: Kłopoty-Stanisławy
    Pomógł: 33

    Czy mógłbyś udostępnić działający kod, bo jakoś nie mogę się ogarnąć z dwoma scalakami i cały czas mam to co pokazałeś na początku na filmiku.

    Nie bardzo rozumiem co mirekk36 miał na myśli pisząc :
    mirekk36 napisał(a):
    void sendWord( uint16_t w ) {
        send_bajt( w>>8 );
        send_bajt( w );
    }

    _________________
    50 znaków Atnela ....



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 25 sie 2013, o 20:07 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 maja 2012
    Posty: 174
    Lokalizacja: Gliwice
    Pomógł: 19

    Cześć,

    wczoraj akurat pisałem program do obsługi dwóch takich scalaków. Na pewno nie jest idealny ale działa.

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 25 sie 2013, o 21:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 18 lip 2012
    Posty: 208
    Lokalizacja: Kraków
    Pomógł: 16

    Ja zrobilbym to na instrukcji switch. W funkcji jako argument wysylalbym nr rejestru. W zaleznosci od tego nr zatrzaskiwalbym odpowiedni rejestr. Prosto i bez kombinacji ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: 74HC595
    PostNapisane: 26 sie 2013, o 07:10 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 11 lut 2013
    Posty: 376
    Lokalizacja: Kłopoty-Stanisławy
    Pomógł: 33

    Koledzy :)

    Bardzo dziękuję dla sz4t4n. Jego kod zadziałał. Nawet , wydaje mi się, że zrozumiałem co ten kod robi, ale na pewno nie do końca.

    W tej chwili obsługuje dwie kości, a co jeśli będę miał trzecią ?

    Zmienna (x) jest 16-bitowa - przy dwóch 74* jest OK, a jaka miałaby być przy trzech ?

    BTW są zmienne 64-bitowe, to 8 kostek - a jeśli będę potrzebował dziesięć ?

    ------------------------ [ Dodano po: 32 minutach ]

    Moim założeniem jest zrobienie PWM'a na trzech kostkach z ewentualną możliwością dołożenia kolejnych (jednej lub dwóch).

    _________________
    50 znaków Atnela ....



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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