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



Teraz jest 31 sty 2025, o 06:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 
Autor Wiadomość
PostNapisane: 1 lut 2014, o 09:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Witam serdecznie,

Pracuje nad projektem, którego zadaniem jest pomiar temperatury.

Założenia projektu:
Nadajnik:
Procesor: Atmega8 taktowana zew. 12Mhz.
Czujnik: Dallas DS18b20
Moduł radiowy: RFM73
Zasilanie: 3,3V (docelowo bateryjne)
Praca na zewnątrz- pomiar temperatury.

Odbiornik:
Procesor: Atmega8 taktowana zew. 12Mhz.
Wyświetlacz: LCD 16x2
Moduł radiowy: RFM73
Zasilanie: 3,3 dla modułu, oraz 5V dla wyświetlacza
Praca w domu

Odległość 60m. (mam nadzieje że dają rade, w razie czego wymienię na RFM12).

Głównie chodzi o sam pomiar temperatury w wędzarniku, a wynik przesyłany na wyświetlacz.

Układy mam poskładane na płytkach testowych:
Nadajnik:
Obrazek

Odbiornik:
Obrazek

Podstawową komunikacje wydaje mi się że mam już za sobą, typu: miganie diodą , wszystko działa.
Jeśli chodzi o pomiar temperatury z tym mam problem nie wiem jak się za to zabrać chodzi o przesyłanie wyniku pomiaru do odbiornika i pokazanie na LCD.

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


Odbiornik:

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



Szukałem w sieci jakiś wskazówek lecz nie znalazłem konkretnie takiego projektu, albo podobnych.. albo mało szukałem, albo to jest takie banalne że wszyscy sobie z tym radzą :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 11:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 20 sie 2013
Posty: 795
Lokalizacja: Poznań
Pomógł: 59

RFM73 to nowsza wersja RFM70. Po drobnej zmianie inicjacji działa kod od starszej wersji - jest to opisane również na forum. Możesz więc szukać RFM70 i lekko zmodyfikować.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 11:51 
Offline
Użytkownik

Dołączył(a): 17 sty 2013
Posty: 327
Lokalizacja: Białystok
Pomógł: 14

Zaproponuję aby w nadajniku, który ma mieć zasilanie bateryjne korzystać z jak najniższej częstotliwości. Zobacz wykresy w datasheet, że mega8 przy 1MHz pobiera niecałe 2mA w stanie aktywnym, a przy 12MHz około 8mA. Oczywiście wydaje się, że to mało, ale dobrą praktyką jest aby nie uczyć się złych nawyków, a czterokrotne zmniejszenie zużycia energii to dobry pomysł. Dodatkowo usypianie RFM73 w nadajniku i wysyłanie danych co jakiś czas.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lut 2014, o 12:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

icer_cmg napisał(a):
RFM73 to nowsza wersja RFM70. Po drobnej zmianie inicjacji działa kod od starszej wersji - jest to opisane również na forum. Możesz więc szukać RFM70 i lekko zmodyfikować.


Dokładnie masz rację. Tą zmianę już dokonałem w bibliotekach. Komunikacja jest w porządku.
Szukałem właśnie projektów pod RFM70, lecz żadnych rezultatów.
Mscichu napisał(a):
Zaproponuję aby w nadajniku, który ma mieć zasilanie bateryjne korzystać z jak najniższej częstotliwości. Zobacz wykresy w datasheet, że mega8 przy 1MHz pobiera niecałe 2mA w stanie aktywnym, a przy 12MHz około 8mA. Oczywiście wydaje się, że to mało, ale dobrą praktyką jest aby nie uczyć się złych nawyków, a czterokrotne zmniejszenie zużycia energii to dobry pomysł. Dodatkowo usypianie RFM73 w nadajniku i wysyłanie danych co jakiś czas.


Bardzo dobra propozycja, postaram się do niej dostosować jest to bardzo duża różnica w poborze prądu przy zasilaniu bateryjnym.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2014, o 08:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Czy jest ktoś w stanie mi pomóć??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2014, o 11:32 
Offline
Użytkownik
Avatar użytkownika

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

Witam
Nie chciałbym za bardzo mieszać Ci w projekcie ale
w nadajniku używasz ATmegi8 a jej Timer0 nie ma trybu CTC
i to
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


na pewno nie będzie działać tak jak zamierzasz :)
o ile dobrze pamiętam to tryb CTC w AT8 jest w 16-bitowym timerze



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2014, o 12:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Tak, ale atmega8 ma byc docelowo testy dokobywane sa na at32 jak widac na zdjeciach.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2014, o 13:55 
Offline
Użytkownik
Avatar użytkownika

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

Jak tak to OK
tylko przeczytałem o tym że nadajnik ATmega8 i rzuciło mi się w kodzie Timer0 CTC
taki alarmik mi zadzwonił w głowie :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lut 2014, o 14:25 
Offline
Użytkownik

Dołączył(a): 14 maja 2012
Posty: 518
Pomógł: 6

Morcinek92 napisał(a):
Czy jest ktoś w stanie mi pomóć??
a projekt ze str 395 niebieskiej książki przestudiowałeś?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2014, o 13:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

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


Dotychczas tyle napisałem dla nadajnika.
Lecz na wyswietlaczu pojawiają mi się dziwne znaki, a nie liczby... (chińskie)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2014, o 20:07 
Offline
Użytkownik
Avatar użytkownika

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

Zapytam dla pewności
czy do funkcji wyświetlającej przesyłasz
liczby przekonwertowane na string ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2014, o 15:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Tak też zrobiłem, więc czy tak to ma wygladać?
Funkcja wysyłąnia:

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.



Odbiornik:

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.





Nadal nie dziala tak jak powinno:((



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2014, o 00:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 24 cze 2012
Posty: 414
Lokalizacja: Oborniki
Pomógł: 5

Kolego, a czy próbowałeś w nadajniku używać RS232 do debugowania? Żeby widzieć, czy te Twoje ostateczne char ASCII[5] zawiera to co naprawdę chcesz?? Pokaż co się wysyła przez nadajnik. Potem opisz co dostajesz na odbiorniku. Warto na początek wysyłać w pętli liczby 0-255 i w odbiorniku odbierać przez uart. Wtedy widzisz co się dzieje ;) Dopiero potem wysyłać temperaturę :)

_________________
Pozdrawiam:
Mikołaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2014, o 20:58 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

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


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


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2014, o 22:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Dziękuję bardzo,
Jutro z samego rano sprawdzę :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2014, o 09:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Okazał się problem.. jak nie mam podpietego czujnika to wyświetla mi "0,0 C" jak podepne czujnik to wyswietla "ERROR!" Sprawdzałem z wieloma czujnikami za każdym razem to samo..:(

edit:

Dziwna sytuacja..
Ustawiam czujnik pod pin np. PD6 (zmieniałem piny) , wpinam przewód połączeniowy pod pin, ale nie podłączam - dioda miga- pojedynczo i wyświetla "0,0 C", dotknę ręką przewodu miga dwukrotnie i wyświetla mi ERROR ... zmieniałem przewody, nic to nie dało..


Okej, już działa, choć przyznam, że nie wiem dlaczego się tak działo..
Dziękuję bardzo Krauser


Mam takie pytanie odnośnie zasięgu między tymi modułami...
Zauważyłem, że kiedy dotknę palcem antenę od nadajnika, w tedy elegancko dane dochodza do odbiornika z równa częstotliwośćią , kiedy wezmę palec przychodzą strasznie nieregularnie... czym to możę być spowodowane? długościa kabli?? dodałem w module kondensator filtrujący 100nf no ale dużej różnicy nie ma.. myślałem o dodaniu anteny..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lut 2014, o 01:16 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

No właśnie nie piszesz w jakiej odległości masz moduły.
Ja sobie testuje w odległości 8m i jest OK (100 kolejnych ramek doszło), a mam w pobliżu router WiFi, mysz Bluetooth i ATB-BTM-222 przez który wysyłam pomiary do kompa lub na telefon.
Na schemacie od producenta są 2 kondensatory 100nF i 1uF. Takie kondensatory powinny być blisko modułu, a sam moduł również ma filtrowane zasilanie.
Dobrze dobrana antena oczywiście zwiększy zasięg, a że moduły są tanie to można bez obaw eksperymentować.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lut 2014, o 11:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Witam,
Odległość wynosi około 5 m . W sumie czasami działa dobrze czasami nie, jutro wezmę się za wytrawienie płytek i mam nadzieje że nie będzie takich problemów. :D

Mam takie pytanie, bo chce zrobić do tego jeszcze termostat. Już mam prawie skończony tylko problem pojawił się kiedy chce żeby temperatura zadana była porównywana z temperatura rzeczywistą.

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.


No i właśnie nie wiem jak to zrobić..
Przy normalnym odczycie mógłbym wpisać "cel".



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lut 2014, o 13:42 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

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

Opis funkcji atoi w języku angielskim znajdziesz tutaj, a funkcji strtok tu. Po polsku jest w książkach Mirka przy okazji omawiania LCD albo parsowania stringów do sterowania komendami AT.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2014, o 20:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Już prawie działa... no ale jest te prawie

w pętli while dałem

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


No i wyświetla mi się temperatura ładnie (tylko cześć całkowita- tyle wystarczy)

stworzyłem funkcje
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.



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

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