User Tools

Site Tools


projektas_nr.7

Skirtumai

Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
projektas_nr.7 [2015/10/25 18:02]
193.219.47.27
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.7.1445788942.txt.gz · Keista: 2015/10/25 18:02 vartotojo 193.219.47.27