Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. ///////////////////////////////////////////////////
  2. //Project 6.03 Read TCN75A Temperature Sensor
  3. //Wire-kirjasto mahdollistaa keskustelun I2C-laitteiden kanssa
  4. #include <Wire.h>
  5. //alustetaan tarvittavat muuttujat
  6. int tempreg = 0;
  7. float temperature = 0;
  8. byte address = 72;
  9. int fan = 8;
  10. int potentiometer = A0;
  11. int potValue = 0;
  12. float threshold = 0;
  13.  
  14. void setup(){
  15. //asettaa tiedonsiirtonopeuden, jolla tietoa siirretään Arduinon ja tietokoneen välillä; tässä 9600bps
  16. Serial.begin(9600);
  17. Wire.begin();
  18.  
  19. //konfiguroidaan pinni numero 8 toimimaan outputtina
  20. pinMode(fan, OUTPUT);
  21.  
  22. Wire.beginTransmission(address);
  23. Wire.write(0x01);
  24. Wire.write(0x60);
  25. Wire.endTransmission();
  26. Wire.beginTransmission(address);
  27. Wire.write(0x00);
  28. Wire.endTransmission();
  29. }
  30.  
  31. void loop(){
  32. // Receives data from the Temperature Register
  33. Wire.requestFrom(address,byte(2));
  34. tempreg = Wire.read();
  35. tempreg= tempreg << 8;
  36. tempreg |= Wire.read();
  37. tempreg = tempreg >> 4;
  38.  
  39. //lasketaan lämpötila
  40. temperature =( float ) tempreg / 16;
  41.  
  42. potValue = analogRead(potentiometer);
  43. threshold = (23 + potValue/250.0);
  44.  
  45. //ehtolause, joka tarkistaa lämpötilan suuruuden
  46. if(temperature > threshold){
  47. //jos lämpötila on liian suuri, käynnistää tuulettimen
  48. digitalWrite(fan, HIGH);
  49. }else
  50. {
  51. //muuten sammuttaa tuulettimen tai pitää sen sammuneena
  52. digitalWrite(fan, LOW);
  53. }
  54. // tulostetaan lämpötila sarjamonitoriin
  55. Serial.print("Tuuletin käynnistyy, jos lämpötila > ");
  56. Serial.println(threshold, 1);
  57. Serial.print("Tämänhetkinen lämpötila: ");
  58. Serial.println(temperature, 1);
  59.  
  60. delay(500);
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement