User Tools

Site Tools


projektas_nr.7

Skirtumai

Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.

Link to this comparison view

Next revision
Previous revision
projektas_nr.7 [2015/10/25 17:50]
193.219.47.27 sukurtas
projektas_nr.7 [2015/12/02 14:49] (esamas)
simonas
Linija 1: Linija 1:
-**Projektas Nr. 7. Matuojame temperatūrą – Daviklis TMP36**+====== ​Projektas Nr. 7. Matuojame temperatūrą – Daviklis TMP36 ====== 
 + 
 +**Ką mes darysime** 
 +Koks sekantis fenomenas, kurį mes matuosime su „Arduino“?​ Temperatūra. Kad tai įgyvendintume,​ pasinaudosime sudėtinga IC (integruota grandine) paslėpta pakete identiškai P2N2222AG tranzistoriams. Ji turi tris pinus, įžeminimą,​ signalą ir +5 voltus, taip pat ja lengva naudotis. Ji išskiria 10 milivoltų kiekvienam šimtalaipsniui signaliniame pine (kad galėtume matuoti temperatūras žemiau nulio, tam yra 500 mV atsvara, pavyzdžiui 25 laipsniai C = 750 mV, 0 laipsnių C = 500mV). Kad galėtume konvertuoti tai iš skaitmeninės vertės į laipsnius, naudosime keletą Arduino matematinių sugebėjimų. Kad galėtume tai parodyti, naudosime vieną iš IDE gana galingų ypatybių, derinimo langą. Išvesime vertę per serijinę jungtį, kad ją rodytų ekrane. Pradėkime.  
 + 
 +Viena papildoma pastaba, ši grandinė naudoja „Arduino“ IDE serijinį monitorių. Kad jį atvertume, pirma įkeliame programą, tada spaudžiame mygtuką panašų į kvadratą su antena.  
 + 
 +TMP36 lapas: [[http://​ardx.org/​TMP36]] 
 + 
 +**Grandinės dalys** 
 +  *CIRC-10Maketinė plokštė x1 
 +  *2 Pin Header x4 
 +  *TMP36 Temperatūros Sensorius x1 
 +  *Laidas x3  
 + 
 +**Grandinės schema** 
 + 
 +{{:​ardu_pro64.jpg?​300|}} 
 + 
 +**Grandinės šablonas** 
 + 
 +{{:​ardu_pro65.jpg?​300|}} 
 + 
 +**Surinkta grandinė** 
 + 
 +{{:​ardu_pro66.jpg?​600|}} 
 + 
 +**Šaltiniai** 
 +[[http://​ardx.org/​BBLS10|Maketo plokštės šablonas]] 
 + 
 +[[http://​ardx.org/​VIDE10|Surinkimo vaizdo medžiaga]] 
 + 
 + 
 +**Programos kodas** (nereikia visko rašyti) 
 +Atsisiųsti programos kodą: [[http://​ardx.org/​CODE10|]] 
 +(nukopijuokite tekstą ir įdėkite jį į tuščią Arduino programavimo langą) 
 +<​code>​ 
 +/​*------------------------------------------------------------ 
 + ​* ​    ​| ​ „Arduino“ eksperimentavimo pavyzdinis kodas           |  
 + ​* ​    ​| ​ CIRC-10 .:​Temperature :.(TMP36 Temperature Sensor) |  
 + ​* ​    ​------------------------------------------------------- 
 + ​* ​    
 + ​* ​ Paprasta programa išvedanti dabartinę temperatūrą į IDE derinimo langą 
 + ​* ​  
 + ​* ​ Detaliau: http://​tinyurl.com/​c89tvd 
 + */ 
 + 
 +//TMP36 Pin‘ų Kintamieji 
 +int temperaturePin = 0; //​analoginis pin‘as TMP36'​s Vout(sense) 
 +                        //santykis yra 10 mV / šimtalaipsniui 
 +                        //(500 mV atsvara) kad galėtų būti rodoma neigiama temperatūra 
 +/* 
 + * setup() – ši funkcija įvykdoma, kai įjungiamas „Arduino“ 
 + * Pajungiama serijinė jungtis su kompiuteriu 
 + */ 
 +void setup() 
 +
 +  Serial.begin(9600); ​  //​Pradedama serijinė jungtis su kompiuteriu 
 +                       //kad matytume rezultatą, įjungiame serijinį langą 
 +                       //​(mygtukas su pavaizduotu kvadratu su antena) 
 +
 + 
 +void loop() ​                    // vykdyti visą laiką 
 +{  
 + float temperature = getVoltage(temperaturePin); ​ //gauname voltų vertę iš temperatūros sensoriaus 
 + ​temperature = (temperature - .5) * 100;          //keičiame 10 mV per laipsnį su 500 
 +                     //mV atsvara 
 + 
 + ​Serial.println(temperature); ​                    //​įlaipsnius((įtampa - 500mV) kart 100); 
 +                                                  //​išvedamas rezultatas 
 + ​delay(1000); ​                                    //​laukia sekundę 
 +
 + 
 +/* 
 + * getVoltage() – sugrąžina įtampą analoginiame įvedime nustatomame pin‘o ​  
 + */ 
 +float getVoltage(int pin) { 
 + ​return (analogRead(pin) * .004882814);​ //​convertuoja nuo 0 iki 1023 skaitmeninės vertės 
 +                                        //nuo 0 iki 5 voltų (kiekvienas 1 lygus ~ 5 milivoltų 
 +} </​code>​ 
 + 
 +**Neveikia?​** (3 dalykai, kuriuos galite pamėginti) 
 + 
 +**Niekas nevyksta** 
 + Ši programa gali parodyti, kad veikia. Kad pamatytumėte rezultatus, privalote įjungti „Arduino“ IDE serijinį langą. (instrukcijos praeitame lange)  
 + 
 +**Rodomos nesąmonės** 
 + Tai vyksta, nes serijinis monitorius gauna duomenis greičiu, kurio jis nesitikėjo. Kad tai pataisytumėte,​ spauskite nuleidžiamą langą rašantį "​baud"​ ir pakeiskite jį į "9600 baud"​. 
 + 
 +**Temperatūra nesikeičia** 
 + ​Bandykite pirštais sušildyti sensorių arba atšaldyti šaltu oru. 
 + 
 +**Padaryti geriau:** 
 +  *Rodyti Įtampą 
 +Reikia pakeisti tik vieną eilutę. Sensorius išveda 10 mV per šimtalaipsnį,​ kad gautume įtampą, keičiame išvedamą rezultatą į getVoltage ().  
 + 
 +Ištriname eilutę 
 +  
 +<​code>​ temperature= (temperature - .5) * 100 ; </​code>​ 
 + 
 +**Kad rodytų farenheitus:​** 
 +Tai paprastas pakeitimas, pasitelkiant matematiką,​ kad pakeistume Celsijus į Farenheitus,​ naudojime formulę: 
 + 
 +<​code>​ ( F = C * 1.8) + 32 ) </​code>​ 
 + 
 +Pridėkite eilutę 
 + 
 + <​code>​ temperature = (((temperature - .5) * 100)*1.8) + 32; </​code>​ 
 + <​code>​ before Serial.println(temperature);​ </​code>​ 
 + 
 +**Daugiau informacijos:​**  
 +Padarykime, kad būtų rodoma daugiau duomenų. Pirma grąžinkime prie originalaus kodo tada pakeiskime:  
 + 
 +<​code>​ Serial.println(temperature);​ ----> Serial.print(temperature);​ </​code>​ 
 +<​code>​ Serial.println("​ degrees centigrade"​);​ </​code>​ 
 + 
 +Pakeitimas pirmoje eilutėje reiškia, kad sekantis iš vedimas pasirodys toje pačioje eilutėje, tada pridedame informacinį tekstą ir naują eilutę. 
 + 
 +**Keičiame serijinį greitį:​** 
 +Jei norite išvesti daug duomenų greitai. Dabar išvedame greičiu 9600 "​baud",​ bet įmanoma greičiau. Kad tai pakeistume, keičiame šią eilutę:  
 + 
 +<​code>​ Serial.begin(9600);​ ----> Serial.begin(115200);​ </​code>​ 
 + ​Keiskite 9600 "​baud"​ į 115200 "​baud"​ programavimo lange. Dabar duomenis gaunate 12 kartų greičiau. 
  
 [[projektas_nr.8|Kitas projektas. Servo mechanizmas.]] [[projektas_nr.8|Kitas projektas. Servo mechanizmas.]]
 +
 +[[arduivadas_projektai|Atgal į projektus]]
projektas_nr.7.1445788251.txt.gz · Keista: 2015/10/25 17:50 vartotojo 193.219.47.27