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



Teraz jest 25 mar 2026, o 11:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 27 sie 2014, o 12:32 
Offline
Nowy

Dołączył(a): 14 kwi 2014
Posty: 21
Pomógł: 0

Witam!

Mam od niedawna żyroskop L3G4200D i chciałem go uruchomić na ATmedze8 (8MHz) na sprzętowym TWI (I2C).
Ogólnie mam parę pytań dotyczących podłączenia tegoż układu, bo to jest jakby nie patrzeć pierwsze moje spotkanie z żyroskopem :)

Wracając do rzeczy, mój żyroskop jest na płytce PCB i ma wyprowadzenia VCC, SCL, SDA, GNG, SDO, CS, DR (DRDY), INT.
ATmege zasilam z 3,3V, a na żyroskop daję 5V, bo ma stabilizator 3,3V.

Napisałem nawet wstępny kod w C (AVR), no ale coś jakby się wyświetlało na PC przez UART, ale to chyba nie to :/ ( dane wysyłam na PC, aby zobaczyć czy coś w ogóle działa ) + dioda LED do debugowania.
Najpierw chciałem odczytać temperaturę, a później osie X, Y, Z.

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


Z góry dzięki za wszelką pomoc i zainteresowanie :)

_________________
Mój kanał Youtube



Ostatnio edytowano 27 sie 2014, o 13:55 przez eVol68, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2014, o 13:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Piszesz że chciałeś go uruchomić na SPI, a kod wskazuje na I2C (TWI).
W linii 35 powinno być "uint8_t temp;" (chyba że gdzieś został ustalony alias typu).

Co się wyświetla w terminalu?

Nie napisałeś w czym problem, albo jakie błędy występują. Na ślepo ciężko pomóc...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 sie 2014, o 14:00 
Offline
Nowy

Dołączył(a): 14 kwi 2014
Posty: 21
Pomógł: 0

Kurczę pomyliłem się - sorki, miało być "na sprzętowym TWI (I2C)."

Tak, tu (uint8_t temp;) też się pomliłem. Ogólnie w kodzie było dobrze.

Na terminalu wyświetla się parę razy (8/10) liczba 249, a ostatnią wysłaną wartością jest, np. 22.

Jeszcze chodzi mi o to jak dobrze podłączyć ten żyroskop do uC. Wiem, że jak korzystam z I2C to muszę podłączyć SCL i SDA (VCC i GND - oczywiście), a co z pozostałymi pinami żyroskopu? (w pierwszym poście napisałem jakie są).



Edit:

Przysiadłem trochę do Internetu, PDF'a żyroskopu, kodu i coś już działa.
Mianowicie, sprawdzałem wartości X, Y, Z i wyświetlałem je w terminalu. Jak sprawdzam którąkolwiek oś i jak nie ruszam żyra, to wynik skacze - nie jest to dokładnie 0, no ale są też dryfy żyroskopu. Jak przesuwam żyroskop w którąś ze stron (powiedzmy w dodatnią) i robię to powoli, to wynik idzie do góry i utrzymuje się w tych granicach jak szybko przesuwam żyroskop, jak szarpnę, to wartość skacze do wyższych wartości. Sprawdzałem to na wszystkich osiach.

Chciałbym zrobić coś takiego, że jak obracam żyroskop (oś Z) o 90*, to taka wartość wyświetla mi się na terminalu.
Coś takiego, tylko że na terminalu:
https://www.youtube.com/watch?v=jwRnecjzig4
https://www.youtube.com/watch?v=3Jml-dTWdZo


Kod:

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

_________________
Mój kanał Youtube



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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