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



Teraz jest 15 gru 2018, o 16:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 29 sie 2018, o 16:50 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 401
Lokalizacja: Katowice
Pomógł: 1

Cześć.
Od dłuższego już czasu męczę się z modułami atnel.
Po oglądnięciu poradników na YT udało mi się połączyć ze sobą dwa moduły atnel wifi (jest zapalona niebieska dioda)
Napisałem też kod bazując na poradnikach i książce.
Założenie mojego projektu jest proste. W zestawie atb mam wpięty jeden moduł wifi i podłączony klawisz, oraz diodę. Dioda jest używana jako debager i mryga sobie co pół sekundy (jest wysterowana timerem programowym). Diodę tą uruchomiłem po to, aby w ogóle mieć podgląd, czy pętla główna programu działa. Drugi moduł atnel wifi mam wpięty do płytki stykowej i tam mam podłączone dwie diody. Pierwsza podobnie jak w zestawie ATB mryga co pół sekundy (sprawdzam , czy pętla główna działa), druga dioda natomiast powinna być włączana i wyłączana po przez klawisz z zestawu ATB (po przez wifi).
-Diody sterowane timerem programowym w zestawie ATB, oraz na płytce stykowej mrygają.
-Moduły wifi są ze sobą podłączone, co widać poprzez włączone niebieskie diody.
-płytkę stykową zasilam z zestawu ATB i na wskazaniach miernika mam niecałe 5V.
-W obydwu układach mam ten sam procesor czyli atmega 32, oraz takie samo taktowanie procesora 11,0592 MHz
- W obydwu atmegach mam wgrany ten sam program, który udostępniam poniżej
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Program ma działać następująco:
Klikając klawisz na zestawie ATB Zmieniam wartość zmiennej o nazwie "zmienna" z jeden na zero - togluję tą zmienną.
Jeśli wartość zmiennej równa się 0, to wysyłam z zestawu ATB string przez wifi do płytki stykowej
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i Dioda na płytce stykowej powinna się włączyć.
Natomiast jeśłi kolejny raz nacisję klawisz na zestawei atb, to zmienna przyjmuje wartość równą jeden i wysyłam do płytki stykowej string
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

dioda powinna się wyłączyć.
Za takie działanie programu odpowiada funkcja :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Niestety program nie działa według moich założeń. Dioda na płytce stykowej nie chce się włączyć po naciśnięciu klawisza na zestawie ATB.
Po podłączeniu dodatkowej diody na zestawie ATB w miejscu pinów RX, oraz TX- dioda lekko mignie, czyli wysyłanie raczej działa. Jednak nic nie "dolatuje" do płytki stykowej :(
Nie jestem jeszcze biegły w programowaniu, dlatego zwracam się z ogromną prośbą o pomoc w tej sprawie.
Dołączam zdjęcia konfiguracyjne modułów wifi, oraz schemat jak mam podłączoną płytkę stykową, oraz zestaw ATB.
ObrazekObrazekObrazekObrazekObrazek
Walczę już z tymi podstawami ponad miesiąc i niestety sam nie potrafię sobie z tym poradzić. A chodzi mi tylko o prostą rzecz-
Włączanie i wyłączanie jednej diody poprzez moduły wifi atnel. Dodam jeszcze,że moduły nie mają się łączyć z domowym routerem.
Jeden moduł chcę aby był jako AP, drugi jako STA. :)
Jeśli uda mi się opanować te podstawy to otworzą się przede mną wielkie wrota nowych możliwości, ponieważ docelowo ten projekcik ma być odpowiedzialny za zdalne włączanie i wyłączanie oświetlenia w pomieszczeniu ( od razu zaznaczam,że nie chcę sterować świetleniem z komórki), a oprócz tego chcę sobie stworzyć pilot do zdalnego sterowania, pilot wifi. Jednak jeśli nie ogarnę tego tematu, to jestem pupą w pokrzywach. :(

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2018, o 18:57 
Offline
Moderator
Avatar użytkownika

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

wojciechgorzolka napisał(a):
        if(!strcmp(buf, "Off\r\n")){
                LED_OFF;                                        //wyłącz diodę
        }
        if(!strcmp(buf, "On\r\n")){
                LED_ON;                                         //włącz diodę
        }


A skąd ty wpadłeś na pomysł że będziesz tu miał znaki CRLF ? Toż działanie UARTAa w postaci ASCII z każdej z moich książek - POZBYWA się tych niepotrzebnych znaków - po kiszkę byłoby je przekazywać

porównujesz TYLKO Stringi "On" i "Off"

_________________
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: 29 sie 2018, o 19:01 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 401
Lokalizacja: Katowice
Pomógł: 1

Panie Mirku, na początku tak miałem, ale i tak nie działało. :( porównywałem tylko on i off. Oczywiście zachowując wielkości liter. A czy widzi Pan przyczynę tego,że nie działa mi ten kod?

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2018, o 20:44 
Offline
Moderator
Avatar użytkownika

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

sprawdzaj po kolei

najpierw to ty podłącz się terminalem do WIFI które ma odbierać te stringi i zobacz czy dolatują

ale też widzę, że w jednym niestety ustawiłeś bzdurę w konfiguracji że aż strach - brama domyślna jest taka sama jak adres IP modułu

_________________
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: 30 sie 2018, o 09:33 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 401
Lokalizacja: Katowice
Pomógł: 1

ObrazekObrazek

Poradziłem się brata, który trochę jest zaznajomiony z tworzeniem sieci i podpowiedział mi jak mam ustawić moduły. Powiedział,żebym tak je ustawił jak na dołączonych wyżej zdjęciach i powinno działać. I jest poprawa. teraz gdy w zestawie ATB mam wpięty moduł STA i wysyłam string, to dochodzi on prawdopodobnie do drugiego modułu AP na płytce stykowej. A wnioskuję to po tym,że teraz, gdy na płytce stykowej podłączę dodatkową diodę do pinu Tx modułu (moduł AP odbierający string), to podczas klikania klawiszem, diodka mignie kilka razy.
Wcześniej , gdy inaczej miałem skonfigurowane moduły, to dioda podłączona do pinu Tx nie mrygała podczas odbierania stringa.

Kłopot niestety polega jeszcze na tym,że po wysłaniu stringu, nie zmienia się stan diody . Czyli nie mogę włączyć i wyłączyć diody,po przez wifi :(. Czy to może być problem z programem, który napisałem? Już widzę światełko w tunelu :)))

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sie 2018, o 10:36 
Offline
Moderator
Avatar użytkownika

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

masz źle ustawione moduły - już pisałem wczoraj o jednym babolu - błędny adres bramy

a teraz drugi babol - zakres DHCP w module AP pokrywa się z zakresem własnego DHCP

Poza tym pisałem - ale jakbyś nie czytał - po co masz coś obserwować na diodzie jak możesz podłączyć się do terminala w miejscu procka na stykówce i sprawdzić co dolatuje - będziesz miał wszystko na terminalu a nie tam pomrygiwanie diodki

------------------------ [ Dodano po: 1 minucie ]

wojciechgorzolka napisał(a):
Czy to może być problem z programem, który napisałem?

jak nie zrobisz tego co powiedziałem wyżej - test w terminalu to wciąż będziesz miał równanie z dwoma niewiadomymi - czyli czy zły program czy zła konfiguracja. A po co ? wystarczy sobie ułatwić życie, podejrzeć w terminalu i od razu jeden problem ci odpadnie

_________________
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: 30 sie 2018, o 10:38 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 401
Lokalizacja: Katowice
Pomógł: 1

ok Panie Mirku. Tylko ,że nie wiem jaki ma być poprawny adres bramy :(
Jaki powinien być zakres DHCP?

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sie 2018, o 10:46 
Offline
Moderator
Avatar użytkownika

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

wojciechgorzolka napisał(a):
Tylko ,że nie wiem jaki ma być poprawny adres bramy

No zawsze w ciemno można podawać jako adres bramy adres routera albo AP do którego się łączysz - czyli twojego modułu pełniącego rolę AP

Cytuj:
Jaki powinien być zakres DHCP?

no nie powinien zawierać własnego adresu AP toż masz adres IP = ...150 a twój DHCP zaczyna się od 150

_________________
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: 30 sie 2018, o 11:08 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 401
Lokalizacja: Katowice
Pomógł: 1

Ddziękuję za podpowiedź. Już się zabieram za włączenie terminala. zaraz się wyjaśni co i jak...
ok, zrobiłem testy z puttym i poprawiłem te dwie rzeczy , o których Pan pisał. DHCP poprawiłem i zakrez zrobiłem od 151 do 200, oraz poprawiłem bramkę.
taki jest wynik z putty:
Obrazek

Czyli odbieram string z zestawu atb i dochodzi do modułu na płytce stykowej. Sprawdzone w puttym :)
Wychodzi na to,że coś mam źle w programie. sprawdzałem podłączenie na stykówce i wygląda na to,że jest ok. Pin RX z modułu wifi mam podłączony do pinu TX w uC, a pin TX z wifi mam podłączony do pinu RX w uC. Czy może być coś nie tak z porównywaniem stringów wysyłanych i odbieranych? Może to nie będzie działać według moich założeń, czyli założyłem,że string będzie wysyłany w zależności od wartości zmiennej "zmienna". Może tutaj mam coś nie halo? Z góry dziękuję za szybką pomoc. Atnel to jednak porządna firma :)

------------------------ [ Dodano po: 29 minutach ]

głupoty piszę. string dobrze jest wysyłany, bo inaczej w puttym nie były by odbierane naprzemiennie stringi On i Off (po naciśnięciu jednego klawisza)

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 sie 2018, o 12:10 
Offline
Moderator
Avatar użytkownika

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

no widzisz jak się dzieli problemy na PÓŁ ... w 5 sekund wyeliminowałeś jedną zmienną i od razu wiadomo że masz coś skaszanione albo w programie albo ... z połączeniami na stykówce

więc znowu na tym etapie podziel problem na DWA i znowu i znowu tak samo jak się okaże na końcu że to już tylko program - to też problem podziel na DWA ;)

jak widzisz metoda działa wyśmienicie

_________________
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: 30 sie 2018, o 12:18 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 401
Lokalizacja: Katowice
Pomógł: 1

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

To mam jeszcze pytanie.
jeśłi piszę jakiś program i wykorzystuję w programie funkcję, to ciało takie funkcji piszę w odrębnym pliku, lub w tym samym, tylko na samym dole poza pętlą główną. A tylko nagłówek wpisuję w pętlę główną. a w przypadku tej funkcji, która jest wyżej, ta od porównywania stringów, to w pętli głównej nie mam wpisanej linijki takiej --> analizuj_dane_rs23();
pisałem ten kod zgodnie z poradnikiem i teraz nie jestem pewien czy w tym miejscu się nie pomyliłem.

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 sie 2018, o 09:25 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 401
Lokalizacja: Katowice
Pomógł: 1

Wszystkie połączenia sprawdziłem. Potrafię wysyłać stringi on off z zestawu atb do stykówki i odwrotnie. podmieniałem ze sobą moduły wifi i działają. Sprawdzałem na putty odbiór wysyłanych danych z ATB , oraz ze stykówki i wszystkie dane pięknie przechodzą. Tak więc wychodzi na to,że w programie jest jakiś babol. Od strony połączeń wszystko elegancko działa.
Mam ogromną prośbę o przeanalizowanie mojego kodu programu osoby bardziej doświadczone ode mnie. Ja już nie mam pomysłu , co może być źle. Może to,że jak wyślę string On, a następnie Off, to nie zapali się dioda, ponieważ może powinienem w jakiś sposób skasować string, który był odebrany wcześniej? :(

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

_________________
Nikt nie mówił,że będzie łatwo...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 paź 2018, o 20:31 
Offline
Użytkownik

Dołączył(a): 28 maja 2016
Posty: 401
Lokalizacja: Katowice
Pomógł: 1

hej. Po dłuższej przerwie przerobiłem mój kod do połączenia ze sobą dwóch uC-ów. Wszystko odbywa się na dwóch zestawach ATB. Teraz nie używam stykówk (nabyłem drugi zestaw ATB)i, więc mam już pewność,że połączenia są prawidłowe. W programie potrafię toglować zmienną, która przyjmuje wartość 1 lub zero i od jej wartości uzależniam włączanie diody. zaprojektowałem sobie do tego ćwiczenia płytkę według BB, dzięki której mogę zdalnie włączać i wyłączać żarówkę podłączoną do napięcia 230V. Fajna zabawa :)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Obrazek

Obrazek

Zastanawiam się tylko czy mam poprawną wartość wpisaną w UBRRL = 5;

_________________
Nikt nie mówił,że będzie łatwo...



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 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