Hi Once Again
Here I come up with all the brief things
First this is my complete Code
int irled = 6;
int irbuz = 9;
int ir = 2;
int trig = 3;
int echo = 4;
long duration;
int distance;
int ultraled = 7;
int ultrabuz = 11;
void setup() {
Serial.begin(9600);
pinMode(irled, OUTPUT);
pinMode(irbuz, OUTPUT);
pinMode(ir, INPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(ultrabuz, OUTPUT);
pinMode(ultraled, OUTPUT);
}
void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(5);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = duration * 0.034 / 2;
if (Serial.available() > 0)
{
char data = Serial.read(); // reading the data received from the bluetooth module
switch (data)
{
case '1':
if (digitalRead(ir) == LOW) {
Serial.println("Alert Ir Detects Object");
digitalWrite(irled , HIGH);
digitalWrite(irbuz , HIGH);
delay(10);
}
else {
digitalWrite(irled , LOW);
digitalWrite(irbuz , LOW);
}
break;
case '2':
digitalWrite(irled , LOW);
digitalWrite(irbuz , LOW);
break;
case '3':
if (distance <= 75) {
Serial.print(distance);
Serial.println("cm Extreme Risk ");
digitalWrite(ultraled , HIGH);
tone(ultrabuz, 900);
delay(900);
digitalWrite(ultraled , LOW);
noTone(ultrabuz);
delay(900);
}
else if (distance >= 76 && distance <= 151) {
Serial.print(distance);
Serial.println("cm HIGH Risk");
digitalWrite(ultraled , HIGH);
tone(ultrabuz, 1400);
delay(1400);
digitalWrite(ultraled , LOW);
noTone(ultrabuz);
delay(1400);
}
else if (distance >= 152 && distance <= 227) {
Serial.print(distance);
Serial.println("cm Medium Risk");
digitalWrite(ultraled , HIGH);
tone(ultrabuz, 1500);
delay(2000);
digitalWrite(ultraled , LOW);
noTone(ultrabuz);
delay(2000);
}
else {
digitalWrite(ultraled, LOW);
digitalWrite(ultrabuz, LOW);
}
break;
case '4':
digitalWrite(ultraled, LOW);
digitalWrite(ultrabuz, LOW);
break;
default : break;
}
Serial.println(data);
}
delay(50);
}
So First I am explaining the codding
int irled = 6;
int irbuz = 9;
int ir = 2;
int trig = 3;
int echo = 4;
long duration;
int distance;
int ultraled = 7;
int ultrabuz = 11;.
Here I am explaining Connection and Variables....
void setup() {
Serial.begin(9600);
pinMode(irled, OUTPUT);
pinMode(irbuz, OUTPUT);
pinMode(ir, INPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(ultrabuz, OUTPUT);
pinMode(ultraled, OUTPUT);
}
Here I am starting up the program by Beginning Serial Monitor and Other Things
Now the main part Starts
digitalWrite(trig, LOW);
delayMicroseconds(5);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = duration * 0.034 / 2;
Code for Ultrasonic Sensor
if (Serial.available() 0)
{
char data = Serial.read(); // reading the data received from the bluetooth module
switch (data)
{
Code for start reading data from Bluetooth
case '1':
if (digitalRead(ir) == LOW) {
Serial.println("Alert Ir Detects Object");
digitalWrite(irled , HIGH);
digitalWrite(irbuz , HIGH);
delay(10);
}
else {
digitalWrite(irled , LOW);
digitalWrite(irbuz , LOW);
}
break;
When case 1 is been on by smartphone so this will happen
If the ir detects some thing so turn on the IRLED and IRBUZ also print on serial Monitor Alert IR.....
case '2':
digitalWrite(irled , LOW);
digitalWrite(irbuz , LOW);
break;
Here I am trying to do nothing just turn of IRLED and IRBUZ or we can also say that Easily turning of IR Sensor working of detection or sending signals
case '3':
if (distance <= 75) {
Serial.print(distance);
Serial.println("cm Extreme Risk ");
digitalWrite(ultraled , HIGH);
tone(ultrabuz, 900);
delay(900);
digitalWrite(ultraled , LOW);
noTone(ultrabuz);
delay(900);
}
else if (distance = 76 && distance <= 151) {
Serial.print(distance);
Serial.println("cm HIGH Risk");
digitalWrite(ultraled , HIGH);
tone(ultrabuz, 1400);
delay(1400);
digitalWrite(ultraled , LOW);
noTone(ultrabuz);
delay(1400);
}
else if (distance = 152 && distance <= 227) {
Serial.print(distance);
Serial.println("cm Medium Risk");
digitalWrite(ultraled , HIGH);
tone(ultrabuz, 1500);
delay(2000);
digitalWrite(ultraled , LOW);
noTone(ultrabuz);
delay(2000);
}
else {
digitalWrite(ultraled, LOW);
digitalWrite(ultrabuz, LOW);
}
break;
Here if the case 3 is been sent by the smartphone so ultrasonic sensor start working and do as mentioned.
case '4':
digitalWrite(ultraled, LOW);
digitalWrite(ultrabuz, LOW);
break;
When Case 4 is been sent by the smartphone so just turn of the led and buzzer which was turning on by ultrasonic sensor.
So now here I am briefing what I want to do
I want to turn on case 1 and case 3 i.e. Ultrasonic sensor working as well as IR sensor working together and use the both sensor together want to say that if IR detects then turn on the assignd led and buzzer and at the same time if ultrasonic sensor detects it should also turn on and work as mentioned .
But here now what is happening I can sent only 1 case at a time lets say case 1 only I can't simulate both cases 1 and 3 at the same time.
This thing I have done in real world
But with the same type of code when I want to turn on LED's it is working as expected
Attaching the real world video
LED Controlled by Bluetooth
Here is the code for LED's
void setup() {
Serial.begin(9600);
pinMode(3, OUTPUT); // put your setup code here, to run once:
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available()>0)
{
char data= Serial.read(); // reading the data received from the bluetooth module
switch(data)
{
case '1': digitalWrite(3, HIGH);break;
case '2': digitalWrite(4, HIGH);break;
case '3': digitalWrite(5, HIGH);break;
case '4': digitalWrite(3, LOW);break;
case '5': digitalWrite(4, LOW);break;
case '6': digitalWrite(5, LOW);break;
default : break;
}
Serial.println(data);
}
delay(50);
}
So Now I fell like here I have explained myself completely.
Now Pls Help Me....
Thanks
Krishna