Sisukord:

USB sise-/välistermomeeter (või „Minu esimene USB -seade”): 4 sammu (piltidega)
USB sise-/välistermomeeter (või „Minu esimene USB -seade”): 4 sammu (piltidega)

Video: USB sise-/välistermomeeter (või „Minu esimene USB -seade”): 4 sammu (piltidega)

Video: USB sise-/välistermomeeter (või „Minu esimene USB -seade”): 4 sammu (piltidega)
Video: Камеди Клаб «Политический лейбл» USB @ComedyClubRussia 2024, Juuli
Anonim
USB sise-/välistermomeeter (või „Minu esimene USB -seade”)
USB sise-/välistermomeeter (või „Minu esimene USB -seade”)

See on lihtne disain, mis näitab PIC 18F -de USB -välisseadet. Internetis on palju näiteid 18F4550 40 -pin kiipide kohta, see disain näitab väiksemat 18F2550 28 -pin versiooni. PCB kasutab pinnale paigaldatavaid osi, kuid kõik komponendid on saadaval läbi aukude versioonide. Ma kasutan pinnale paigaldatavaid osi, sest tahvlit saab kiiremini teha ilma auke puurimata. Lõpptulemuseks on väike USB -välisseade, mis mõõdab sise- ja välistemperatuuri. Andmed on arvutile kättesaadavad virtuaalse jadapordi kaudu. Näites kasutatakse temperatuuriandureid, kuid saab lisada ka teisi analoogandureid. PSVaadake minu logija andmete reaalajas graafikut siit: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = graafik

Samm: disaini ülevaade

Disaini ülevaade
Disaini ülevaade
Disaini ülevaade
Disaini ülevaade
Disaini ülevaade
Disaini ülevaade

Nõutavad PIC -komponendid

See USB -välisseade põhineb 28 -kontaktilisel PIC 18F2550. Sellel kiibil on kõik, mis on vajalik täiskiirusega USB -liidese jaoks. 0.1uf kondensaator toite ja maa vahel lahutab PIC toiteallikast. 20MHz kristall (kasutatakse 48MHz sisemise kella genereerimiseks) ja kaks 27pf kondensaatorit. 10K takisti toiteallikast MCLR -i tihvtini. Lisasin takisti ja toite vahele 1n4148 ekvivalentse dioodi, nii et programmeerimise ajal MCLR -ile pandud 13+volti ei kahjustaks teisi trükkplaadi komponente. Seadme programmeerimiseks ja silumiseks kasutatakse ICSP päist (5 kontakti). Vajalik USB -kraam A USB -tüüpi B -pesa. Sisemise USB pingeregulaatori jaoks on vaja mahtuvust 220nf-440nf. Kasutan ilma probleemideta kahte 0.1uf kondensaatorit (sama, mida lahtiühendamisel). USB -ühenduse oleku kuvamiseks kasutatakse 330 oomi voolu piirava takistiga LED -i. Vajalik anduri värk Kasutasin sisetemperatuuri andurina mikrokiibi TC1047A temperatuuriandurit. See on plaadile füüsiliselt joodetud - see paneb selle töötama toatemperatuurist mõne kraadi võrra kuumemana. Välistemperatuuri anduri (TC1047a versioon TO-92) ühendamiseks kasutatakse päist. Täiendav 0.1uf kondensaator aitab lahti ühendada pika juhtme ülejäänud plaadist. USB pingetase ei ole piisavalt ühtlane, et analooganduritest temperatuuri täpselt mõõta ja arvutada. Kasutatakse välist pingeallikat (MCP1525, 2,5 volti). Pinge viide nõuab kondensaatorit väljundis 1uf kuni 10uf. Ilma selle kondensaatorita pingeviide ei tööta.

Samm: püsivara

Püsivara kasutab jadapordi jäljendamiseks CDC USB -klassi. Seade kuvatakse arvutis virtuaalse com -pordina. Püsivara on jagatud kolmeks osaks: 1. USB -draiver hoolitseb seadme loendamise eest arvutis ja COM -pordi jäljendamise. 2. Teenindusrutiin loeb vaheldumisi temperatuuriväärtusi ja teisendab need loetavasse vormingusse. Mõlema toimingu tegemine korraga põhjustas USB -seadme ühenduse katkemise arvutiga (ajahäire). Ujukoma väärtuste teisendamine konversioonile järgnevas teenindustsüklis stringiks kõrvaldas ühenduvusprobleemi.* 3. Lõpuks võtab põhirutiin vastu arvutist saadetud baite ja tagastab nõutud mõõtmised. Mitu mõõdet eraldatakse komaga, read lõpetatakse nullmärgiga (kuuskant 0x00) Demonstratsiooniprogramm aktsepteerib järgmisi käske: Hex väärtus Tagastab 0x00 Sisetemperatuur (pardasensor) 0x01 Välistemperatuur (väline päis) 0x02 Mõlemad temperatuurid (koma Temperatuur arvutatakse 2,5 -voldise baasväärtuse ning mikrokiibi TC1047A nihe ja kalle alusel. Teistel temperatuurianduritel võivad olla erinevad omadused. TC1047A andmeleht on saadaval siin: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdfPüsivara on kirjutatud MPLAB -is koos demonstratsioon PIC C18 kompilaatoriga. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Tegeliku USB püsivara pakub Microchip. Algne keskkond on saadaval siin: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631Püsivara redigeerimiseks: tõmmake allika kogu kataloogistruktuur oma juurkataloogi (c: / MCHPFSUSB). Seejärel saate laadida tööruumi faili MPLAB -i. Ühendusprobleemi lahendamiseks kutsutakse USB -teenuse rutiin float2string rutiini erinevates punktides. Selle parandaks kõige paremini USB -välisseadme hooldus katkestuse korral. Kasutasin häkkimist nii, et püsivara jäi võrdlusversioonile võimalikult lähedale.

Samm: seadme testimine

Seadme testimine
Seadme testimine
Seadme testimine
Seadme testimine
Seadme testimine
Seadme testimine

Juhised on mõeldud akendele, kuid seadme saab ühendada kõigega, millel on CDC jadapordi emuleerimise draiverid.

Programmeerige seade püsivara abil. Kõik konfiguratsioonibitid tuleb püsivaras õigesti seadistada. Ühendage seade USB -porti. Windows tuvastab selle ja palub teil draiveri valida. KINDLASTI KLÕPSA „TELLI JUHTI LEHE”. Liikuge projekti arhiiviga kaasatud.inf-faili asukohta (driver-win2k_winxp). Windows kasutab seda faili seadme installimiseks. *Märkus CDC draiveri kohta - CDC jadapordi emuleerimise draiver on Windowsiga kaasas.. Inf -fail (pakub Microchip) lihtsalt käsib Windowsil need draiverid seadmega ühendada. Seadmele määratud COM-pordi väljaselgitamiseks tehke järgmist. Minge juhtpaneelile (start-> seadistused-> juhtpaneel) Topeltklõpsake nuppu „süsteem” Klõpsake vahekaarti „riistvara”. Klõpsake „seadmehaldur” Klõpsake pordide kõrval olevat „+”. Kuvatakse süsteemi COM -portide loend. Olen näinud, et seade kuvatakse COM 3 ja 4 kujul, kuid see sõltub süsteemist. Kui pole selge, milline port on uus, proovige seda: Ühendage seade USB -pordist lahti. Üks sadamatest kaob. See on seadme COM -port #. Ühendage seade uuesti, port kuvatakse uuesti. Seadme testimiseks saab kasutada väikest VB -rakendust (allikas kaasas). Sisestage saatmiseks käsk, klõpsake nuppu Start. Vastus kuvatakse aknas.

Samm: mida see veel saab teha?

Mida see veel teha saab?
Mida see veel teha saab?

See näidislaud on hea lähtepunkt väikesele kodusele ilmajaamale: lisage HIH3160 niiskusandur või asendage analoog temperatuuriandur Sensiron HT74 ülitäpse jada- ja niiskusanduriga. Lisage Freescale MPX (a) 4115 rõhuandur mõõta õhurõhku. Kas soovite neid andmeid veebis levitada? Kas lisada see oma veebisaidile, vaadata seda Google Earthis või saada värskendusi oma RSS -pilliroost? Vaadake seda juhendit selle seadme integreerimisel syndicIT.com veebitaustaga:

Soovitan: