basic information :
This is Simple but interesting project, There Are 2 sensors 1 at entry and 1 at exit. As visitor enters in a room counter value will increase and similarly as visitor exits from room counter value will decrease, That (counter) value will be shown on 7 segment displays. If there are 0 people in room then fan (other device) Will be Turned off else if there are people in room (greater then 0) Fan or light will be turned off.
Circuit Diagram :

As you can see in a circuit diagram, nearly all pins are busy, That's because, in this circuit we have used 1 individual pin of Arduino for each LED of seven segment display, so 14 pins for that (You Can use more relevant and logical way in such cases and you will have to use libraries also to reduce circuit) .
Then 2 pins for 2 IR Sensors (We have used IR sensors cause they are easy to access) in Big projects one can use sensors like PIR sensors or Ultrasonic sensors. And 1 pin is for Room fan (Here one can turn on and off light bulb or AC or any other devices also with the help of Relay Circuit).
Code:
This is basic Code, There are 2 parts first there is logic (You can refer code comments)
int ir1, ir2 ;
int counter = 0;
int a, b;
int d11 = A3, d12 = A4, d13 = 2, d14 = 3, d15 = 4, d16 = 5, d17 = 6;
int d21 = 7, d22 = 8, d23 = 9, d24 = 10, d25 = 11, d26 = 12, d27 = 13; // For Each LEd of 7 segment display...
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
ir1 = digitalRead(A0);
ir2 = digitalRead(A1); // Reading IR sensors (ir1 for exit and ir2 for entry)....
if (ir1 == 0) {
counter++;
Serial.print("Enter ");
Serial.print("People In Room : ");
Serial.println(counter);
delay(1000); // If someone comes near(infront) of IR1 then counter (variable) will increase by 1
}
if (ir2 == 0) {
counter--;
Serial.print("Exit ");
Serial.print("People In Room : ");
Serial.println(counter);
delay(1000); // Same for Exit (IR2) counter value will be decrease by 1
}
if (counter == 0) {
digitalWrite(A2, LOW); // Motor Fan will be LOW (off) if There are 0 people in room0
}
if (counter >= 1) {
digitalWrite(A2, HIGH); // Fan willl be turned on if there are more then 0 people in room
}
a = counter / 10; // With Logic creating First digit
b = counter % 10; // Remainder of number is second digit
// Example
// If number is 56 then 56/10 = 5 (as intiger), and 56%10 (remainder) will be 6
// So first digit is 5 and second digit is 6
if (a == 0) {
a0();
}
else if (a == 1) {
a1();
}
else if (a == 2) {
a2();
}
else if (a == 3) {
a3();
}
else if (a == 4) {
a4();
}
else if (a == 5) {
a5();
}
else if (a == 6) {
a6();
}
else if (a == 7) {
a7();
}
else if (a == 8) {
a8();
}
else if (a == 9) {
a9();
}
if (b == 0) {
b0();
}
else if (b == 1) {
b1();
}
else if (b == 2) {
b2();
}
else if (b == 3) {
b3();
}
else if (b == 4) {
b4();
}
else if (b == 5) {
b5();
}
else if (b == 6) {
b6();
}
else if (b == 7) {
b7();
}
else if (b == 8) {
b8();
}
else if (b == 9) {
b9();
}
// With the help of If else loop Digits will get printed .....
}
Now This Code is For Functions, Add This one to Previous One.
// Creating Numbers (By Turning on and off typical LED's in a patteern)
void a0() {
digitalWrite(d11, LOW);
digitalWrite(d12, LOW);
digitalWrite(d13, LOW);
digitalWrite(d14, LOW);
digitalWrite(d15, HIGH);
digitalWrite(d16, LOW);
digitalWrite(d17, LOW);
}
void b0() {
digitalWrite(d21, LOW);
digitalWrite(d22, LOW);
digitalWrite(d23, LOW);
digitalWrite(d24, LOW);
digitalWrite(d25, HIGH);
digitalWrite(d26, LOW);
digitalWrite(d27, LOW);
}
void a1() {
digitalWrite(d11, HIGH);
digitalWrite(d12, HIGH);
digitalWrite(d13, HIGH);
digitalWrite(d14, LOW);
digitalWrite(d15, HIGH);
digitalWrite(d16, LOW);
digitalWrite(d17, HIGH);
}
void b1() {
digitalWrite(d21, HIGH);
digitalWrite(d22, HIGH);
digitalWrite(d23, HIGH);
digitalWrite(d24, LOW);
digitalWrite(d25, HIGH);
digitalWrite(d26, LOW);
digitalWrite(d27, HIGH);
}
void a2() {
digitalWrite(d11, LOW);
digitalWrite(d12, HIGH);
digitalWrite(d13, LOW);
digitalWrite(d14, LOW);
digitalWrite(d15, LOW);
digitalWrite(d16, HIGH);
digitalWrite(d17, LOW);
}
void b2() {
digitalWrite(d21, LOW);
digitalWrite(d22, HIGH);
digitalWrite(d23, LOW);
digitalWrite(d24, LOW);
digitalWrite(d25, LOW);
digitalWrite(d26, HIGH);
digitalWrite(d27, LOW);
}
void a3() {
digitalWrite(d11, LOW);
digitalWrite(d12, HIGH);
digitalWrite(d13, HIGH);
digitalWrite(d14, LOW);
digitalWrite(d15, LOW);
digitalWrite(d16, LOW);
digitalWrite(d17, LOW);
}
void b3() {
digitalWrite(d21, LOW);
digitalWrite(d22, HIGH);
digitalWrite(d23, HIGH);
digitalWrite(d24, LOW);
digitalWrite(d25, LOW);
digitalWrite(d26, LOW);
digitalWrite(d27, LOW);
}
void a4() {
digitalWrite(d11, HIGH);
digitalWrite(d12, LOW);
digitalWrite(d13, HIGH);
digitalWrite(d14, LOW);
digitalWrite(d15, LOW);
digitalWrite(d16, LOW);
digitalWrite(d17, HIGH);
}
void b4() {
digitalWrite(d21, HIGH);
digitalWrite(d22, LOW);
digitalWrite(d23, HIGH);
digitalWrite(d24, LOW);
digitalWrite(d25, LOW);
digitalWrite(d26, LOW);
digitalWrite(d27, HIGH);
}
void a5() {
digitalWrite(d11, LOW);
digitalWrite(d12, LOW);
digitalWrite(d13, HIGH);
digitalWrite(d14, HIGH);
digitalWrite(d15, LOW);
digitalWrite(d16, LOW);
digitalWrite(d17, LOW);
}
void b5() {
digitalWrite(d21, LOW);
digitalWrite(d22, LOW);
digitalWrite(d23, HIGH);
digitalWrite(d24, HIGH);
digitalWrite(d25, LOW);
digitalWrite(d26, LOW);
digitalWrite(d27, LOW);
}
void a6() {
digitalWrite(d11, LOW);
digitalWrite(d12, LOW);
digitalWrite(d13, LOW);
digitalWrite(d14, HIGH);
digitalWrite(d15, LOW);
digitalWrite(d16, LOW);
digitalWrite(d17, LOW);
}
void b6() {
digitalWrite(d21, LOW);
digitalWrite(d22, LOW);
digitalWrite(d23, LOW);
digitalWrite(d24, HIGH);
digitalWrite(d25, LOW);
digitalWrite(d26, LOW);
digitalWrite(d27, LOW);
}
void a7() {
digitalWrite(d11, LOW);
digitalWrite(d12, HIGH);
digitalWrite(d13, HIGH);
digitalWrite(d14, LOW);
digitalWrite(d15, HIGH);
digitalWrite(d16, LOW);
digitalWrite(d17, HIGH);
}
void b7() {
digitalWrite(d21, LOW);
digitalWrite(d22, HIGH);
digitalWrite(d23, HIGH);
digitalWrite(d24, LOW);
digitalWrite(d25, HIGH);
digitalWrite(d26, LOW);
digitalWrite(d27, HIGH);
}
void a8() {
digitalWrite(d11, LOW);
digitalWrite(d12, LOW);
digitalWrite(d13, LOW);
digitalWrite(d14, LOW);
digitalWrite(d15, LOW);
digitalWrite(d16, LOW);
digitalWrite(d17, LOW);
}
void b8() {
digitalWrite(d21, LOW);
digitalWrite(d22, LOW);
digitalWrite(d23, LOW);
digitalWrite(d24, LOW);
digitalWrite(d25, LOW);
digitalWrite(d26, LOW);
digitalWrite(d27, LOW);
}
void a9(){
digitalWrite(d11, LOW);
digitalWrite(d12, LOW);
digitalWrite(d13, HIGH);
digitalWrite(d14, LOW);
digitalWrite(d15, LOW);
digitalWrite(d16, LOW);
digitalWrite(d17, LOW);
}
void b9(){
digitalWrite(d21, LOW);
digitalWrite(d22, LOW);
digitalWrite(d23, HIGH);
digitalWrite(d24, LOW);
digitalWrite(d25, LOW);
digitalWrite(d26, LOW);
digitalWrite(d27, LOW);
}
// Created 20 Functions for 20 digits (2*10) 2 displays
This is All About Project, If you have any questions Ask in Comments, Thank You !
Post a Comment