From f6385c9dc7481cb1206449f4a1d4abe4d540e573 Mon Sep 17 00:00:00 2001 From: omar Date: Sun, 23 Oct 2022 04:49:36 +0200 Subject: [PATCH] Add README Srcs --- README.md | 28 +++++++++++++++++++++++++++ imgs/Abstraction_Layers.png | Bin 0 -> 22748 bytes imgs/Abstraction_Layers_Detailed.png | Bin 0 -> 14476 bytes 3 files changed, 28 insertions(+) create mode 100644 README.md create mode 100644 imgs/Abstraction_Layers.png create mode 100644 imgs/Abstraction_Layers_Detailed.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..fcac004 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# Fan-Control_System_AVR +Implemented via **AVR atmega32** MCU with **1 MHz** internal clock frequency. +>### Project Description: + +* **The fan is automatically turned OFF or ON with variable speed according to the temperature.** +* **Based on the temperature read from the LM35 sensor, the MCU sets the fan speed as follows:** +  i. If the temperature is less than 30C, the fan is turned off.
+  ii. If the temperature is greater than or equal 30C, the fan is turned on with 25% of its maximum speed.
+  iii. If the temperature is greater than or equal 60C, the fan is turned on with 50% of its maximum speed.
+  iv. If the temperature is greater than or equal 90C, the fan is turned on with 75% of its maximum speed.
+  v. If the temperature is greater than or equal 120C, the fan is turned on with 100% of its maximum speed.

+* **The fan status is continuously updated on an LCD screen.** + +>### Project Design: +* **The Project follows modular design as shown in the diagram below:** + +Layered Model | Layered Model Detailed +:-------------------------:|:-------------------------: +![Abstraction_Layers_](./imgs/Abstraction_Layers.png) | ![Abstraction_Layers_Detailed](./imgs/Abstraction_Layers_Detailed.png) + +>### Project Simulation: +![Project Simulation GIF](./imgs/sim.gif) +>### How to run: +* Clone the project repo via `git clone https://github.com/0marAmr/Fan-Control-System`. +* Open command prompt in the project directory. +* Run `make compile` to compile project files. +* Open ***project_simulation*** file found in ***sim*** directory. +* After simulating, run `make clean` to remove compilation files. \ No newline at end of file diff --git a/imgs/Abstraction_Layers.png b/imgs/Abstraction_Layers.png new file mode 100644 index 0000000000000000000000000000000000000000..d390f0ab80f9ee444725dd0a401412cb53e7fe73 GIT binary patch literal 22748 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 literal 0 HcmV?d00001