Spisu treści:

Termometr wewnętrzny/zewnętrzny USB (lub „Moje pierwsze urządzenie USB”): 4 kroki (ze zdjęciami)
Termometr wewnętrzny/zewnętrzny USB (lub „Moje pierwsze urządzenie USB”): 4 kroki (ze zdjęciami)

Wideo: Termometr wewnętrzny/zewnętrzny USB (lub „Moje pierwsze urządzenie USB”): 4 kroki (ze zdjęciami)

Wideo: Termometr wewnętrzny/zewnętrzny USB (lub „Moje pierwsze urządzenie USB”): 4 kroki (ze zdjęciami)
Wideo: Moje Pierwsze Akwarium Tania Kostka od A do Z 2024, Wrzesień
Anonim
Termometr wewnętrzny/zewnętrzny USB (lub „Moje pierwsze urządzenie USB”)
Termometr wewnętrzny/zewnętrzny USB (lub „Moje pierwsze urządzenie USB”)

Jest to prosty projekt, który demonstruje urządzenie peryferyjne USB w PIC 18Fs. Istnieje kilka przykładów 40-pinowych chipów 18F4550 online, ten projekt demonstruje mniejszą 28-pinową wersję 18F2550. PCB wykorzystuje części do montażu powierzchniowego, ale wszystkie komponenty są dostępne w wersjach przewlekanych. Używam części do montażu powierzchniowego, ponieważ szybciej jest zrobić deskę bez wiercenia otworów. Efektem końcowym jest małe urządzenie peryferyjne USB, które mierzy temperaturę wewnątrz/na zewnątrz. Dane są dostępne dla komputera PC przez wirtualny port szeregowy. W przykładzie użyto czujników temperatury, ale można dodać inne czujniki analogowe. PSZobacz wykres na żywo danych z mojego rejestratora tutaj:https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/?format= wykres

Krok 1: Przegląd projektu

Przegląd projektu
Przegląd projektu
Przegląd projektu
Przegląd projektu
Przegląd projektu
Przegląd projektu

Wymagane komponenty PIC

To urządzenie peryferyjne USB jest oparte na 28-pinowym PIC 18F2550. Ten układ ma wszystko, czego potrzeba do interfejsu USB o pełnej prędkości. Kondensator 0,1 uf między zasilaniem a masą oddziela PIC od zasilacza. Kryształ 20 MHz (używany do generowania wewnętrznego zegara 48 MHz) i dwa kondensatory 27pf. Rezystor 10K od zasilania do pinu MCLR. Dodałem równoważną diodę 1n4148 między rezystorem a zasilaniem, aby 13+V umieszczone na MCLR podczas programowania nie uszkodziło innych elementów na płytce drukowanej. Nagłówek ICSP (5 pinów) służy do programowania i debugowania urządzenia. Wymagane urządzenie USB Gniazdo USB typu „B” żeńskie. 220nf-440nf pojemności jest wymagane dla wewnętrznego regulatora napięcia USB. Bez problemu używam dwóch kondensatorów 0.1uf (takich samych jak do odsprzęgania). Dioda LED z rezystorem ograniczającym prąd 330 omów służy do wyświetlania stanu połączenia USB. Wymagane elementy czujnika Użyłem czujnika temperatury microchip TC1047A jako czujnika temperatury wewnętrznej. Jest fizycznie przylutowany do płytki - to powoduje, że pracuje o kilka stopni cieplej niż temperatura pokojowa. Rozgałęźnik służy do podłączenia czujnika temperatury zewnętrznej (wersja TO-92 TC1047a). Dodatkowy kondensator 0,1 uf pomaga oddzielić długi przewód od reszty płyty. Poziomy napięcia USB nie są wystarczająco spójne, aby dokładnie mierzyć i obliczać temperaturę z czujników analogowych. Używane jest zewnętrzne napięcie odniesienia (MCP1525, 2,5 V). Napięcie odniesienia wymaga kondensatora na wyjściu od 1 uf do 10 uf. Bez tego kondensatora napięcie odniesienia nie będzie działać.

Krok 2: Oprogramowanie układowe

Oprogramowanie układowe używa klasy CDC USB do emulacji portu szeregowego. Urządzenie pojawi się jako wirtualny port COM na komputerze. Oprogramowanie układowe jest podzielone na trzy sekcje:1. Sterownik USB zajmuje się wyliczaniem urządzenia na PC i emulacją portu COM. 2. Procedura serwisowa naprzemiennie odczytuje wartości temperatury i konwertuje je do czytelnego formatu. Wykonanie obu tych operacji naraz spowodowało utratę połączenia urządzenia USB z komputerem (czas znikania). Konwersja wartości zmiennoprzecinkowych na łańcuch w cyklu serwisowym następującym po konwersji rozwiązała problem z łącznością.* 3. Na koniec główna procedura odbiera bajty wysłane z komputera i zwraca żądane pomiary. Wiele pomiarów jest oddzielonych przecinkiem, wiersze zakończone są znakiem zerowym (hex 0x00) Oprogramowanie demonstracyjne akceptuje następujące polecenia: Wartość szesnastkowa Zwraca 0x00 Temperatura w pomieszczeniu (czujnik pokładowy)0x01 Temperatura zewnętrzna (zewnętrzny nagłówek)0x02 Obie temperatury (przecinek) oddzielone) Temperatura jest obliczana na podstawie napięcia odniesienia 2,5 V oraz przesunięcia i nachylenia Microchip TC1047A. Inne czujniki temperatury mogą mieć inną charakterystykę. Arkusz danych TC1047A jest dostępny tutaj: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdfOprogramowanie jest napisane w MPLAB z demonstracyjnym kompilatorem PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Aktualne oprogramowanie układowe USB jest dostarczane przez firmę Microchip. Oryginalne środowisko jest dostępne tutaj: https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en021631Aby edytować oprogramowanie: wyodrębnij całą strukturę katalogów źródła do katalogu głównego (c:\MCHPFSUSB). Następnie możesz załadować plik obszaru roboczego w MPLAB. * Procedura float to string to wieprz zasobów. Aby obejść problem z łącznością, procedura serwisowa USB jest wywoływana w różnych punktach procedury float2string. Najlepiej byłoby to naprawić, serwisując urządzenie peryferyjne USB na przerwaniu. Użyłem hacka, aby oprogramowanie układowe było jak najbardziej zbliżone do wersji referencyjnej.

Krok 3: Testowanie urządzenia

Testowanie urządzenia
Testowanie urządzenia
Testowanie urządzenia
Testowanie urządzenia
Testowanie urządzenia
Testowanie urządzenia

Instrukcje dotyczą systemu Windows, ale urządzenie można podłączyć do dowolnego urządzenia, które ma sterowniki emulacji portu szeregowego CDC.

Zaprogramuj urządzenie za pomocą oprogramowania układowego. Wszystkie bity konfiguracyjne powinny być poprawnie ustawione w oprogramowaniu. Podłącz urządzenie do portu USB. System Windows go wykryje i poprosi o wybranie sterownika. PAMIĘTAJ, ABY KLIKNĄĆ „PRZEGLĄDAJ STEROWNIK NIESTANDARDOWY”. Przejdź do lokalizacji pliku.inf dołączonego do archiwum projektu (driver-win2k_winxp). System Windows użyje tego pliku do zainstalowania urządzenia. *Uwaga dotycząca sterownika CDC - sterownik emulacji portu szeregowego CDC jest dołączony do systemu Windows. Plik.inf (dostarczony przez firmę Microchip) po prostu informuje system Windows o podłączeniu tych sterowników do urządzenia. Aby dowiedzieć się, do jakiego portu COM zostało przypisane urządzenie, wykonaj następujące czynności: Przejdź do panelu sterowania (start->ustawienia->panel sterowania) Kliknij dwukrotnie „system” Kliknij zakładkę „sprzęt”. Kliknij „menedżer urządzeń”. Kliknij „+” obok portów. Wyświetlona zostanie lista portów COM w systemie. Widziałem, że urządzenie wyświetla się jako COM 3 i 4, ale będzie się różnić w zależności od systemu. Jeśli nie jest oczywiste, który port jest nowy, spróbuj tego: Odłącz urządzenie od portu USB. Jeden z portów zniknie. To jest port COM urządzenia #. Podłącz urządzenie ponownie, port pojawi się ponownie. Do przetestowania urządzenia można użyć małej aplikacji VB (w zestawie źródło). Wpisz polecenie do wysłania, kliknij „Start”. Odpowiedź pojawi się w oknie.

Krok 4: Co jeszcze może zrobić?

Co jeszcze może zrobić?
Co jeszcze może zrobić?

Ta tablica demonstracyjna jest dobrym punktem wyjścia dla małej domowej stacji pogodowej: Dodaj czujnik wilgotności HIH3160 lub wymień analogowy czujnik temperatury na szeregowy czujnik temperatury i wilgotności Sensiron HT74 o wysokiej dokładności. Dodaj czujnik ciśnienia Freescale MPX(a) 4115 do zmierzyć ciśnienie barometryczne. Chcesz udostępnić te dane do sieci? Umieścić go na własnej stronie internetowej, wyświetlić w Google Earth lub otrzymywać aktualizacje w swoim czytniku RSS? Zobacz tę instrukcję dotyczącą integracji tego urządzenia z zapleczem sieciowym syndicIT.com:

Zalecana: