Vartotojo įrankiai

Svetainės įrankiai


projektas_nr.7

Skirtumai

Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.

Nuorodą į šį lyginimo vaizdą

Kitas pataisymas
Previous revision
projektas_nr.7 [2015/10/25 17:50] – sukurtas 193.219.47.27projektas_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: vartotojo 193.219.47.27