Advertisement
Guest User

Untitled

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