Duş alırken suya açtığınızda suyun sıcaklığının artıp artmadığını bu sensör projesi ile takip edebilirsiniz. Böylece soğuk su yada çok sıcak su olduğunu canınız yanmadan anlayabilirsiniz.Proje arduino ile yapılmış. Analog bir giriş kolay bir şekilde kullanılarak ledlerin yanmasını sağlıyor.

Bakır plaketi devreye breadboard haricinde kurmak isterseniz kullanabilirsiniz. PCB dosyaları yazının en alt kısmına eklendi. Sensörü direk suyla temas ettirmeniz daha iyi olacaktır. Suyun sıcaklığını kolaycan anlamanıza yardımcı olacaktır. Arduino boardunuzun suyla temas etmemesine dikkat edin.

su sıcaklığı1 Arduino UNO

7 kırmızı led

3 yeşil led

10 220ohms direnç

1 9 volts pil

1 bakır plaketi

1 sıcaklık sensörü tmp36 yada lm35

1 10kohms potansiyometre

F0I57KXHGH6JNJR.MEDIUM

Duş başlığına resimde ki gibi monte edebilirsiniz.

FW4B1VBHGH6JNJJ.MEDIUM (1)

PCB Dosyası&nbsp;http://www.bioespin.com/uploads/1/6/8/3/16838648/_medidor_de_temperatra_para_regadera_etch_copper_bottom.pdf/***********************************************************************************///Declare the potencimeter and the temperature sensor pinsconst int potenciometro= A1;const int Temperatura= 0;//declare each led pinconst int led1= 9;const int led2= 8;const int led3= 7;const int led4= 6;const int led5= 5;const int led6= 4;const int led7= 3;const int led8= 2;const int led9= 1;const int led10= 0;//Declare the variables for the temp regulationint pot_regulador= 0;int ajuste_de_temp= 0;//declare leds as outputsvoid setup() { pinMode(led1, OUTPUT);pinMode(led2, OUTPUT);pinMode(led3, OUTPUT);pinMode(led4, OUTPUT);pinMode(led5, OUTPUT);pinMode(led6, OUTPUT);pinMode(led7, OUTPUT);pinMode(led8, OUTPUT);pinMode(led9, OUTPUT);pinMode(led10, OUTPUT);}//main programvoid loop() { //read voltage from the temp sensor and transform to celsius   int reading = analogRead(Temperatura);    float voltage = reading * 5.0;voltage /= 1024.0;float TemperaturaC = (voltage - 0.5) * 100 ;//This part if for regulating the temperature//in this program we divide the value of the potenciometer by 30 to have 30 degrees of regulation//if you divide by 100 you have 10 degrees of regulation// and divided by 50 you get 20 degrees of regulation//the values are only aproximate they are not exact   pot_regulador=analogRead(potenciometro);  ajuste_de_temp=pot_regulador/30;  delay(50); //the temperature is read and the leds light up for the temperature that is measuring  if(TemperaturaC<(10-ajuste_de_temp)){      digitalWrite(led1, HIGH);      digitalWrite(led2, LOW);      digitalWrite(led3, LOW);      digitalWrite(led4, LOW);      digitalWrite(led5, LOW);      digitalWrite(led6, LOW);      digitalWrite(led7, LOW);      digitalWrite(led8, LOW);      digitalWrite(led9, LOW);      digitalWrite(led10, LOW);  }  else if(TemperaturaC<(20-ajuste_de_temp) && TemperaturaC>(10-ajuste_de_temp)){      digitalWrite(led1, HIGH);      digitalWrite(led2, HIGH);      digitalWrite(led3, LOW);      digitalWrite(led4, LOW);      digitalWrite(led5, LOW);      digitalWrite(led6, LOW);      digitalWrite(led7, LOW);      digitalWrite(led8, LOW);      digitalWrite(led9, LOW);      digitalWrite(led10, LOW);  }  else if(TemperaturaC<(30-ajuste_de_temp) && TemperaturaC>(20-ajuste_de_temp)){      digitalWrite(led1, HIGH);      digitalWrite(led2, HIGH);      digitalWrite(led3, HIGH);      digitalWrite(led4, LOW);      digitalWrite(led5, LOW);      digitalWrite(led6, LOW);      digitalWrite(led7, LOW);      digitalWrite(led8, LOW);      digitalWrite(led9, LOW);      digitalWrite(led10, LOW);  }  else if(TemperaturaC<(40-ajuste_de_temp) && TemperaturaC>(30-ajuste_de_temp)){      digitalWrite(led1, HIGH);      digitalWrite(led2, HIGH);      digitalWrite(led3, HIGH);      digitalWrite(led4, HIGH);      digitalWrite(led5, LOW);      digitalWrite(led6, LOW);      digitalWrite(led7, LOW);      digitalWrite(led8, LOW);      digitalWrite(led9, LOW);      digitalWrite(led10, LOW);  }  else if(TemperaturaC<(50-ajuste_de_temp) && TemperaturaC>(40-ajuste_de_temp)){      digitalWrite(led1, HIGH);      digitalWrite(led2, HIGH);      digitalWrite(led3, HIGH);      digitalWrite(led4, HIGH);      digitalWrite(led5, HIGH);      digitalWrite(led6, LOW);      digitalWrite(led7, LOW);      digitalWrite(led8, LOW);      digitalWrite(led9, LOW);      digitalWrite(led10, LOW);  }  else if(TemperaturaC<(60-ajuste_de_temp) && TemperaturaC>(50-ajuste_de_temp)){      digitalWrite(led1, HIGH);      digitalWrite(led2, HIGH);      digitalWrite(led3, HIGH);      digitalWrite(led4, HIGH);      digitalWrite(led5, HIGH);      digitalWrite(led6, HIGH);      digitalWrite(led7, LOW);      digitalWrite(led8, LOW);      digitalWrite(led9, LOW);      digitalWrite(led10, LOW);  }    else if(TemperaturaC<(70-ajuste_de_temp) && TemperaturaC>(60-ajuste_de_temp)){      digitalWrite(led1, HIGH);      digitalWrite(led2, HIGH);      digitalWrite(led3, HIGH);      digitalWrite(led4, HIGH);      digitalWrite(led5, HIGH);      digitalWrite(led6, HIGH);      digitalWrite(led7, HIGH);      digitalWrite(led8, LOW);      digitalWrite(led9, LOW);      digitalWrite(led10, LOW);  }    else if(TemperaturaC<(80-ajuste_de_temp) && TemperaturaC>(70-ajuste_de_temp)){      digitalWrite(led1, HIGH);      digitalWrite(led2, HIGH);      digitalWrite(led3, HIGH);      digitalWrite(led4, HIGH);      digitalWrite(led5, HIGH);      digitalWrite(led6, HIGH);      digitalWrite(led7, HIGH);      digitalWrite(led8, HIGH);      digitalWrite(led9, LOW);      digitalWrite(led10, LOW);  }    else if(TemperaturaC<(90-ajuste_de_temp) && TemperaturaC>(80-ajuste_de_temp)){      digitalWrite(led1, HIGH);      digitalWrite(led2, HIGH);      digitalWrite(led3, HIGH);      digitalWrite(led4, HIGH);      digitalWrite(led5, HIGH);      digitalWrite(led6, HIGH);      digitalWrite(led7, HIGH);      digitalWrite(led8, HIGH);      digitalWrite(led9, HIGH);      digitalWrite(led10, LOW);  }  else if(TemperaturaC<(100-ajuste_de_temp) && TemperaturaC>(90-ajuste_de_temp)){      digitalWrite(led1, HIGH);      digitalWrite(led2, HIGH);      digitalWrite(led3, HIGH);      digitalWrite(led4, HIGH);      digitalWrite(led5, HIGH);      digitalWrite(led6, HIGH);      digitalWrite(led7, HIGH);      digitalWrite(led8, HIGH);      digitalWrite(led9, HIGH);      digitalWrite(led10, HIGH);  }}/****************************************************************************************/

  • osman

    PCB baskı şemasını göremiyorum?