Vartotojo įrankiai

Svetainės įrankiai


projektas_nr.7

Skirtumai

Čia matote skirtumus tarp pasirinktos versijos ir esamo dokumento.

Nuorodą į šį lyginimo vaizdą

Abiejų pusių ankstesnis pataisymasPrevious revision
Kitas pataisymas
Previous revision
projektas_nr.7 [2015/10/25 18:02] 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.7.1445788942.txt.gz · Keista: vartotojo 193.219.47.27