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



Teraz jest 27 gru 2024, o 02:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
 Tytuł: Czujnik SHT30
PostNapisane: 19 lut 2024, o 20:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Ludziska pytanie... czy ktoś używa w swoich projektach czujnika SHT30? Wyszukiwarka na forum nic nie znajduje, a mi aż się wierzyć nie chce, że jest on tak mało popularny w sieci wśród majsterkowiczów. Znalazłem coś na githubie pod arduino, ale ja tej składni kompletnie nie kumam. Ktoś ma może jakieś działające biblioteki pod avr?

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2024, o 21:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Witaj! Wpisałem na stronie https://chat.openai.com/ polecenie: "Napisz kod w języku C do obsługi czujnika SHT30 na mikrokontroler avr".
Warto z ciekawości wypróbować sugerowany kod.


Autor postu otrzymał pochwałę


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

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

O ciekawa opcja :) Muszę sprawdzić. Dzięki :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2024, o 21:36 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 763
Pomógł: 38

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


obsługa tego jest banalna. Przykład w bascom. Mysle, ze bez problemu sobie przetłumaczysz bo to tylko parę linijek. Wysyłasz najpierw dwa byte konfiguracyjne, musisz parę milisekund poczekać i odczytać 6 byte i przeliczyć. Bardzo fajny i dokladny czujnik


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 lut 2024, o 22:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Dzięki wielkie :) Widzę, że to mniej skomplikowane niż zakładałem :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2024, o 13:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2015
Posty: 188
Pomógł: 10

Polecam Chat OpenAI. Generuje coraz lepszy kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2024, o 13:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Czas temu jakiś zapytałem czat o jakiś kod podczas nauki java script i zaskoczył mnie ciekawym rozwiązaniem. Całkowicie zapomniałem aby ponownie zadać pytanie tym razem w kwestii czujnika :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2024, o 15:02 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 763
Pomógł: 38

W PDF masz tam jeszcze komendy do włączenia grzałki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2024, o 13:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Pytanie mi się nasunęło, coś gdzieś chyba przeoczyłem, a chodzi o adres czujnika. Datasheet podaje 0x44, natomiast żeby wszystko działało trzeba go przesunąć w lewo (0x88) i wtedy wszystko jest ok - jest miejsce na bit ACK/NACK, a przy 0x44 tego miejsca by zabrakło, bo ten sam datasheet mówi o też o adresie 0x45 (jeśli ADDR+), a wtedy bit 0 jest zajęty. Jak to jest z tymi adresami? Przyznam, że nie miałem potrzeby do tej pory szukać tych informacji i się nad tym zastanawiać jeśli miałem jakąś gotową obsługę konkretnego czujnika, po prostu ktoś napisał działa, to nie ma czasu na drążenie adresów chyba, że poprawa algorytmu działania i przystosowanie samego programu do własnych potrzeb.
Przy okazji gotowy działający przykład w C (w oparciu o bibliotekę I2C z BB) dla potomnych poniżej :)

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

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lut 2024, o 11:04 
Offline
Nowy

Dołączył(a): 14 maja 2020
Posty: 11
Pomógł: 1

Odnośnie adresowania. Zwróć uwagę, że w datasheet jest napisane: "Należy pamiętać, że adres I2C jest reprezentowany przez 7 najstarszych bitów nagłówka odczytu lub zapisu I2C. Najmłodszy bit przełącza między nagłówkiem odczytu lub zapisu." Zatem adresy: 0x44 lub 0x45 to jest takie podawanie trochę w stylu Arduino. Generalnie tak podane adresy (z informacją, że odnoszą się do 7 najstarszych bitów) należy rozumieć jako:
1 0 0 0 1 0 0 R/W
lub
1 0 0 0 1 0 1 R/W
Stąd wyjdą adresy 88 lub 8A. Generalnie w transmisji I2C najmłodszy bit bajtu z adresem odpowiada za to, czy mamy do czynienia z operacją odczytu (R/W=1) czy zapisu (R/W=0)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lut 2024, o 13:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Dzięki za wyjaśnienie. O tym najmłodszym bicie to wiedziałem tylko ten sposób podawania adresów jest co najmniej dziwny mówiąc delikatnie. Przecież mogli od razu napisać 0x88 i nie byłoby zamieszania :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lut 2024, o 23:38 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

SylwekK napisał(a):
Dzięki za wyjaśnienie. O tym najmłodszym bicie to wiedziałem tylko ten sposób podawania adresów jest co najmniej dziwny mówiąc delikatnie. Przecież mogli od razu napisać 0x88 i nie byłoby zamieszania :)


Niestety cały koci świat andruino przyjmuje czy tam mówi o adresowaniu w postaci 7 bitów !!! czyli bez najmłodszego bitu, więc dla andruino nie będzie to adres 0x88 tylko 0x44 - masakra. Ale nawet w najnowszym oprogramowaniu od Saleae przyjęli takie wariackie przedstawianie adresów andruinowe. Owszem można w sofcie najnowszym Logic 2.x włączyć sobie normalne adresowanie ale i tak na górze ramki będzie się pokazywało 0x44 a dopiero na dole po włączeniu plugina będzie widać 0x88.

Gdy tymczasem w starszych ich programach Logic 1.x było normalne adresowanie i widać byłoby 0x88

------------------------ [ Dodano po: 1 minucie ]

SylwekK napisał(a):
#define SHT30_ADDR 0x44


Zatem właśnie tu spotkałeś się z kocim adresowaniem andruinowym czyli 7bitów adresu przedstawionych jest jako 8bitowy adres ale przesunięty w prawo o jeden bit ... niestety nie tylko andruinowcy jak widać takie kocie adresowanie i2c uznają i stąd później pomyłki często.

------------------------ [ Dodano po: 2 minutach ]

jak dasz sobie

SylwekK napisał(a):
#define SHT30_ADDR 0x88
I2C_read_buf((SHT30_ADDR)+1, 0x00, 6, bufor);


to wtedy nie trzeba kociego przesunięcia wpisywać przy adresie

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2024, o 07:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Masakra z tymi adresami :)
Tak wiem, że przesunięcia nie muszę robić tylko wprowadziłem taki zapis żeby soebie nie zaciemniać sytuacji na przyszłość jak spojrzę w pdf i znów się będę zastanawiał dlaczego wpisałem co innego... W sumie po tych wyjaśnieniach powyższych to już mi zapadnie w pamięć ten adres na amen :)
Dzięki wszystkim jeszcze raz :)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lut 2024, o 19:18 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 763
Pomógł: 38

Tak podpowiem, żeby nie bawić sie w ten Delay pomiędzy konfiguracja , a odczytem to wyślij konfiguracje przed pętla główną i jak będziesz odczytywał w petli to dane juz będą gotowe. Po odczycie od razu wyślij mu te dwa bajty konfiguracyjne.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lut 2024, o 19:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1967
Lokalizacja: Lipsko
Pomógł: 125

Dzięki za poradę. Oczywiście dlla mnie delay nie stanowi problemu, bo wszystkie programy piszę na maksa przelotowo i z czasowym podziałem funkcji. Nic się nie blokuje i nie zatrzymuje, a jeśli musi coś czekać to jest po prostu pomijane

_________________
http://www.sylwekkuna.com



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 2 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