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



Teraz jest 7 lut 2025, o 22:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 29 kwi 2019, o 16:24 
Offline
Nowy

Dołączył(a): 28 kwi 2019
Posty: 15
Pomógł: 0

Witam,

Dopiero zaczynam swoją przygodę z AVR, do tej pory projekty robiłem na Arduino. Potrzebuję pomocy z komunikacją i2c między barometrem BMP180 a atmega 328p. Mianowicie w Arduino zawsze sprawa była prosta (gotowe biblioteki praktycznie do wszystkiego). Mógłbym liczyć na waszą pomoc od czego zacząć pisanie kodu do komunikacji, aby pobrać wartości poprzez i2c ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 kwi 2019, o 17:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć
Poczytaj temat https://forum.atnel.pl/topic20688.html
Co prawda opisałem BMP280 ale zasada ta sama. Jak coś to pisz

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 14:34 
Offline
Nowy

Dołączył(a): 28 kwi 2019
Posty: 15
Pomógł: 0

Znalazłem poradnik tutaj : forum.atnel.pl/topic6913.html

Po skompilowaniu jednak jako temperatura na wyświetlaczu są same 0 a ciśnienia wogóle nie pokazuje.

Podłączenie VCC - 3,3V
SCL - PC5 (ADC5/SCL/PCINT13)
SDA - PC4 (ADC4/SDA/PCINT12)

Zasilanie 5V dla mikrokontrolera oraz 3,3 dla barometru ze względu na brak stabilizatora podciągam z nóżek arduino.

Biblioteka do i2c (najnowsza wersja kupiona ze sklepu Atnel)

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


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


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


@mczarny



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 17:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć
Trochę zamieszałeś z zasilaniem. Procek z 5V wiadomo bo wyświetlacz, BMP180 z 3,3V to też ok. tylko co z konwersją napięć na szynie I2C?. Pomijam już tak oczywistą rzecz jak podciągnięcie SDA i SCL do Vcc przez rezystory np.4,7K.
Masz wyświetlacz więc wyświetl sobie np. parametr AC1 będziesz wiedział, że komunikacja działa i parametry są odczytywane.
Kod który przedstawiłeś na pewno komuś działał więc na razie zacznij od początku tak jak napisałem.
I z tego co widzę to idziesz starą drogą czyli gotowe biblioteki - tak nie nauczysz się języka

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 17:39 
Offline
Nowy

Dołączył(a): 28 kwi 2019
Posty: 15
Pomógł: 0

BMP180 podłączony jest przez Konwerter poziomów 3,3/5V stanów logicznych i dalej bez zmian. Gdy podłączam BMP180 do arduino przez ten konwerter to działa prawidłowo bez rezystorów podciągających.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 19:55 
Offline
Nowy

Dołączył(a): 28 kwi 2019
Posty: 15
Pomógł: 0

A mam jeszcze pytanie odnośnie uart, można wykorzystać arduino aby mógł sobie sprawdzać zmienne z programu w terminalu?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 20:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

maniek131013 napisał(a):
BMP180 podłączony jest przez Konwerter poziomów 3,3/5V stanów logicznych i dalej bez zmian. Gdy podłączam BMP180 do arduino przez ten konwerter to działa prawidłowo bez rezystorów podciągających.

Nie pomyślałeś, że arduino ma rezystory podciągające z rozdania?
Co do uart-a to pewnie, że możesz sobie podglądać dane w terminalu ale czy nie łatwiej wyświetlić zmienną na LCD skoro już go masz?

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 kwi 2019, o 21:00 
Offline
Nowy

Dołączył(a): 28 kwi 2019
Posty: 15
Pomógł: 0

Docelowo na wyświetlaczu, ale na chwilę obecną chciałbym zbiorcze dane wyświetlać na terminalu. Mógłbyś mi podpowiedzieć jak to zrobić? A odnośnie tego co pisałeś o rezystorach z arduino to nie wiem jak to zrobić.

Chcę się nauczyć programować w avr ale na chwilę obecną gonią mnie terminy odnośnie projektu przejściowego na studiach.

Wysłane z mojego SNE-LX1 przy użyciu Tapatalka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2019, o 08:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

No dobra jeszcze raz.
Po starcie programu masz taką sekcję
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

jeżeli masz prawidłową komunikację z modułem to dane kalibracyjne powinny zostać zapisane w odpowiednich zmiennych więc wyświetl je sobie na LCD przed pętlą główną
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W tym momencie będziesz wiedział czy komunikacja z modułem jest czy jej nie ma.
Powiem Ci, że jak na razie to zgaduję co tam odczyniasz. Narysuj jakiś schemat podłączeń. Napisz jaki procek, jakie taktowanie bo to będzie potrzebne do uart-a.

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 maja 2019, o 11:57 
Offline
Nowy

Dołączył(a): 28 kwi 2019
Posty: 15
Pomógł: 0

Jeżeli chodzi o UART'a to :
Procesor : Atmega328p
Taktowanie : 16000000

Ogólnie to działa już barometr, okazało się że problem był w przekształcaniu liczb na tekst (biblioteka od wyświetlacza, którą mam nie ma wbudowanej funkcji), robiłem to za pomocą itoa i to powodowało błędne odczyty, zrobiłem za pomocą sprintf i działa. Dodatkowo przez przypadek zamieniłem linię SCL i SDA.

Schemat poniżej.
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2019, o 10:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1165
Lokalizacja: Kraków
Pomógł: 93

Na schemacie masz źle podłączone rezystory przy SDA i SCL. W projekcie zrobiłeś tak samo?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2019, o 11:29 
Offline
Nowy

Dołączył(a): 28 kwi 2019
Posty: 15
Pomógł: 0

@Marhef, tak i działa układ



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2019, o 12:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1165
Lokalizacja: Kraków
Pomógł: 93

:shock: Przecież na schemacie są wpięte szeregowo w sygnał. I na konwerterze napięć masz od strony czujnika cały czas stan wysoki. Z czasem będziesz się zastanawiał, dlaczego coś nie działa.
Podłącz tak, jak powinno się podłączać, np. w ten sposób.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2019, o 12:58 
Offline
Nowy

Dołączył(a): 28 kwi 2019
Posty: 15
Pomógł: 0

Jednak dobrze, mam wpięty, dopiero jak mi pokazałeś zauważyłem gdzie popełniłem błąd w schemacie

Wysłane z mojego SNE-LX1 przy użyciu Tapatalka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2019, o 15:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

Marhef napisał(a):
:shock: Przecież na schemacie są wpięte szeregowo w sygnał. I na konwerterze napięć masz od strony czujnika cały czas stan wysoki. Z czasem będziesz się zastanawiał, dlaczego coś nie działa.
Podłącz tak, jak powinno się podłączać, np. w ten sposób.


Przecież pytałem go o to w jednym z pierwszych postów..... no ale jak działa....

_________________
Pomóżcie mi stanąć na nogi



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

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