Witam serdecznie.
Mam następujący problem dotyczący układu którego schemat dołączam do postu.
Układ skałada się z mikrokontrolera atmega8, lcd 2x16, czujnika temperatury i wilgotności sht11 oraz wentylatora sterowanego kluczem tranzystorowym.
Napięcie zasilające 12V z czego 5V idzie na układ i czujnik, natomiast 12V na wentylator.
Idea działania jest taka aby wartości z czytane z czujnika wyświetlić na lcd oraz sterować pracą wentylatora w zalężnosci od aktualnej odczytanej temperatury.
Czujnik podlączony jest na kablu ok 1m, na osobnej płytce. Dołączam zdjęcia ilustrujące podłącznie.
Mój problem dotyczy zczytanych wartości sht11.
Po zaprogramowaniu czujnik wskazuje temp -40C, co według noty katalogowej, jest minimum zasięgu czujnika oraz wilgotność na poziomie paru %.
Co kilka odczytów wartości te się zmieniają w absurdalny sposób.
Skoki od -40 do -19, -28, w przypadku wilgotności w przedziale 2% - 60%.
Korzystam z bliblioteki sht pod mikrokontrolery avr którą zamieszczam poniżej. Działała ona poprawinie w przypadku projektu kolegi korzystającego również z sht11. Sprawdzałem działanie podstawowych funkcji zliczających ilość ticków w trakcie pomiaru - wyniki również skakały bezsensownie.
Także na tej podstawie uważam, że nie jest to wina błędnych przekształceń arytmetycznych w programie i bibliotece (cały kod programu oraz biblioteki dołączam poniżej).
Ponadto co jest najdziwniejsze w momencie, gdy dotknę i przytrzymam ścieżki czujnika na jego płytce, wartość wilgotności dochodzi do akceptowalnych rozmiarów, ok 50 - 85% (po 10h prób człowiek moze sie spocić xD) a temp do ok minus 36.7 po dłużym czasie trzymania.
Oto zdjęcia ilustrujące działanie układu:
Po włączeniu.
Po dotknięciu ścieżek na płytce czujnika.
Płytka czujnika.
Teraz opisze moje przypuszczenia (nie podparte wiedza ani doświadczeniem).
W notach katalogowych pisze:
Carrying the SCK and DATA signal parallel and in close
proximity (e.g. in wires) for more than 10cm may result in
cross talk and loss of communication. This may be
resolved by routing VDD and/or GND between the two
data signals and/or using shielded cables. Furthermore,
slowing down SCK frequency will possibly improve signal
integrity. Power supply pins (VDD, GND) must be decoupled with a 100nF capacitor if wires are used.
Capacitor should be placed as close to the sensor as
possible. Please see the Application Note “ESD, Latch-up
and EMC” for more information.
Schemat podłączenia jest prosty:
1. W moim układzie kondensator znajduje sie na głownej płytce, od czujnika dzieli go 1m kabla. (nie wiem czy to może być powodem)
2. Kable data i sck są prowadzone równolegle w bliskim sąsiedztwie - 1m kabla (nie wiem czy sa ekranowane, zdjęcie kabla dołanczam)
3.
Jest to fragment noty katalogowej.
Używam wewnętrznego oscylatora 1Mhz i nie jestem pewien ze przetwornik DC/DC 12/5V daje mi > 4,5 V na uklad i czujnik (nie posiadam miernika). Nie wiem czy te 1Mhz da sie zminiejszyć - wszedzie pisze 1,2,4,8 Mhz F_CPU.
Prosze o pomoc w rozwiązaniu problemu.
Nie wiem czy które kolwiek z wymienionych przeze mnie zastrzeżeń ma wpływ na działanie układu.
Jestem poczatkujący, jest to mój pierwszy projekt, dlatego prosze o wyrozumiałość.
Noty katalogowe sht11
https://www.elektroda.pl/rtvforum/download.php?id=374688
Katalog projektu (AVR Studio WinAVR)
Mam następujący problem dotyczący układu którego schemat dołączam do postu.
Układ skałada się z mikrokontrolera atmega8, lcd 2x16, czujnika temperatury i wilgotności sht11 oraz wentylatora sterowanego kluczem tranzystorowym.
Napięcie zasilające 12V z czego 5V idzie na układ i czujnik, natomiast 12V na wentylator.
Idea działania jest taka aby wartości z czytane z czujnika wyświetlić na lcd oraz sterować pracą wentylatora w zalężnosci od aktualnej odczytanej temperatury.
Czujnik podlączony jest na kablu ok 1m, na osobnej płytce. Dołączam zdjęcia ilustrujące podłącznie.
Mój problem dotyczy zczytanych wartości sht11.
Po zaprogramowaniu czujnik wskazuje temp -40C, co według noty katalogowej, jest minimum zasięgu czujnika oraz wilgotność na poziomie paru %.
Co kilka odczytów wartości te się zmieniają w absurdalny sposób.
Skoki od -40 do -19, -28, w przypadku wilgotności w przedziale 2% - 60%.
Korzystam z bliblioteki sht pod mikrokontrolery avr którą zamieszczam poniżej. Działała ona poprawinie w przypadku projektu kolegi korzystającego również z sht11. Sprawdzałem działanie podstawowych funkcji zliczających ilość ticków w trakcie pomiaru - wyniki również skakały bezsensownie.
Także na tej podstawie uważam, że nie jest to wina błędnych przekształceń arytmetycznych w programie i bibliotece (cały kod programu oraz biblioteki dołączam poniżej).
Ponadto co jest najdziwniejsze w momencie, gdy dotknę i przytrzymam ścieżki czujnika na jego płytce, wartość wilgotności dochodzi do akceptowalnych rozmiarów, ok 50 - 85% (po 10h prób człowiek moze sie spocić xD) a temp do ok minus 36.7 po dłużym czasie trzymania.
Oto zdjęcia ilustrujące działanie układu:
Po włączeniu.
Po dotknięciu ścieżek na płytce czujnika.
Płytka czujnika.
Teraz opisze moje przypuszczenia (nie podparte wiedza ani doświadczeniem).
W notach katalogowych pisze:
Carrying the SCK and DATA signal parallel and in close
proximity (e.g. in wires) for more than 10cm may result in
cross talk and loss of communication. This may be
resolved by routing VDD and/or GND between the two
data signals and/or using shielded cables. Furthermore,
slowing down SCK frequency will possibly improve signal
integrity. Power supply pins (VDD, GND) must be decoupled with a 100nF capacitor if wires are used.
Capacitor should be placed as close to the sensor as
possible. Please see the Application Note “ESD, Latch-up
and EMC” for more information.
Schemat podłączenia jest prosty:
1. W moim układzie kondensator znajduje sie na głownej płytce, od czujnika dzieli go 1m kabla. (nie wiem czy to może być powodem)
2. Kable data i sck są prowadzone równolegle w bliskim sąsiedztwie - 1m kabla (nie wiem czy sa ekranowane, zdjęcie kabla dołanczam)
3.
Jest to fragment noty katalogowej.
Używam wewnętrznego oscylatora 1Mhz i nie jestem pewien ze przetwornik DC/DC 12/5V daje mi > 4,5 V na uklad i czujnik (nie posiadam miernika). Nie wiem czy te 1Mhz da sie zminiejszyć - wszedzie pisze 1,2,4,8 Mhz F_CPU.
Prosze o pomoc w rozwiązaniu problemu.
Nie wiem czy które kolwiek z wymienionych przeze mnie zastrzeżeń ma wpływ na działanie układu.
Jestem poczatkujący, jest to mój pierwszy projekt, dlatego prosze o wyrozumiałość.
Noty katalogowe sht11
https://www.elektroda.pl/rtvforum/download.php?id=374688
Katalog projektu (AVR Studio WinAVR)
