//پروژه پایانی برنامه نویسی سخت افزار
//دانشجو : سهراب جمشیدنژاد
//به دلیل عدم وجود سنسور رطوبت در شبیه ساز از سنسور دما استفاده شده
//جهت مشخض شدن زمان روشن و خاموش شدن پمپ اب از
// LED BLUE, SERVO MOTOR
//استفاده شده
//هنگام اجرا روی سنسور کلیک کنید و مقدار رطوبت را وارد کنید
const int ledBarPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
const int ledPin = 12;
const int servoPin = 13;
const int sensorPin = A0;
#include <Servo.h>
Servo servoMotor;
void setup() {
for (int i = 0; i < 10; i++) {
pinMode(ledBarPins[i], OUTPUT);
}
pinMode(ledPin, OUTPUT);
servoMotor.attach(servoPin);
// Initialize Serial Monitor for debugging
Serial.begin(9600);
}
void loop() {
// Read temperature from the sensor (simulate temperature conversion if needed)
int sensorValue = analogRead(sensorPin);
float voltage = sensorValue * (5.0 / 1023.0);
float temperature = (voltage - 0.5) * 100.0; // Convert to Celsius
// Debugging output
Serial.print("Temperature: ");
Serial.println(temperature);
if (temperature > 369) {
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], LOW);
digitalWrite(ledBarPins[7], LOW);
digitalWrite(ledBarPins[6], LOW);
digitalWrite(ledBarPins[5], LOW);
digitalWrite(ledBarPins[4], LOW);
digitalWrite(ledBarPins[3], LOW);
digitalWrite(ledBarPins[2], LOW);
digitalWrite(ledBarPins[1], LOW);
digitalWrite(ledBarPins[0], LOW);
} else if (temperature <= 369 && temperature > 336) {
digitalWrite(ledBarPins[10], HIGH);
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], LOW);
digitalWrite(ledBarPins[7], LOW);
digitalWrite(ledBarPins[6], LOW);
digitalWrite(ledBarPins[5], LOW);
digitalWrite(ledBarPins[4], LOW);
digitalWrite(ledBarPins[3], LOW);
digitalWrite(ledBarPins[2], LOW);
digitalWrite(ledBarPins[1], LOW);
digitalWrite(ledBarPins[0], LOW);
} else if (temperature <= 336 && temperature > 303) {
digitalWrite(ledBarPins[10], HIGH);
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], HIGH);
digitalWrite(ledBarPins[7], LOW);
digitalWrite(ledBarPins[6], LOW);
digitalWrite(ledBarPins[5], LOW);
digitalWrite(ledBarPins[4], LOW);
digitalWrite(ledBarPins[3], LOW);
digitalWrite(ledBarPins[2], LOW);
digitalWrite(ledBarPins[1], LOW);
digitalWrite(ledBarPins[0], LOW);
} else if (temperature <= 303 && temperature > 270) {
digitalWrite(ledBarPins[10], HIGH);
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], HIGH);
digitalWrite(ledBarPins[7], HIGH);
digitalWrite(ledBarPins[6], LOW);
digitalWrite(ledBarPins[5], LOW);
digitalWrite(ledBarPins[4], LOW);
digitalWrite(ledBarPins[3], LOW);
digitalWrite(ledBarPins[2], LOW);
digitalWrite(ledBarPins[1], LOW);
digitalWrite(ledBarPins[0], LOW);
} else if (temperature <= 270 && temperature > 237) {
digitalWrite(ledBarPins[10], HIGH);
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], HIGH);
digitalWrite(ledBarPins[7], HIGH);
digitalWrite(ledBarPins[6], HIGH);
digitalWrite(ledBarPins[5], LOW);
digitalWrite(ledBarPins[4], LOW);
digitalWrite(ledBarPins[3], LOW);
digitalWrite(ledBarPins[2], LOW);
digitalWrite(ledBarPins[1], LOW);
digitalWrite(ledBarPins[0], LOW);
} else if (temperature <= 237 && temperature > 204) {
digitalWrite(ledBarPins[10], HIGH);
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], HIGH);
digitalWrite(ledBarPins[7], HIGH);
digitalWrite(ledBarPins[6], HIGH);
digitalWrite(ledBarPins[5], HIGH);
digitalWrite(ledBarPins[4], LOW);
digitalWrite(ledBarPins[3], LOW);
digitalWrite(ledBarPins[2], LOW);
digitalWrite(ledBarPins[1], LOW);
digitalWrite(ledBarPins[0], LOW);
} else if (temperature <= 204 && temperature > 171) {
digitalWrite(ledBarPins[10], HIGH);
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], HIGH);
digitalWrite(ledBarPins[7], HIGH);
digitalWrite(ledBarPins[6], HIGH);
digitalWrite(ledBarPins[5], HIGH);
digitalWrite(ledBarPins[4], HIGH);
digitalWrite(ledBarPins[3], LOW);
digitalWrite(ledBarPins[2], LOW);
digitalWrite(ledBarPins[1], LOW);
digitalWrite(ledBarPins[0], LOW);
} else if (temperature <= 171 && temperature > 138) {
digitalWrite(ledBarPins[10], HIGH);
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], HIGH);
digitalWrite(ledBarPins[7], HIGH);
digitalWrite(ledBarPins[6], HIGH);
digitalWrite(ledBarPins[5], HIGH);
digitalWrite(ledBarPins[4], HIGH);
digitalWrite(ledBarPins[3], HIGH);
digitalWrite(ledBarPins[2], LOW);
digitalWrite(ledBarPins[1], LOW);
digitalWrite(ledBarPins[0], LOW);
} else if (temperature <= 138 && temperature > 90) {
digitalWrite(ledBarPins[10], HIGH);
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], HIGH);
digitalWrite(ledBarPins[7], HIGH);
digitalWrite(ledBarPins[6], HIGH);
digitalWrite(ledBarPins[5], HIGH);
digitalWrite(ledBarPins[4], HIGH);
digitalWrite(ledBarPins[3], HIGH);
digitalWrite(ledBarPins[2], HIGH);
digitalWrite(ledBarPins[1], LOW);
digitalWrite(ledBarPins[0], LOW);
} else if (temperature <= 90 && temperature > 45) {
digitalWrite(ledBarPins[10], HIGH);
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], HIGH);
digitalWrite(ledBarPins[7], HIGH);
digitalWrite(ledBarPins[6], HIGH);
digitalWrite(ledBarPins[5], HIGH);
digitalWrite(ledBarPins[4], HIGH);
digitalWrite(ledBarPins[3], HIGH);
digitalWrite(ledBarPins[2], HIGH);
digitalWrite(ledBarPins[1], HIGH);
digitalWrite(ledBarPins[0], LOW);
} if (temperature <= 45) {
digitalWrite(ledBarPins[10], HIGH);
digitalWrite(ledBarPins[9], HIGH);
digitalWrite(ledBarPins[8], HIGH);
digitalWrite(ledBarPins[7], HIGH);
digitalWrite(ledBarPins[6], HIGH);
digitalWrite(ledBarPins[5], HIGH);
digitalWrite(ledBarPins[4], HIGH);
digitalWrite(ledBarPins[3], HIGH);
digitalWrite(ledBarPins[2], HIGH);
digitalWrite(ledBarPins[1], HIGH);
digitalWrite(ledBarPins[0], HIGH);
}
if (temperature > 310) {
digitalWrite(ledPin, HIGH);
servoMotor.write(90);
} else if (temperature < 30) {
digitalWrite(ledPin, LOW);
servoMotor.write(0);
}
delay(250);
}