Ingo Electronics


                                      HOME


                                                                PC  USB HID Thermometras  PIC18F2550  &&  DS18B20

  Mėgstantiems konstruoti rekomenduoju pasigaminti šį nesudėtingą įrenginį. 

  Schemoje panaudotas mikrokontroleris PIC18F2550 kurį patarčiau naudoti kaip bazinį šiek tiek labiau pažengusiems mikrokontrolerių programavimo srityje. 

  Šis mikrokontroleris pasižymi gana nemažu aminties kiekiu. 

  Programos kodo įrasymui yra skirta 32kb, palyginimui visų pradedančiujų taip pamėgtas senas ir jau morališkai pasenes PIC16F84A turi tik  1kb vidinės atminties.

  PIC18F2550 turi visą programavimui reikalingą perifriją: ADC,SPI,I2C,UART,PWM,CCP ir t.t. 

  Šį mikrokontrolerį išskiria iš kitų tai kad jis turi USB modulį, kas labai palengvina interfeiso su šiuolaikiniais PC sukūrimą.

  Šis projektas ir buvo darytas tam kad išsiaiškinti USB veikimo protokolą, subtilybes ir niuansus.

  Žemiau pateikta USB termometro pilna schema, kurią galima dar labiau supaprastinti atsisakant kai kuriu papilomų elementų. 

  Todėl šiame projekte nepateikiu PCB elementų montažines plokštės brėžinio, nes tai yra gana lengva susiprojektuoti net ir pradedačiajam konstruktoriui, kad ir su pieštuku ant paprasto milimetrinio popieriaus.

  Schemai nereikalingas papildomas maitinimas,nes maitinimas gaunamas iš USB jungties.

                          USB_PIC18F2550

  Pagrindiniai elementai kurie reikalingi, kad schema normaliai veiktų yra šie:

  PIC18F2550 – mikrokontroleris,

  DS18B20 – termodavikliai. (Vienas arba du).

  Lizdas 28k, siauras - mikrokontrolerio istatymui.

  20Mhz kvarcas,

  C1,C2,C3,C4 – kondensatoriai,

  R1,R5 – 0,125w rezistoriai,

  TD1,TD2 – jungtys termodaviklių pajungimui,

  USBCONN – USB A lizdas.


  Aš naudojau štai tokį usb lizda ir dar pradedantiesiems parodytos kaip atrodo kitos detalės:

      USB A LizdasKvarcasKondensatoriusPICLizdas     

 

  Papildomi elementai, kurie gali būti ir nenaudojami:

  J4 – jungtis mikrokontrolerio programavimui, neišimant jo iš schemos. Jeigu naudojamas toks programavimo būdas, tada dar reikalingas diodas D1.

  Grandinė R6 ir šviesos diodas. Veikia tik mikrokontrolerio starto metu, signalizuodama  mikrokontrolerio startą. Vėliau šis šv.diodas neveikia. Beto šis šv,diodas dar reikalingas tam, kad įsitikinti ar teisingai             įsirašė mikrokontrolerio programa. Jeigu viskas gerai, padavus maitinimą, šv. diodas du kartus sumirgsi..

  Prie šios schemos galima jungti viena arba du DS18B20 termodaviklius. Termodaviklis turi trys kontaktus: plius,minus ir vidurinį duomenų kontaktą.
  Duomenų kontaktas jungiamas prie    vidurinio jungčių TD1,TD2 kontaktų. Kaip išsidėstę  termodaviklio pliu-minus kontaktai, kad juos teisingai pajungti  prie schemos, galima rasti DS18B20 pdf aprašyme.


  Programa personalinam kompiuteriui buvo rašoma C# programavimo kalba su Visual Studio 2008, remiantis puikaus web puslapio    
http://www.helmpcb.com/Software/USBHIDVB/USBHIDVB.aspx   USB bibliotekos kodais.

  Programa naudoja standartinius hid.dll draiverius,todėl papildomų draiverių šiai schemai instaliuoti nereikia,taciau programos darbui reikalingas mcHID.dll sisteminis failas,
  kurį ikelkite į windows system32 katalogą.
  Pirma kartą prijungus įrenginį, PC paprašys nurodyti kokius draiverius naudoti. 
  Reikia nurodyti,kad naudotų USB Human Interface Device draiverius,arba tai galima padaryti per Control Panel->Device Manager-> USB Human Interface Device - pasirenkam naujai atsiradusį įraša ir nurodom
  kokius draiverius  naudoti  arba  duodam automatine paieška.

  Programa išbandyta tik  su Windows XP SP2,todėl nežinau ar veikia su Wndows 7, ir Vista.

  Programa pati atpažysta kiek termodaviklių yra pajungta.

  Jeigu yra pajungtas tik vienas daviklis,bus rodomas langas:

                 Form1                

  Jeigu yra pajungti du termodavikliai bus rodoma:

                 Form2

  Jeigu nepjungtas USB jungtis, arba ji ištraukiama, rodomas langas:

                 Form3

  PC programą ir mcHID.dll failą galima atsisiūsti iš čia:  USB_Thermo v1.0_PC_soft    (soft for  PC  Windows  XP )

  Kodas mikrokontroleriui buvo rašomas ir kompiliuojamas  su mikroC PRO for PIC .

  Mikrokontroleris kas sekundę siunčia į PC paketą duomenų sudarytą tik iš 8 baitų, todėl kompiuterio darbui, tai kad prie jo yra prijungtas šis USB termometras jokios pastebimos įtakos neturi.

  Hex kodą mikrokontroleriui galima atsisiūsti iš čia:  USB_thermo_v1_hex    (for PIC18F2550)