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



Teraz jest 26 lis 2024, o 17:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 
Autor Wiadomość
PostNapisane: 8 sie 2014, o 02:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 27 maja 2013
Posty: 562
Lokalizacja: Bydgoszcz
Pomógł: 23

W ramach mojego uczenia się na rzeczach bliżej mi nie znanych i tajemniczych chciałbym zaprezentować napisany przeze prosty program komunikujący się przez magistralę I2C z 3-osiowym akcelerometrem ADXL 345 , który
zakupiłem sobie w formie modułu stąd: http://botland.com.pl/akcelerometry-moduly/1912-adxl345-3-osiowy-akcelerometr-cyfrowy-i2c-spi-modul.html

Focia sklepowa :) :
Obrazek

Żeby ułatwić sobie z nim pracę i zapewnić możliwość współpracy jego z napięciem 5V i co za tym idzie wyświetlaczem LCD zrobiłem konwerter napięć 3,3V/5V zbudowany na układzie MAX3378 wraz z popularnym stabilizatorem napięcia 3,3V LM1117.
Dodatkowo na module dodałem dwa piny do podłączenia analizatora stanów logicznych, które ułatwiły mi dogadywanie się z czujnikiem.

Schemat oraz zdjęcia poglądowe konwertera (w załączniku dodaję pliki z Eagla):
ObrazekObrazekObrazekObrazek


Do obsługi wyświetlacza LCD i sprzętowej komunikacji I2C wykorzystuję biblioteki Mirka z Blue Booka, wszystko jest wpięte w sposób standardowy do zestawu ATB.
Za PINY sterujące wyświetlaczem LCD odpowiada PORT A, a do komunikacji z czujnikiem wykorzystuję PINY PC0 (SCL) i PC1 (SDA).

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.


adxl_345.h

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


adxl_345.c

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


Starałem się żeby program był czytelny a opis jego działania zawarłem w komentarzach. Jeśli jednak jest coś nie zrozumiałe oraz ktoś dostrzega błędy w programie/konwerterze napięć, ma uwagi bądź widzi co by można poprawić zmienić czy udoskonalić to oczywiście proszę o sugestie. Należy jeszcze wspomnieć iż owy akcelerometr komunikuje się również przez magistralę SPI oraz ma bardzo ciekawe dwa wyjścia przerwań INT1 i INT2, ja na razie tego nie oprogramowałem ale możliwe że zrobię kolejną wersję programu testowego bądź już takiego co robi coś konkretniejszego i wtedy stosowna implementacja ich obsługi w kodzie się pojawi, póki co w planach mam połączenie go z matrycą diod LED 8x8, która zapalała by odpowiednie diody podczas poruszania, prace nad tym w zasadzie już trwają.

Dodaję poniżej jeszcze filmik poglądowy działania obecnej wersji w/w programu:



Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



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

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