TMP006 – bezdotykowy czujnik temperatury
Od długiego już czasu w naszej ofercie mamy moduł z układem TMP006, który to jest czujnikiem temperatury, ale działającym na podczerwień. Znaczy to, że nie jest wymagany fizyczny kontakt z mierzonym obiektem.
Niewielki rozmiar, zasilanie do 3.3V do 5V, mały pobór prądu podłączenie po I2C (tylko dwa kabelki) – wszystko to sprawia, że można znaleźć kilka scenariuszy użycia. Jeśli przeszukasz fora Arduino pod kątem tego modułu, wówczas możesz znaleźć opisy sytuacji w której czujnik zwraca zawsze 2.39 stopnia Celsjusza. Skąd się to wzięło?
Zdarza się to korzystającym z opisu podłączenia umieszczonego na SparkFun Learn. Przykładowy kod, który tam jest do ściągnięcia jest mocno przykładowy i nie zakłada problemów z komunikacją z czujnikiem. Jeżeli coś jest nie tak i nie zostanie nawiązana komunikacja, kod próbuje i tak obliczać temperaturę. I stąd pewnie się bierze wartość 2.39.
Wystarczy zmienić kod na przykład udostępniony przez Adafruit by przekonać się czy problem nie leży po stronie komunikacji z modułem. W tym celu zainstaluj w Arduino IDE odpowiednią bibliotekę. W menu Sketch/Include Library/Manage Libararies
, w search wpisać TMP006 i zainstalować bibliotekę od Adafruit.
Jeśli to pierwsza biblioteka do sensorów do Adafruit nie masz jeszcze zainstalowanej Adafruit Unified Sensor
. Biblioteki zawierającej wspólny kod dla wielu z bibliotek od Adafruit. W search wpisz 'adafruit unified’ i powinien to być ostatni wynik – zainstaluj jeśli jeszcze nie masz biblioteki.
Podłącz moduł do Arduino – zasilanie, masa i SDA/SCL. Jak na tym zdjęciu:
Użyte tutaj zostały chwytaki IC Hooks, przydatne gdy nie chcesz lutować nic do modułu. Mają czasem problemy z łapaniem dużych otworów pod goldpiny, ale na modułach SF/Adafruit zwykle dają radę (domyślnie sa przeznaczone do łapania nóżek układów scalonych a te mają mniejsze średnice).
Po instalacji biblioteki w menu File/Examples/Adaftuit TMP006
pojawia się szkic tmp006
. Otwórz go, wgraj na Arduino i obserwuj wynik działania. Jeśli napisze o braku komunikacji to możesz być pewnym, że to raczej błąd w kabelkologii niż niezwykły pomiar.