Turinys:

USB vidinis/lauko termometras (arba „Mano pirmasis USB įrenginys“): 4 žingsniai (su nuotraukomis)
USB vidinis/lauko termometras (arba „Mano pirmasis USB įrenginys“): 4 žingsniai (su nuotraukomis)

Video: USB vidinis/lauko termometras (arba „Mano pirmasis USB įrenginys“): 4 žingsniai (su nuotraukomis)

Video: USB vidinis/lauko termometras (arba „Mano pirmasis USB įrenginys“): 4 žingsniai (su nuotraukomis)
Video: Telefonspynės. Ką reikia žinoti renkantis 2024, Liepa
Anonim
USB vidaus/lauko termometras (arba „Mano pirmasis USB įrenginys“)
USB vidaus/lauko termometras (arba „Mano pirmasis USB įrenginys“)

Tai paprasta konstrukcija, demonstruojanti PIC 18Fs USB periferinį įrenginį. Internete yra daugybė pavyzdžių 18F4550 40 kaiščių lustams, šis dizainas demonstruoja mažesnę 18F2550 28 kontaktų versiją. PCB naudojamos ant paviršiaus montuojamos dalys, tačiau visi komponentai yra prieinami per skyles versijas. Aš naudoju ant paviršiaus montuojamas dalis, nes plokštę greičiau pagaminti be gręžimo skylių. Galutinis rezultatas yra mažas USB periferinis įrenginys, kuris matuoja patalpų/lauko temperatūrą. Duomenys prieinami kompiuteriui per virtualų nuoseklųjį prievadą. Pavyzdyje naudojami temperatūros jutikliai, tačiau galima pridėti kitų analoginių jutiklių. PS Žiūrėkite tiesioginę mano registratoriaus duomenų diagramą čia: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = grafikas

1 žingsnis: dizaino apžvalga

Dizaino apžvalga
Dizaino apžvalga
Dizaino apžvalga
Dizaino apžvalga
Dizaino apžvalga
Dizaino apžvalga

Būtini PIC komponentai

Šis USB periferinis įrenginys yra pagrįstas 28 kontaktų PIC 18F2550. Šiame luste yra viskas, ko reikia viso greičio USB sąsajai. 0.1uf kondensatorius tarp maitinimo ir žemės atjungia PIC nuo maitinimo šaltinio. 20MHz kristalas (naudojamas 48MHz vidiniam laikrodžiui generuoti) ir du 27pf kondensatoriai. 10K rezistorius nuo maitinimo iki MCLR kaiščio. Aš pridėjau 1n4148 ekvivalentinį diodą tarp rezistoriaus ir galios, kad programavimo metu ant MCLR įdėti 13+voltai nepažeistų kitų plokštės komponentų. Įrenginio programavimui ir derinimui naudojama ICSP antraštė (5 kaiščiai). Reikalingi USB elementai A USB „B“tipo lizdas. Vidiniam USB įtampos reguliatoriui reikalinga 220nf-440nf talpa. Aš naudoju du 0.1uf kondensatorius (tuos pačius, kurie naudojami atsiejant) be problemų. Šviesos diodas su 330 omų srovės ribojimo rezistoriumi naudojamas USB ryšio būsenai rodyti. Reikalingi jutiklių elementai Aš naudoju mikroschemos TC1047A temperatūros jutiklį kaip patalpos temperatūros jutiklį. Jis yra fiziškai prilituotas prie plokštės - dėl to ji pradeda veikti keliais laipsniais karščiau nei kambario temperatūra. Antraštė naudojama lauko temperatūros zondui prijungti (TC1047a versija TO-92). Papildomas 0.1uf kondensatorius padeda atsieti ilgą laidą nuo likusios plokštės. USB įtampos lygiai nėra pakankamai nuoseklūs, kad būtų galima tiksliai išmatuoti ir apskaičiuoti temperatūrą iš analoginių jutiklių. Naudojama išorinė įtampa (MCP1525, 2,5 voltai). Įtampos atskaitai reikalingas kondensatorius, kurio išėjimas yra nuo 1uf iki 10uf. Be šio kondensatoriaus įtampos etalonas neveiks.

2 veiksmas: programinė įranga

Programinė įranga naudoja CDC USB klasę, kad imituotų nuoseklųjį prievadą. Įrenginys bus rodomas kaip virtualus kompiuterio prievadas. Programinė įranga suskirstyta į tris skyrius: 1. USB tvarkyklė pasirūpina, kad įrenginys būtų išvardytas kompiuteryje ir imituotas COM prievadas. 2. Aptarnavimo tvarka pakaitomis nuskaito temperatūros vertes ir konvertuoja jas į skaitomą formatą. Jei atliksite abi šias operacijas vienu metu, USB įrenginys prarado ryšį su kompiuteriu (užsikimšęs laikas). Slankiojo kablelio reikšmių konvertavimas į eilutę paslaugų cikle po konversijos pašalino ryšio problemą.* 3. Galiausiai pagrindinė rutina gauna iš kompiuterio atsiųstus baitus ir grąžina prašomus matavimus. Keli matai atskiriami kableliu, eilutės baigiamos nuliniu simboliu (šešioliktainis 0x00) Demonstracinė programinė įranga priima šias komandas: Šešioliktainė vertė Grąžina0x00 Temperatūra patalpoje (įmontuotas jutiklis) 0x01 Lauko temperatūra (išorinė antraštė) 0x02 Abi temperatūros (kablelis Temperatūra apskaičiuojama pagal 2,5 volto atskaitą ir „Microchip TC1047A“poslinkį bei nuolydį. Kiti temperatūros jutikliai gali turėti skirtingas charakteristikas. TC1047A duomenų lapą galite rasti čia: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf Programinė įranga parašyta MPLAB su demonstraciniu PIC C18 kompiliatoriumi. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Tikrąją USB programinę įrangą teikia „Microchip“. Originalią aplinką galite rasti čia: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631 Norėdami redaguoti programinę -aparatinę įrangą: ištraukite visą šaltinio katalogo struktūrą į savo šakninį katalogą (c: / MCHPFSUSB). Tada galite įkelti darbo srities failą į MPLAB. Siekiant išspręsti ryšio problemą, USB paslaugų tvarka iškviečiama įvairiais „float2string“rutinos taškais. Tai geriausia būtų išspręsti aptarnaujant USB periferinį įrenginį. Aš panaudojau įsilaužimą, kad programinė įranga liktų kuo arčiau pamatinės versijos.

3 žingsnis: Įrenginio bandymas

Įrenginio bandymas
Įrenginio bandymas
Įrenginio bandymas
Įrenginio bandymas
Įrenginio bandymas
Įrenginio bandymas

Instrukcijos skirtos „Windows“, tačiau įrenginį galima prijungti prie bet ko, kas turi CDC nuoseklaus prievado emuliacijos tvarkykles.

Programuokite įrenginį naudodami programinę -aparatinę įrangą. Visi konfigūracijos bitai turi būti teisingai nustatyti programinėje įrangoje. Prijunkite įrenginį prie USB prievado. „Windows“jį aptiks ir paragins pasirinkti tvarkyklę. Būtinai spustelėkite „Naršyti pagal individualų vairuotoją“. Eikite į.inf failo, įtraukto į projekto archyvą, vietą (driver-win2k_winxp). „Windows“naudos šį failą įrenginiui įdiegti. *Pastaba apie CDC tvarkyklę - CDC serijinio prievado emuliacijos tvarkyklė yra įtraukta į „Windows“.. Inf failas (pateiktas „Microchip“) tiesiog nurodo „Windows“prijungti šias tvarkykles prie įrenginio. Norėdami sužinoti, koks COM prievadas buvo priskirtas įrenginiui, atlikite šiuos veiksmus: Eikite į valdymo skydelį (start-> settings-> control panel) Dukart spustelėkite „system“Spustelėkite skirtuką „hardware“. Spustelėkite „Įrenginių tvarkytuvė“Spustelėkite „+“šalia prievadų. Rodomas sistemos COM prievadų sąrašas. Mačiau, kad prietaisas rodomas kaip COM 3 ir 4, tačiau jis skirsis priklausomai nuo sistemos. Jei neaišku, kuris prievadas naujas, pabandykite tai: Atjunkite įrenginį nuo USB prievado. Vienas iš uostų išnyks. Tai yra įrenginio COM prievadas #. Prijunkite įrenginį atgal, prievadas vėl pasirodys. Prietaisui išbandyti galima naudoti mažą VB programą (įtrauktas šaltinis). Įveskite komandą, kurią norite siųsti, spustelėkite „Pradėti“. Atsakymas bus rodomas lange.

4 žingsnis: ką dar jis gali padaryti?

Ką dar gali padaryti?
Ką dar gali padaryti?

Ši demonstracinė lenta yra geras atspirties taškas mažoms namų oro stotims: pridėkite HIH3160 drėgmės jutiklį arba pakeiskite analoginį temperatūros jutiklį į didelio tikslumo „Sensiron HT74“temperatūros ir drėgmės jutiklį. Pridėkite „Freescale MPX (a) 4115“jutiklį prie matuoti barometrinį slėgį. Norite šiuos duomenis platinti žiniatinklyje? Įtraukti jį į savo svetainę, peržiūrėti „Google“žemėje arba gauti atnaujinimų savo RSS nendrėse? Žr. Šią instrukciją, kaip integruoti šį įrenginį su „syndicIT.com“žiniatinklio vidine programa:

Rekomenduojamas: