Główną motywacją do stworzenia tego projektu była, jak mówi autor, chęć nauki programowania interfejsu USB w mikrokontrolerach z rodziny PIC. Dodatkowo autor ciekaw był, jak mocno uprościć można funkcjonalne urządzenie z interfejsem USB. Okazało się, że bardzo! zaprezentowany poniżej termometr składa się z, dosłownie, dwóch elementów - układu scalonego PIC16F1455 i wtyczki USB typu A. Program napisany dla PICa konfiguruje go jako urządzenie-wirtualny port szeregowy i nadają tą drogę temperaturę co sekundę w postaci strumienia znaków ASCII. Prościej się nie da
Opis
Mikrokontroler PIC16F1455 firmy Microchip jest dosyć nowym układem, którego jedna z cech jest to, że może obsługiwać interfejs USB, bez konieczności dodawania zewnętrznego oscylatora kwarcowego. Układ ten ma także wbudowane rezystory podciągające linie USB, co oznacza, że można uruchomić na nim komunikację poprzez USB bez żadnych dodatkowych elementów.
Autor tworząc ten projekt i ucząc się programowania USB na PICu chciał móc wysyłać jakieś sensowne dane do komputera. Zauważył on, że układ ten ma moduł TIM - wbudowanego termometru. Pozwala on na odczytywanie, poprzez wbudowany przetwornik analogowo-cyfrowy (ADC) temperatury samego układu scalonego. Nie jest to może nazbyt dokładny termometr, jednakże pozwala on na odczyt temperatury rdzenia mikrokontrolera, która w przybliżeniu równa jest temperaturze otoczenia.
Wykonanie projektu było bardzo proste - wystarczyło zlutować ze sobą mikrokontroler w obudowie do montażu przewlekanego (DIP) i wtyczke USB. Podłączone zostały jedynie cztery linie - VDD, VSS oraz D+ i D-. Korzystając z stosu USB M-Stack z Signal 11 autor napisał program (kod głównej funkcji programu poniżej), który konfiguruje urządzenie jako urządzenie szeregowe CDC i przesyła temperaturę w postaci tekstowej do komputera z częstotliwością 1 Hz.
Kod: C / C++
Od strony komputera dane zbierane mogą być dowolnym programem - prosty terminalem, lub dedykowanym programem, który będzie logował wartości z ADC/temperaturę i dodawał do nich np. aktualny czas.
Żródło: https://hackaday.io/project/6258-two-component-usb-temperature-data-logger
Fajne? Ranking DIY
