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



Teraz jest 28 kwi 2024, o 13:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 14 wrz 2015, o 23:56 
Offline
Nowy

Dołączył(a): 14 wrz 2015
Posty: 2
Pomógł: 0

Witam,

Mam następujący problem. Staram się odczytać temperaturę z czujnika MLX90614ESF-ACF wykorzystując magistrale I2c.

*połączenia są całe
*sprawdziłem tym programem czy adres czujnika jest ok i czy go widzi.

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


Program pokazywał 0 i 1 jako adresy (jeszcze można się komunikować pod 0x5A)
Po analizie datasheet(załącznik) domyślam się że:
0 adres do zapisu ( slave adres WR)
1 adres do odczytu ( slave adres RD)

*następnie napisałem program

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


MLX90614ESF-ACF
https://www.sparkfun.com/datasheets/Sen ... 14M005.pdf

w załączniku powycinane fragmenty datasheet które użyłem do pisania Programu oraz schemat podłączenia. Program oczywiście nie działa i pokazuje 0 stopni cały czas. jakieś pomysły co może być nie tak ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2015, o 06:50 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 518
Pomógł: 26

Kolego najpierw to powinieneś sprawdzić czy masz jakiś odczytany wynik w tempdata, czyli linijki od 35-37 wyłączyć i sobie wyświetlić tempdata. Dopiero teraz możesz stwierdzić że nie masz odczytu. Bo z tego co widzę to wykonujesz operację mnożenie liczbą zmiennoprzecinkową a przeciez masz zadeklarowane tempdat jako word a to są całkowite liczby od 0-65535

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2015, o 07:47 
Offline
Nowy

Dołączył(a): 14 wrz 2015
Posty: 2
Pomógł: 0

Wyświetlałem zmienne lowbyte2 i Highbyte2 na wyświetlaczu bez ich przetwarzania i obydwie są równe 0. Podmieniałem w poleceniu Lcd "Wynik:" ; Napis2 ; Chr(1) ; "C" Napis2 na Lowbyte2 a potem Highbyte2.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2015, o 09:08 
Offline
Użytkownik

Dołączył(a): 21 mar 2015
Posty: 25
Pomógł: 3

A jesteś pewien że masz dobre adresy na I2C - bo według dokumentacji adres układu to 0x5A i 0x5B a Ty wysyłasz adresy 0x00 i 0x01?

Marek



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

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