I have a 2 software form my Project. When hc-sr04 is 3 cm, I want my vehicle to stop and switch to 2nd software using
I have a 2 software form my Project. When hc-sr04 is 3 cm, I want my vehicle to stop and switch to 2nd software using interrupt and then back to 1st software. How can I do it.we want to have a combined code with an interrupt program that, includes black line following and also passing through an obstacle if it comes so, if you could mix up that we want by the codes which we sent or could you make a new codes with the sensors we have hc-sr04, 4 way tracking module (cny70), 2 6V 250 RPM dc motors ,L 298N VOLTAGE REGULATOR motor driver and ariuno uno
1st software
define echoPin 12 //Ultrasonik sensrn echo pini Arduino'nun 12.pinine
#define trigPin 13 //Ultrasonik sensrn trig pini Arduino'nun 13.pinine tanmland.
#define MotorR1 7
#define MotorR2 6
#define MotorRE 9 // Motor pinlerini tanmlyoruz.
#define MotorL1 5
#define MotorL2 4
#define MotorLE 3
long sure, uzaklik; //sre ve uzaklk diye iki deiken tanmlyoruz.
void setup() {
// ultrasonik sensr Trig pininden ses dalgalar gnderdii iin OUTPUT (k),
// bu dalgalar Echo pini ile geri ald iin INPUT (Giri) olarak tanmlanr.
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(MotorL1, OUTPUT);
pinMode(MotorL2, OUTPUT);
pinMode(MotorLE, OUTPUT); //Motorlarmz k olarak tanmlyoruz.
pinMode(MotorR1, OUTPUT);
pinMode(MotorR2, OUTPUT);
pinMode(MotorRE, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW); //sensr pasif hale getirildi
delayMicroseconds(5);
digitalWrite(trigPin, HIGH); //Sensore ses dalgasnn retmesi iin emir verildi
delayMicroseconds(10);
digitalWrite(trigPin, LOW); //Yeni dalgalarn retilmemesi iin trig pini LOW konumuna getirildi
sure = pulseIn(echoPin, HIGH); //ses dalgasnn geri dnmesi iin geen sure llyor
uzaklik = sure / 29.1 / 2; //llen sre uzakla evriliyor
Serial.println(uzaklik);
if (uzaklik < 15) // Uzaklk 15'den kk ise,
{
geri(); // 150 ms geri git
delay(150);
sag(); // 250 ms saa dn
delay(250);
}
else { // deil ise,
ileri(); // ileri git
}
}
void ileri(){ // Robotun ileri ynde hareketi iin fonksiyon tanmlyoruz.
digitalWrite(MotorR1, HIGH); // Sa motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sa motorun geri hareketi pasif
analogWrite(MotorRE, 150); // Sa motorun hz 150
digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
analogWrite(MotorLE, 150); // Sol motorun hz 150
}
void sag(){ // Robotun saa dnme hareketi iin fonksiyon tanmlyoruz.
digitalWrite(MotorR1, HIGH); // Sa motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sa motorun geri hareketi pasif
analogWrite(MotorRE, 0); // Sa motorun hz 0 (Motor duruyor)
digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
analogWrite(MotorLE, 150); // Sol motorun hz 150
}
void geri(){ // Robotun geri ynde hareketi iin fonksiyon tanmlyoruz.
digitalWrite(MotorR1, LOW); // Sa motorun ileri hareketi pasif
digitalWrite(MotorR2, HIGH); // Sa motorun geri hareketi aktif
analogWrite(MotorRE, 150); // Sa motorun hz 150
digitalWrite(MotorL1, LOW); // Sol motorun ileri hareketi pasif
digitalWrite(MotorL2, HIGH); // Sol motorun geri hareketi aktif
analogWrite(MotorLE, 150); // Sol motorun hz 150
}
2nd software
#define SensorSol 10
#define SensorOrta 11
#define SensorSag 12
#define MotorR1 6
#define MotorR2 7 // Sensr ve Motorlarn Arduino'ya baladmz pinlerini tanmlyoruz.
#define MotorRE 9
#define MotorL1 5
#define MotorL2 4
#define MotorLE 3
void setup() {
pinMode(SensorSol, INPUT);
pinMode(SensorOrta, INPUT);
pinMode(SensorSag, INPUT);
pinMode(MotorR1, OUTPUT); // Sensr ve Motorlarn Giri-k bilgilerini belirtiyoruz.
pinMode(MotorR2, OUTPUT);
pinMode(MotorL1, OUTPUT);
pinMode(MotorL2, OUTPUT);
}
void loop() {
if (digitalRead(SensorSol) == 0 && digitalRead(SensorOrta) == 1 && digitalRead(SensorSag) == 0) { // Orta sensr izgiyi grdnde robot ileri gitsin.
ileri();
}
if (digitalRead(SensorSol) == 0 && digitalRead(SensorOrta) == 0 && digitalRead(SensorSag) == 1) { // Sa sensr izgiyi grdnde robot saa dnsn.
sag();
}
if (digitalRead(SensorSol) == 1 && digitalRead(SensorOrta) == 0 && digitalRead(SensorSag) == 0) { // Sol sensr izgiyi grdnde robot sola dnsn.
sol();
}
}
void ileri() { // Robotun ileri ynde hareketi iin fonksiyon tanmlyoruz.
digitalWrite(MotorR1, HIGH); // Sa motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sa motorun geri hareketi pasif
analogWrite(MotorRE, 150); // Sa motorun hz 150
digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
analogWrite(MotorLE, 150); // Sol motorun hz 150
}
void sag() { // Robotun saa dnme hareketi iin fonksiyon tanmlyoruz.
digitalWrite(MotorR1, HIGH); // Sa motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sa motorun geri hareketi pasif
analogWrite(MotorRE, 0); // Sa motorun hz 0 (Motor duruyor)
digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
analogWrite(MotorLE, 150); // Sol motorun hz 150
}
void sol() { // Robotun sola dnme hareketi iin fonksiyon tanmlyoruz.
digitalWrite(MotorR1, HIGH); // Sa motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sa motorun geri hareketi pasif
analogWrite(MotorRE, 150); // Sa motorun hz 150
digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
analogWrite(MotorLE, 0); // Sol motorun hz 0 (Motor duruyor)
}
void dur() { // Robotun durma hareketi iin fonksiyon tanmlyoruz.
digitalWrite(MotorR1, HIGH);
digitalWrite(MotorR2, LOW);
digitalWrite(MotorRE, LOW);
digitalWrite(MotorL1, HIGH);
digitalWrite(MotorL2, LOW);
digitalWrite(MotorLE, LOW);
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started