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 5 cze 2025, o 13:27


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
    Autor Wiadomość
    PostNapisane: 11 mar 2015, o 07:51 
    Offline
    Nowy

    Dołączył(a): 04 lut 2015
    Posty: 19
    Pomógł: 0

    Witam! Znalazłem taki prosty sposób przesłania zmiennej przy użyciu modułów radiowych bez użycia biblioteki VirtualWire:

    [ kody programów wstawiamy zgodnie z instrukcją: topic7402.html - mirekk36 ]

    W ten sposób kiedy wysyłam swoją zmienną zawierającą pomiar (różnica taka, że moja zmienna jest typu int a nie byte) to na monitorze portu szeregowego tego nadającego układu jest prawidłowy pomiar. Niestety na porcie szeregowym układu, który odbiera pomiar wyniki są losowe...

    Moduły posiadam takie:
    http://www.tme.eu/pl/details/hm-r433/mo ... ctronics/#
    http://www.tme.eu/pl/details/hm-t433/mo ... ctronics/#

    Dla ścisłości: chcę przesłać wartość pulsu z czujnika pulsesensor dla Arduino (znajduje się w zmiennej typu volatile int) do drugiego układu i wyświetlać tę wartość co mniej więcej sekundę na wyświetlaczu LCD ST7565R.

    Tutaj moje kody:

    Kod układu z czujnikiem - http://pastebin.com/CqTUGAff
    Kod układu z wyświetlaczem - http://pastebin.com/Pauh2exN

    Te kody muszę odpowiednio wzbogacić o część odpowiedzialną za transmisję danych. Byłbym ogromnie wdzięczny za pomoc gdyż muszę to na jutro rano mieć gotowe :(

    Używam płytek:
    z włożonymi Atmegami 328p z bootloaderem arduino.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2015, o 09:18 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    kokon89 napisał(a):
    Znalazłem taki prosty sposób przesłania zmiennej przy użyciu modułów radiowych bez użycia biblioteki VirtualWire:

    http://pastebin.com/jKCFV0Ke

    W ten sposób kiedy wysyłam swoją zmienną zawierającą pomiar (różnica taka, że moja zmienna jest typu int a nie byte) to na monitorze portu szeregowego tego nadającego układu jest prawidłowy pomiar. Niestety na porcie szeregowym układu, który odbiera pomiar wyniki są losowe...


    Wielu już tego próbowało z równie mizernym skutkiem. To ślepa uliczka. Krótkie naświetlenie problemu: http://forum.atnel.pl/topic8469.html#p97868

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2015, o 09:37 
    Offline
    Nowy

    Dołączył(a): 04 lut 2015
    Posty: 19
    Pomógł: 0

    W takim razie czy ktoś jest w stanie mnie nakierować jak zrobić to za pomocą VirtualWire najprościej jak się da ? Jestem początkującym a jest to projekt, który muszę rano mieć gotowy :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2015, o 11:43 
    Offline
    Nowy

    Dołączył(a): 04 lut 2015
    Posty: 19
    Pomógł: 0

    Użyłem w końcu VirtualWire...Niestety nadal nie działa - wklejam kody (sugerowałem się tym: http://genericnerd.blogspot.com/2012/07 ... -with.html)

    Co tu może być źle :( ?

    Moje kody poniżej

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


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


    Źle wklejony listing - Różowo-Zielony J.

    EDIT: Poprawiłem listingi.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2015, o 18:30 
    Offline
    Użytkownik

    Dołączył(a): 26 lut 2014
    Posty: 227
    Lokalizacja: LDZ
    Pomógł: 22

    Poniżej masz fajną analizę tych modułów oraz sporo informacji w jaki sposób uzyskać stabilny odbiór danych.
    http://www.romanblack.com/RF/cheapRFmodules.htm



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2015, o 18:42 
    Offline
    Nowy

    Dołączył(a): 04 lut 2015
    Posty: 19
    Pomógł: 0

    Nie są to te moduły - nie zmienia to faktu, że po wgraniu przykładów stąd: http://www.seeedstudio.com/wiki/Grove_- ... F_Link_Kit

    zero reakcji na porcie szeregowym układu odbierającego - zaczynam się zastanawiać czy któryś z modułów nie jest uszkodzony :(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 11 mar 2015, o 20:55 
    Offline
    Użytkownik

    Dołączył(a): 26 lut 2014
    Posty: 227
    Lokalizacja: LDZ
    Pomógł: 22

    To mało ważne. Te są podobne. Spróbuj uruchomić nadajnik i odbiornik bez niczego podłączonego (tylko kondensatory na zasilanie). Zmierz napięcie na wyjściu odbiornika. Podaj +zasilania(tego którym zasilasz nadajnik) na pin data nadajnika (najlepiej przez rezystor) i sprawdź jeszcze raz napięcie na wyjściu odbiornika. Jeśli pokazało się napięcie na wyjściu odbiornika to działają tak samo jak z linka który wyżej wkleiłem. To co mi się rzuciło w oczy: co robisz z pinem enable odbiornika?
    Jak chcesz żeby ktoś Ci pomógł to wrzuć zdjęcia jak podłączyłeś, jakiś schemat itd. bo z fusów kiepsko się wróży.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 mar 2015, o 07:35 
    Offline
    Nowy

    Dołączył(a): 04 lut 2015
    Posty: 19
    Pomógł: 0

    Za chwilę wykonam taki test jak napisałeś. Pin Data podpięty do pinu odpowiadającemu pinowi 12 arduino. Gnd do masy, Vcc do zasilania (wszystko zasilam 3,3V). Pin enable podpięty do zasilania.

    Jutro na uczelni będę miał dostęp do oscyloskopu i wtedy sprawdzę dokładnie co i jak.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 mar 2015, o 14:51 
    Offline
    Nowy

    Dołączył(a): 04 lut 2015
    Posty: 19
    Pomógł: 0

    Po podpięciu odbiornika i nadajnika do kanałów oscyloskopu i podaniu na nadajnik sygnału prostokątnego - na odbiorniku pojawia się identyczny sygnał. Kiedy sygnał z nadajnika nie jest nadawany to na odbiorniku pojawiają się same dziwne rzeczy - tak jakby sygnał był przesyłany z jakimś szyfrowaniem.

    Chyba będę zmuszony zakupić te zwykłe chińskie moduły...



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 mar 2015, o 15:13 
    Offline
    Użytkownik

    Dołączył(a): 26 lut 2014
    Posty: 227
    Lokalizacja: LDZ
    Pomógł: 22

    To są śmieci łapane przez odbiornik. Możesz właściwą transmisję spróbować poprzedzić kilkoma bajtami 0xff w celu ustabilizowania odbiornika. Sprawdź czy wtedy transmisja idzie. Czytałeś info z linka który pokazałem? Ja dopiero w przyszłym tygodniu będę miał te chińskie moduły żeby coś powalczyć. Na razie szykuję bibliotekę do tego.
    A i jeszcze jedno. Jaka częstotliwość generatora?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 mar 2015, o 16:50 
    Offline
    Nowy

    Dołączył(a): 04 lut 2015
    Posty: 19
    Pomógł: 0

    1 kHz ten sygnał prostokątny, który podawałem. Ja zamówiłem dziś 2 komplety tych chińskich na allegro więc w poniedziałek a najpóźniej we wtorek będą u mnie. Będę jeszcze siedział nad tymi do tego czasu - może uda się je zmusić do współpracy.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 mar 2015, o 19:12 
    Offline
    Użytkownik

    Dołączył(a): 26 lut 2014
    Posty: 227
    Lokalizacja: LDZ
    Pomógł: 22

    Skoro masz stabilny sygnał 1kHz to spróbuj transmisji USART z prędkością 1200. Tylko przed wysłaniem właściwych znaków wyślij 2 lub 3 znaki 0xff. I podejrzyj wyjście odbiornika oraz wejście nadajnika oscyloskopem. Będziesz widział czy transmisja przechodzi i czy są jakieś różnice. Jeśli będzie ok to spróbuj uruchomić to na dwóch procesorach. Jak rozpoznać, że idzie transmisja? Czekasz aż USART odbierze wszystkie (nie musi wcale być ich tyle co wysyłasz nadajnikiem) bajty 0xff - następny znak po ostatnim 0xff to będzie właściwa transmisja. Jeśli zadziała to możesz zwiększać powoli prędkość transmisji i obserwować czy nadal działa. Wg. autora tekstu który podlinkowałem te moduły nie wyciągają więcej jak 2kHz bo spada wypełnienie na wyjściu odbiornika (przy sygnale 2kHz wypełnieniu 50/50 na wejściu na wyjściu stan wysoki ma już tylko 43%).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 mar 2015, o 06:15 
    Offline
    Nowy

    Dołączył(a): 04 lut 2015
    Posty: 19
    Pomógł: 0

    Czytałem ten artykuł. Spróbuję zrobić tak jak napisałeś. Niestety dopiero w poniedziałek będę ponownie miał dostęp do oscyloskopu. Na swój na razie odkładam pieniążki :)



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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