Arduino - 溫溼度感測器 + 伺服馬達、光敏電阻 + LED(Temperature and Humidity sensor + Servomotor、photocell + LED)


目的


1.以溫溼度感測器感測溫度變化,進而使伺服馬達有不同的轉速

2.光敏電阻監控光線變化,光線越暗,LED越亮


成果:


Arduino Code:

  1. #include < Wire.h >
  2. #include < SPI.h >
  3. #include < dht11.h > // DHT11 感測器程式庫
  4. #include < LiquidCrystal.h >
  5.  
  6. const byte LED = 11;
  7. dht11 DHT11; // 宣告溫濕度檢測器程式物件
  8. const byte dataPin = 2;
  9. int LDR = 0; //光敏電阻輸入,接在anallog pin 0
  10. float readLDR = 0; //光敏電阻感應到的光源產生的電阻值
  11. byte mopin = 5;
  12. int potValue = 0;
  13. byte val = 0;
  14. //led change
  15. int bright = 0;
  16.  
  17. void setup() {
  18. pinMode(LED, OUTPUT);
  19. pinMode(mopin, OUTPUT);
  20. Serial.begin(9600);
  21. }
  22. void loop() {
  23. readLDR = analogRead(LDR); //存取光敏電阻的電阻值
  24. int chk = DHT11.read(dataPin);
  25.  
  26. if (chk == 0) {
  27. Serial.println(DHT11.temperature);
  28. if (DHT11.temperature < 27) {
  29. val = 0;
  30. analogWrite(mopin, val);
  31. }
  32. else if (DHT11.temperature == 27) {
  33. analogWrite(mopin, 100);
  34. }
  35. else if (DHT11.temperature > 27) {
  36. analogWrite(mopin, 200);
  37. }
  38.  
  39. analogWrite(11, bright);
  40. if (readLDR > 850) {
  41. bright = 255;
  42. }
  43. else if (readLDR > 600 && readLDR < 850) {
  44. bright = 80;
  45. }
  46. else if (readLDR < 600) {
  47. bright = 0;
  48. }
  49. //Serial.println(readLDR);
  50.  
  51. }
  52. }

留言