Arduino ile Yangın Söndüren Robot Yapımı
Arduino ile yapılabilecek çok fazla eğlenceli proje bulunuyor. Bu yazımızda hep birlikte yangın söndüren robot yapacağız. Bir robot tasarlayıp, ateşe doğru hareket edip, ateşin yakınına geldiğinde ise su püskürten bir araç. Evet bu robotu Arduino ile tasarlayabiliriz. Detaylar yazımızın devamında.
                26.01.2022 tarihli yazı 10341 kez okunmuştur.
            
            
            
	Yazımızda Arduino ile yangın söndüren robot yapımı için gerekli malzemeleri, çalışma şeklini ve kod satırını derledik.
Yangın Söndüren Robot Malzemeleri
	►Arduino UNO
►Fire Sensor ya da Flame Sensor( 3 tane ) (Ateş Sensörü)
►Servo Motor (SG 90)
►L298N Motor Sürücü
►Mini DC Dalgıç Pompa
►Breadbroad
►Fire Sensor ya da Flame Sensor( 3 tane ) (Ateş Sensörü)
►Servo Motor (SG 90)
►L298N Motor Sürücü
►Mini DC Dalgıç Pompa
►Breadbroad
	►Motorlu (2) ve tekerli (2) robot şasesi
►Küçük bir kutu
►Jamper kablo
►BC237 transistör ve 1N4001 diyot
►Küçük bir kutu
►Jamper kablo
►BC237 transistör ve 1N4001 diyot
 
Yangın Söndüren Robotun Çalışma Şekli
Bu projenin ana beyni Arduino‘dur, ancak ateşi algılamak için ateş sensörü gereklidir. Bu sensör 760m nm–1100 nm arasındaki dalga boyuna sahip ateşi tespit etmek için kullanılır. Üzerinde bir tane IR alıcı vardır. Yangın esnasında alevlerin oluşturduğu küçük IR dalgalarını algıladığında çıkış bacağında lojik 1 sinyal üretmektedir. Çalışma voltajı 5 volttur.Böylece ateşin hangi yönde olduğunu anlamak için robotun üç yönüne bu sensörü yerleştireceğiz.

		Motorlarımızı L298N modülü üzerinden sürerek yangının yönüne hareket ediyoruz. Bir ateşin yanındayken su kullanarak söndürmemiz gerekir. Küçük bir kap kullanarak su taşıyabiliriz, kabın içine 5V'luk bir pompa da yerleştirilmiştir ve tüm kap bir servo motorun üzerine yerleştirilmiştir, böylece suyun püskürtülmesi gereken yönü kontrol edebiliriz. Ancak, Arduino’nun dijital pinlerinden verdiği akım, bu motoru çalıştırmak için yetmemektedir. Bundan dolayı transistörlü bir anahtarlama devresi kurulmuştur.
		
		
	
	
		Yukarıdaki devreyi kurmamız gerekiyor, eğer bu anahtarlama devresini kurmazsak su motorumuz çok verimli çalışmıyor. Ayrıca devrede diyot kullandık. Neden? Çünkü devrede oluşacak olan ters emk, motora ve devreye problem çıkarır. Bunu engellemek için bir tane diyot kullandık. Şimdi ise asıl devremizi tasarlayalım.
		
		
		 

		
		Arduino Yazılımı
	Servo motor 12 numaralı pine, ateş sensörleri 7, 8 ve 9 numaralı pinlere, L298N motor sürücünün input pinleri 5, 4, 3 ve 2 numaralı pinlere, ENA 11, ENB 6 numaralı pine, su motoru ise 10 numaralı pine bağlanmıştır.Servo motoru kullanabilmek için servo motorun kütüphanesi kullanılmıştır.
	#include <Servo.h>
	
Araç ilk çalışmaya başladığında servo motor 90 derecelik açıya ayarlanmaktadır.
	
myServo.write(90);
	
Ateş sensörlerinden gelen veriler okunur:
	
ates_sag=digitalRead(sag_s);
ates_orta=digitalRead(orta_s);
ates_sol=digitalRead(sol_s);
	
Sensörlerden gelen verilere göre araç hareket ettirilir:
	
if(!ates_sag){
motor_sag();
}
if(!ates_sol){
motor_sol();
}
if(!ates_orta){
motor_orta();
ates=true;
}
if(ates_sag == 1 && ates_orta==1 &&ates_sol==1){
motor_dur();
}
	
Eğer boolean olarak tanımlanan ateş değişkeni true olduğunda:
	
while(ates){
ates_sondur();
}
Ates_sondur fonksiyonu:
void ates_sondur(){
Serial.println("Ates sondur");
motor_dur();
delay(500);
digitalWrite(pomp,HIGH);
delay(500);
for(pos = 50;pos<=130;pos+=1){
myServo.write(pos);
delay(10);
}
for(pos = 130;pos>=50;pos-=1){
myServo.write(pos);
delay(10);
}
digitalWrite(pomp,LOW);
myServo.write(90);
ates=false;
Araç ilk çalışmaya başladığında servo motor 90 derecelik açıya ayarlanmaktadır.
myServo.write(90);
Ateş sensörlerinden gelen veriler okunur:
ates_sag=digitalRead(sag_s);
ates_orta=digitalRead(orta_s);
ates_sol=digitalRead(sol_s);
Sensörlerden gelen verilere göre araç hareket ettirilir:
if(!ates_sag){
motor_sag();
}
if(!ates_sol){
motor_sol();
}
if(!ates_orta){
motor_orta();
ates=true;
}
if(ates_sag == 1 && ates_orta==1 &&ates_sol==1){
motor_dur();
}
Eğer boolean olarak tanımlanan ateş değişkeni true olduğunda:
while(ates){
ates_sondur();
}
Ates_sondur fonksiyonu:
void ates_sondur(){
Serial.println("Ates sondur");
motor_dur();
delay(500);
digitalWrite(pomp,HIGH);
delay(500);
for(pos = 50;pos<=130;pos+=1){
myServo.write(pos);
delay(10);
}
for(pos = 130;pos>=50;pos-=1){
myServo.write(pos);
delay(10);
}
digitalWrite(pomp,LOW);
myServo.write(90);
ates=false;
	}
	
	
Servo myServo;
	 
#define sol_s 9
#define sag_s 7
#define orta_s 8
#define pomp 10
#define in1 5
#define in2 4
#define in3 3
#define in4 2
#define enA 11
#define enB 6
	 
	 
int ates_sag;
int ates_sol;
int ates_orta;
boolean ates=false;
int pos = 0;
	 
void setup (){
	 
Serial.begin(9600);
	 
pinMode(sol_s, INPUT);
pinMode(sag_s, INPUT);
pinMode(orta_s, INPUT);
	 
pinMode(pomp, OUTPUT);
	 
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
pinMode(enA,OUTPUT);
pinMode(enB,OUTPUT);
	 
	 
myServo.attach(12);
myServo.write(90);
}
void loop(){
	 
myServo.write(90);
ates_sag=digitalRead(sag_s);
ates_orta=digitalRead(orta_s);
ates_sol=digitalRead(sol_s);
	 
if(!ates_sag){
motor_sag();
	   
}
	 
if(!ates_sol){
motor_sol();
}
	 
if(!ates_orta){
motor_orta();
ates=true;
}
if(ates_sag == 1 && ates_orta==1 &&ates_sol==1){
motor_dur();
}
delay(300);
while(ates){
ates_sondur();
}
}
void motor_sag(){
Serial.println("Motor sag");
// sag motor
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
analogWrite(enA,0);
// sol motor
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(enB,150);
}
void motor_sol(){
Serial.println("Motor sol");
// sag motor
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
analogWrite(enA,150);
// sol motor
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(enB,0);
}
void motor_orta(){
Serial.println("Motor duz");
// sag motor
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
analogWrite(enA,150);
// sol motor
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(enB,150);
	  
}
void motor_dur(){
Serial.println("Motor dur");
// sag motor
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
analogWrite(enA,0);
// sol motor
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
analogWrite(enB,0);
	 
}
void ates_sondur(){
Serial.println("Ates sondur");
motor_dur();
delay(500);
digitalWrite(pomp,HIGH);
delay(500);
for(pos = 50;pos<=130;pos+=1){
myServo.write(pos);
delay(10);
}
for(pos = 130;pos>=50;pos-=1){
myServo.write(pos);
delay(10);
}
digitalWrite(pomp,LOW);
myServo.write(90);
ates=false;
}
	
Kaynak:
	
►circuitdigest.com
►electronicshub.org
►duino4projects.com
	 
Kod:
#include <Servo.h>Servo myServo;
#define sol_s 9
#define sag_s 7
#define orta_s 8
#define pomp 10
#define in1 5
#define in2 4
#define in3 3
#define in4 2
#define enA 11
#define enB 6
int ates_sag;
int ates_sol;
int ates_orta;
boolean ates=false;
int pos = 0;
void setup (){
Serial.begin(9600);
pinMode(sol_s, INPUT);
pinMode(sag_s, INPUT);
pinMode(orta_s, INPUT);
pinMode(pomp, OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
pinMode(enA,OUTPUT);
pinMode(enB,OUTPUT);
myServo.attach(12);
myServo.write(90);
}
void loop(){
myServo.write(90);
ates_sag=digitalRead(sag_s);
ates_orta=digitalRead(orta_s);
ates_sol=digitalRead(sol_s);
if(!ates_sag){
motor_sag();
}
if(!ates_sol){
motor_sol();
}
if(!ates_orta){
motor_orta();
ates=true;
}
if(ates_sag == 1 && ates_orta==1 &&ates_sol==1){
motor_dur();
}
delay(300);
while(ates){
ates_sondur();
}
}
void motor_sag(){
Serial.println("Motor sag");
// sag motor
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
analogWrite(enA,0);
// sol motor
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(enB,150);
}
void motor_sol(){
Serial.println("Motor sol");
// sag motor
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
analogWrite(enA,150);
// sol motor
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(enB,0);
}
void motor_orta(){
Serial.println("Motor duz");
// sag motor
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
analogWrite(enA,150);
// sol motor
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(enB,150);
}
void motor_dur(){
Serial.println("Motor dur");
// sag motor
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
analogWrite(enA,0);
// sol motor
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
analogWrite(enB,0);
}
void ates_sondur(){
Serial.println("Ates sondur");
motor_dur();
delay(500);
digitalWrite(pomp,HIGH);
delay(500);
for(pos = 50;pos<=130;pos+=1){
myServo.write(pos);
delay(10);
}
for(pos = 130;pos>=50;pos-=1){
myServo.write(pos);
delay(10);
}
digitalWrite(pomp,LOW);
myServo.write(90);
ates=false;
}
Kaynak:
►circuitdigest.com
►electronicshub.org
►duino4projects.com
                    YORUMLAR
                
                
Aktif etkinlik bulunmamaktadır.    
- 
                    
                             Dünyanın En Görkemli 10 Güneş Tarlası Dünyanın En Görkemli 10 Güneş Tarlası
- 
                    
                             Dünyanın En Büyük 10 Makinesi Dünyanın En Büyük 10 Makinesi
- 
                    
                             2020’nin En İyi 10 Kişisel Robotu 2020’nin En İyi 10 Kişisel Robotu
- 
                    
                             Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- 
                    
                             Üretimin Geleceğinde Etkili Olacak 10 Beceri Üretimin Geleceğinde Etkili Olacak 10 Beceri
- 
                    
                             Olağan Üstü Tasarıma Sahip 5 Köprü Olağan Üstü Tasarıma Sahip 5 Köprü
- 
                    
                             Dünyanın En İyi Bilim ve Teknoloji Müzeleri Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- 
                    
                             En İyi 5 Tıbbi Robot En İyi 5 Tıbbi Robot
- 
                    
                             Dünyanın En Zengin 10 Mühendisi Dünyanın En Zengin 10 Mühendisi
- 
                    
                             Üretim için 6 Fabrikasyon İşlemi Üretim için 6 Fabrikasyon İşlemi
- 
                    
                         ABB Sürücü Ailesi & Yeni ACS480 Sürücüler | Webinar ABB Sürücü Ailesi & Yeni ACS480 Sürücüler | Webinar
- 
                    
                         Geleceğin Güç Altyapısı Galaxy VXL ile Tanışın | Schneider Electric Geleceğin Güç Altyapısı Galaxy VXL ile Tanışın | Schneider Electric
- 
                    
                         Senplus Pano Sistem Tanıtımı I Webinar Senplus Pano Sistem Tanıtımı I Webinar
- 
                    
                         Nasıl Dönüşür | Rüzgar Enerjisi Nasıl Dönüşür | Rüzgar Enerjisi
- 
                    
                         Nasıl Dönüşür | Hava Kalitesi İndeksi Nasıl Dönüşür | Hava Kalitesi İndeksi
- 
                    
                         Nasıl Dönüşür | Sorumlu Üretim ve Tüketim Nasıl Dönüşür | Sorumlu Üretim ve Tüketim
- 
                    
                         Webinar I Sigma Elektrik'ten Yeni ve Yenilikçi Ürün Portföyü Tanıtım Webinarı Webinar I Sigma Elektrik'ten Yeni ve Yenilikçi Ürün Portföyü Tanıtım Webinarı
- 
                    
                         Nasıl Dönüşür | Eko Etiket Nasıl Dönüşür | Eko Etiket
- 
                    
                         Nasıl Dönüşür | Uzaktan Erişim Nasıl Dönüşür | Uzaktan Erişim
- 
                    
                         Nasıl Dönüşür | Paris Anlaşması Nasıl Dönüşür | Paris Anlaşması
        ANKET
    
     
         
 
                     
                 
                 
                 
                 
                 
                                             
                                             
                                             
                         Sümeyye VARMIŞ
                        Sümeyye VARMIŞ
                         EN 50136 Standardı: Alarm İletim Sistemlerinde Güv...
                    EN 50136 Standardı: Alarm İletim Sistemlerinde Güv...
                 Yüksek Gerilimde Güvenin Anahtarı | Advanced 5 kV,...
                    Yüksek Gerilimde Güvenin Anahtarı | Advanced 5 kV,...
                 Akustik Görüntüleme Nedir? Akustik Kameralar Nasıl...
                    Akustik Görüntüleme Nedir? Akustik Kameralar Nasıl...
                 Otomatik Transfer Şalteri (ATS) Nedir?
                    Otomatik Transfer Şalteri (ATS) Nedir?
                 ENTES EMM Serisi Multimetreler ile Güvenilir Ölçüm
                    ENTES EMM Serisi Multimetreler ile Güvenilir Ölçüm
                
 
                             Güneş Enerjisi Elektrik Üretim Sisteminin Tasarlan...
                    Güneş Enerjisi Elektrik Üretim Sisteminin Tasarlan...
                 Alternatif Akımın Temel Tanımları
                    Alternatif Akımın Temel Tanımları
                 Mühendisler Ne İş Yapar ve Ne Kadar Kazanırlar?
                    Mühendisler Ne İş Yapar ve Ne Kadar Kazanırlar?
                 IT Nedir? | IT Uzmanı Nedir?
                    IT Nedir? | IT Uzmanı Nedir?
                 BIOS Nedir? BIOS Ayarları Nasıl Yapılır?
                    BIOS Nedir? BIOS Ayarları Nasıl Yapılır?
                 Neden Arduino Öğrenmeliyiz? Arduino Öğrenmeye Değe...
                    Neden Arduino Öğrenmeliyiz? Arduino Öğrenmeye Değe...
                 Arduino ve Ultrasonik Sensör ile Engelden Kaçan Ro...
                    Arduino ve Ultrasonik Sensör ile Engelden Kaçan Ro...
                 Arduino I2C Haberleşme Nedir?
                     Arduino I2C Haberleşme Nedir?
                 Arduino SPI Haberleşme Nedir?
                    Arduino SPI Haberleşme Nedir?
                 Arduino Pinleri ve Fonksiyonları
                    Arduino Pinleri ve Fonksiyonları
                