Arduino Tutorial Bundle.: Arduino experimenterande Kit:. (ARDX) (12 / 13 steg)
Steg 12:.: temperatur:. (TMP36 Precision temperatursensor) - CIRC10
Vad vi gör:
Vad är nästa fenomenen mäter vi med våra Arduino? Temperaturen. För att göra detta använder vi en ganska komplicerad IC (integrerat kretsgång) gömda i ett paket som är identisk med vår P2N2222AG transistorer. Den har tre stift marken, signal och + 5 volt, och är lätt att använda. Det utgångar 10 Millivolt per grad Celsius på signal stift (för att mäta temperaturer under frysa det är en 500 mV offset t.ex. 25 grader C = 750 mV, 0 grader C = 500mV). För att konvertera detta från digital värdet till grader använder vi en del av den Arduino matematik förmågor. Sedan om du vill visa det använder vi en av IDE ganska kraftfulla funktioner, felsökningsfönstret. Vi kommer produktionen värdet över en seriell anslutning till visas på skärmen. Låt oss komma till den.
En extra Obs, denna krets använder Arduino IDE seriell monitor. Om du vill öppna detta, först ladda upp programmet sedan klicka på knappen som ser ut som en fyrkant med en antenner.
TMP36 Ddatasheet:
http://tinyurl.com/plbx38
(du kan också hämta bladet bakbord layout från botten av detta steg)
Delarna:
- CIRC-10 set av brödunderläggen blad
- 2 stift huvud (x4)
- Temperaturgivare (TMP36) (x 1)
- Wire
Kretsen och ansluta allt:
En liten Video av allt att vara inkopplad
The Code: - http://tinyurl.com/dfj8rs
/* --------------------------------------------- * | Arduino experimenterande Kit exempel kod | * | CIRC-10.: temperatur:. | *---** Ett enkelt program att mata den aktuella temperaturen * till IDE felsökningsfönstret * för mer information om denna krets: * http://tinyurl.com/c89tvd * ///TMP36 Pin Variablesint temperaturePin = 0; //the analog stift den TMP36 //Vout pin är ansluten till //the resolution är //10 mV / grad Celsius //(500 mV offset) göra //negative temperaturer en optionvoid setup() {Serial.begin(9600); //Start seriell anslutning //with vyn copmuter //to resultatet öppna knappen //serial monitor //last under filen //bar (ser ut som en låda med en //antenae)} void loop() / / kör om och om igen {float temperatur = getVoltage(temperaturePin); //getting spänning läsningen från //temperature sensortemperature = (temperatur -.5) * 100; //converting från 10 mv //per grad wit 500 mV offset till //degrees ((volatge - 500mV) gånger 100) Serial.println(temperature); //printing resultatet delay(1000); //waiting en andra} / * * getVoltage() - returnerar spänningen på analog ingång * definieras av pin * / flyta getVoltage (int pin) {återvända (analogRead(pin) * .004882814);//converting från ett 0 //to 1024 digitala utbud / / till 0-5 volt //(each 1 reading equals ~ 5 millivolts}
Inte fungerar?
- Ingenting verkar hända - programmet har inga yttre tecken på det fungerar. Du måste öppna Arduino IDE seriell övervaka för att se resultaten.
- Rotvälska visas - detta händer eftersom seriell monitorn tar emot data i olika takt än väntat. För att åtgärda detta, klicka på den nedrullningsbara rutan som lyder "*** baud" och ändra det till "9600 baud".
- Temperatur värdet är Unchanging. -Prova klämmande sensorn med fingrarna för att hetta upp eller trycka på en påse med is mot den för att kyla ner.
(instruktioner på föregående sida)
Att göra det bättre:
Matar spänning:
Detta är en enkel sak att ändra en rad. Sensor utgångar 10mv per grad Celsius så för att få spänning visar vi helt enkelt resultatet av getVoltage().
ta bort raden temperaturen = (temperatur -.5) * 100;
Utskrift av grader Fahrenheit:
Även är detta en enkel förändring som kräver bara matematik. för att gå grader C---> grader F använder vi formeln.
(F = C * 1,8) + 32)
Lägg till rad
temperatur = (((temperature-.5) * 100) * 1,8) + 32; innan Serial.println(temperature);
Mer informativ utgång:
Kan lägga till ett meddelande till seriell utgång göra vad visas i följetong bildskärmen mer informativ. För att göra detta först återgå till ursprungliga koden ändrar sedan:
Serial.println(temperature); ---> Serial.print(temperature); Serial.println ("grader");
Ändringen till den första raden betyder när vi nästa utgång visas det på samma rad, och sedan lägger vi till den informativa texten och en ny rad.
Ändra seriell hastighet:
Om du någonsin vill produktionen mycket data över seriell linje tiden är väsentliga. Vi för närvarande sänder med 9600 baud men mycket snabbare hastigheter är möjliga. Ändra denna förändring linjen:
Serial.BEGIN(9600); ---> Serial.begin(115200);
Ladda upp skiss aktivera följetong bildskärmen, sedan ändra hastigheten från 9600 baud till 115200 baud i rycka ned menyn. Du nu överföra data 12 gånger snabbare.