Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

1 Mayıs 2021 Cumartesi

Bluetooth HC-05 ile ve Arduino ile 2 DC Motor kontrol

 

Bluetooth HC-05 ile ve Arduino ile 2 DC Motor kontrol

Burada DC motorun hızını ve yönünü kontrol etmek için Arduino ve Bluetooth modülünü kullandığımızla aynıdır  Bu projede DC motorun nasıl kontrol edileceğini, motorların yönünü, motorlar arasındaki haberleşmeyi ve Akıllı Telefon'u nasıl kontrol edeceğimizi öğrendiğimiz bu projede Arduino UNO'ya takılı Bluetooth modülü HC-05 kullanılarak yapıldı.













Gerekli Bileşenler:

  • Arduino Uno: Dijital pinleri sayesinde kullanımı kolay ve farklı cihazlarla arayüz oluşturmak kolaydır. Burada Bluetooth modülünü ve DC motoru aynı anda arayüzledik.
  • 2 DC Motor
  • L293D Motor Sürücüsü : Motoru doğrudan Arduino'ya bağlamak iyi değildir çünkü motor Arduino'nun sağladığı daha az akım gerektirir. Bu problemi çözmek için DC motor ile Arduino arasına bağlanan bir motor sürücüsü kullanılır.
  • Bluetooth Modülü HC-05

Devre şeması:bluetooth ve Arduino kullanarak dc motor hız ve yön kontrolü

Bağlantılar:

  • 5V ve IC'nin topraklaması 5V'a ve Arduino'nun toprağı.
  • Motor 1 pinleri IC pinleri 3 ve 6'yı bağlar.
  • Motor 2 pimleri, IC pimleri 11 ve 13'ü bağlar.
  • IC'nin Input1 ve input2 pinleri sırasıyla Arduino'nun 3 ve 4 pinlerini bağlar.
  • IC'nin input3 ve input4 pinleri sırasıyla Arduino'nun 8 ve 9 pinlerini bağlar
  • Enable1 ve Enable2, 2 ve 11 pinlerini bağlayın.
  • Bluetooth pin Vcc ve GND, Arduino'nun Vcc ve GND'sine doğrudan bağlanır ve sırasıyla Arduino'nun TX ve RX'ine bağlı RX ve TX pinleri.

Çalışma Şekli

Öncelikle Bluetooth modülünü Akıllı Telefonumuza bağlarız. Daha sonra kodlama talimatına göre mesajı gönderdik. st sonra 1 mesaj motoru ileriye gidiyor edilir mesaj göndermek; Motorun dönmesini istiyorsak motoru durdurmak istiyorsak 3 motora dur mesajı gönderelim. Motoru sola veya ters çevirmek istersek 2 ve 5 numaralı mesajlar gönderilirse sırasıyla motor sola ve tersine çevrilir.

Kod

int motor1Pin1 = 3; // pin 2 on IC

int motor1Pin2 = 4; // pin 7 on IC

int enable1Pin = 2; // pin 1 on IC

int motor2Pin1 = 8; // pin 10 on IC

int motor2Pin2 = 9; // pin 15 on IC

int enable2Pin = 11; // pin 9 on IC

int state;

int flag=0;       

int stateStop=0; 

void setup() {

    // sets the pins as outputs:

    pinMode(motor1Pin1, OUTPUT);

    pinMode(motor1Pin2, OUTPUT);

    pinMode(enable1Pin, OUTPUT);

    pinMode(motor2Pin1, OUTPUT);

    pinMode(motor2Pin2, OUTPUT);

    pinMode(enable2Pin, OUTPUT);

    // sets enable1Pin and enable2Pin high so that motor can turn on:

    digitalWrite(enable1Pin, HIGH);

    digitalWrite(enable2Pin, HIGH);

    // initialize serial communication at 9600 bits per second:

    Serial.begin(9600);

}

void loop() {

    //Start Serial Communication

    if(Serial.available() > 0){    

      state = Serial.read();  

      flag=0;

    }  

    // if the state is '1' the DC motor will go forward

    if (state == '1') {

        digitalWrite(motor1Pin1, HIGH);

        digitalWrite(motor1Pin2, HIGH);

        digitalWrite(motor2Pin1, LOW);

        digitalWrite(motor2Pin2, HIGH);

        if(flag == 0){

          Serial.println("Go Forward!");

          flag=1;

        }

         delay(3000);

        state=3;

        stateStop=1;

    }

    // if the state is '2' the motor will turn left

    else if (state == '2') {

        digitalWrite(motor1Pin1, HIGH);

        digitalWrite(motor1Pin2, LOW);

        digitalWrite(motor2Pin1, LOW);

        digitalWrite(motor2Pin2, LOW);

        if(flag == 0){

          Serial.println("Turn LEFT");

          flag=1;

        }

        delay(3000);

        state=3;

        stateStop=1;

    }

    // if the state is '3' the motor will Stop

    else if (state == '3' || stateStop == 1) {

        digitalWrite(motor1Pin1, LOW);

        digitalWrite(motor1Pin2, LOW);

        digitalWrite(motor2Pin1, LOW);

        digitalWrite(motor2Pin2, LOW);

        if(flag == 0){

          Serial.println("STOP!");

          flag=1;

        }

        stateStop=0;

    }

    // if the state is '4' the motor will turn right

    else if (state == '4') {

        digitalWrite(motor1Pin1, LOW);

        digitalWrite(motor1Pin2, LOW);

        digitalWrite(motor2Pin1, LOW);

        digitalWrite(motor2Pin2, HIGH);

        if(flag == 0){

          Serial.println("Turn RIGHT");

          flag=1;

        }

        delay(3000);

        state=3;

        stateStop=1;

    }

    // if the state is '5' the motor will Reverse

    else if (state == '5') {

        digitalWrite(motor1Pin1, LOW);

        digitalWrite(motor1Pin2, HIGH);

        digitalWrite(motor2Pin1, HIGH);

        digitalWrite(motor2Pin2, LOW);

        if(flag == 0){

          Serial.println("Reverse!");

          flag=1;

        }

         delay(3000);

        state=3;

        stateStop=1;

    }}

}

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

Arduino kullanarak Basit Tek Yönlü Trafik Işığı

 

Arduino kullanarak Basit Tek Yönlü Trafik Işığı


Basit Tek Yönlü Trafik Işığı: In bu öğretici basit tek yönlü trafik sinyal Arduino Uno R3 kullanılarak tasarlanmıştır. Arduino öğreticilerinin  tam listesini kontrol edin  Trafik Işıkları, araç trafiğini kontrol etmek için kullanılır. Bu nedenle trafik sıkışıklığını ve kazaları önlemek için trafik ışıkları kullanılır. Trafik sinyalinde sürücüler için farklı mesajlara sahip üç ışık vardır. Kırmızı ışık sürücüye durma talimatı verir, yeşil ışık sürücüye kavşaktan GO talimatını verirken, sarı ışık sürücüyü uyarır.

Gerekli Bileşenler

  • Arduino UNO Kurulu
  • Kırmızı, Yeşil, Sarı (kehribar) LED'ler
  • Dirençler
  • Breadboard

DevreArduino kullanarak basit tek yönlü trafik sinyali

Kırmızı, Sarı ve Yeşil LED'lerin anotunu sırasıyla dijital pimler 4, 7 ve 8 ile bağlayın. Ve LED'lerin katotunu doğrudan toprağa bağlayın  .

Kod

  • Geçersiz setup () fonksiyonunda OUTPUT için kırmızı, yeşil ve sarı LED'lerin 4,8 ve 7 dijital pinlerini beyan ederim.
  • DigitalWrite () fonksiyonu 1 geçersiz döngü () fonksiyonu kullanımda st Kırmızı led talimat durdurmak için sürücü talimat Yüksek'tir
  • Ardından 10 saniyelik gecikmeden sonra Sarı led Yüksek yanarak sürücüye hazır duruma gelmesini söyler ve Kırmızı led düşüktür.
  • Ardından 1 saniyelik gecikmeden sonra hem Kırmızı hem de Sarı ledler Düşük ve Yeşil Led Yüksek olup sürücüye talimata gitmesi talimatını verir.
  • Sarı Işıklar, sürücüyü uyaran sürücü için iki Olasılığa sahiptir.
  • Bir sonraki ışık kırmızı ise bekleyin
  • Ve yeşil ışık yanarsa, gitmeye / motoru AÇIK konuma getirmeye hazırlanın.

basit tek yönlü trafik sinyali kodu

int ledred=4;

int ledgreen=8;

int ledyellow=7;

void setup() {

  pinMode(ledred,OUTPUT);

  pinMode(ledgreen,OUTPUT);

  pinMode(ledyellow,OUTPUT);

  // put your setup code here, to run once:

}



void loop() {

  digitalWrite(ledred,HIGH);

  delay(10000);

  digitalWrite(ledyellow,HIGH);

  digitalWrite(ledred,LOW);

  delay(1000);

  digitalWrite(ledgreen,HIGH);

  digitalWrite(ledred,LOW);

  digitalWrite(ledyellow,LOW);

  delay(10000);

  digitalWrite(ledyellow,HIGH);  

  digitalWrite(ledgreen,LOW);  

  delay(2000);     

  digitalWrite(ledyellow,LOW); }  // put your main code here, to run repeatedly:

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.


ESP8266 ve Arduino ile bulut üzerinden wifi tabanlı ev otomasyon sistemi

 

ESP8266 ve Arduino ile bulut üzerinden wifi tabanlı ev otomasyon sistemi


Şimdi S Remote Android Uygulamasını kullanarak cihazları kontrol etmek için ESP8266 wifi modülünü kullanıyorum. S uzak uygulaması Google Play mağazasından ücretsiz olarak indirilebilir. Bu wifi tabanlı ev otomasyonu projesinde esp8266 wifi modülü kullanılarak bulut üzerinden, Ev cihazlarını kontrol etmek için kablosuz iletişim olarak wifi kullanacağım. Bu wifi tabanlı ev otomasyon sisteminde Arduino Uno R3 kullanıyoruz Wifi üzerinden pic mikrodenetleyici tabanlı ev otomasyonu kullanan benzer bir proje yayınladık ayrıca kontrol etmek de isteyebilirsiniz. 

arduino kullanarak bulut üzerinden iot tabanlı ev otomasyonu

Wifi üzerinden wifi tabanlı ev otomasyonu için Blok Şemasıarduino blok diyagramı kullanarak bulut üzerinden iot tabanlı ev otomasyonu

Gerekli Bileşenler:

  • ESP8266 Wifi Modülü: ESP8266, Transfer Kontrol Protokolü (TCP) ve İnternet Protokolü (IP) sağlayan bir wifi çipidir. Piyasada farklı ESP8266 modülleri mevcuttur. Bu projede ilk modeli kullanıyoruz. 6 pimli olup, 3.3v ile çalışır. ESP8266, aşağıdaki komutlarla başlatıldı:
  • AT
  • AT + CWMODE = 3
  • AT + CIFSR
  • AT + CIPMUX = 1
  • ESP8266 daha sonra aşağıdaki komutlarla mobil etkin noktaya bağlandı:
  • AT + CWLAP (mevcut Wi-Fi ağlarının listesini döndürür)
  • AT + CWJAP = "SSID", "şifre" Örnek: AT + CWJAP = "PTCL-BB", "12345467"
  • Arduino Uno: Arduino, ATmega 328P etrafında inşa edilen geliştirme kartlarıdır. Arduino, arayüz röle modülü, 16 × 2 LCD ve ESP8266 wifi modülüne çok sayıda pin sağladığı için bu proje için mükemmeldir.
  • 4 Kanal Röle Modülü : Röle, Arduino dijital pininden gelen sinyal gibi düşük dc voltajları kullanarak yüksek voltajlı cihazları açıp kapatmak için kullanılır. Bu projemizde 4 kanal röle modülü kullandık, her bir röleyi ayrı ayrı bağlamak yerine Arduino ile arayüz oluşturmak kolaydır. 250VAC ve 10 ampere kadar akım taşıyabilir.
  • 16X2 LCD: 16 × 2 LCD 16 karakteri iki satırda görüntülemek için kullanılır. Mevcut kütüphanesi sayesinde Arduino ile arayüz oluşturmak kolaydır. Bu projede bu LCD, cihazların durumunu açık veya kapalı olarak görüntülemek için kullanılır.

Bulut üzerinden wifi tabanlı ev otomasyon sisteminin Devre Şeması

Bağlantı şeması

16 × 2 LCD:

  • SS toprağa.
  • DD , besleme gerilimi için.
  • O , 10k potansiyometrenin pimini ayarlamak için.
  • RS'den Pin A0'a.
  • RW toprağa.
  • A1'i Sabitlemeyi etkinleştirin.
  • LCD D4'ten Pin A2'ye.
  • LCD D5'den Pin A3'e.
  • LCD D6'dan Pin A4'e.
  • LCD D7'den Pin A5'e.
  • Potansiyometrenin bir ucunu topraklayın.
  • Potansiyometrenin diğer ucuna 5v.

4 Kanal Röle modülleri:

  • Harici 5 volt'tan JD V CC'ye .
  • Yerden yere.
  • Ini1'den Pin 3'e.
  • Ini2'den Pin 4'e.
  • Ini3'ten Pin5'e.
  • Vcc'den Arduino 5v'ye.
  • Tüm ampullerin bir terminalini normalde açık olan rölelerin terminaline bağlayın.

220VAC'nin bir ucu, rölenin tüm ortak terminallerine ve diğer ucu ampullerin diğer terminallerine.

Arduino'ya ESP8266 wifi modülü:

  • Modül Vcc - 3.3v.
  • Modül CH_PD - 3.3v.
  • Arduino toprağına Modül Ground.
  • Modül Tx - Arduino Rx.
  • Modül Rx - Arduino Tx.

Çalışma: S Remote uygulamasını Google Play Store'dan indirin. Uygulamayı açın, Ayarlar >> Gelişmiş >> Düzen'e gidin ve isteğinize göre Düğmeyi seçin. Ardından IP'yi seçin ve "AT + CIFSR" komutunu kullanarak ESP8266 wifi modülünü başlattığımızda aldığımız IP adresini girin. IP adresi “192.168.10.4” gibi üçüncü satıra yazılır. Daha sonra port seçeneğine “80” olan portu yazınız. Ayar >> Tuşlar'a gidin ve ardından key1'i seçin ve düğme üzerinde görüntülenecek etiketi ve ardından Arduino'ya göndermek istediğiniz verileri yazın. TCP düğmesine tıklayın. Benzer şekilde etiketi ve verileri diğer anahtarlara yazın. Her şeyi doğru bir şekilde bağlarsanız, ardından devreyi açın ve seri monitörü açın, wifi modülünü başlatmak birkaç saniye sürer. Uygulama üzerindeki düğmeye basın,arduino android uygulamasını kullanarak bulut üzerinden iot tabanlı ev otomasyonu

Arduino kullanan IOT tabanlı ev otomasyon sistemi kodu

Bu proje için kod bedelsiz değildir. aşağıda verilen ziyaret linkinden kod satın alabilirsiniz.

#include<LiquidCrystal.h>
#include <SoftwareSerial.h>
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
#define Fan 3
#define Light 4
#define TV 5
int temp=0,i=0;
int led=13;
char str[15];
void setup()
{
lcd.begin(16,2);
Serial.begin(9600);

Serial.print("AT\r\n");
delay(200);
Serial.print("AT+CWMODE=3\r\n");
delay(200);
Serial.print("AT+CIFSR\r\n");
delay(200);
Serial.print("AT+CIPMUX=1\r\n");
delay(200);
Serial.print("AT+CIPSERVER=1,80\r\n");
delay(200);
pinMode(led, OUTPUT);
pinMode(Fan, OUTPUT);
pinMode(Light, OUTPUT);
pinMode(TV, OUTPUT);
digitalWrite(Fan,HIGH);
digitalWrite(Light,HIGH);
digitalWrite(TV,HIGH);
lcd.setCursor(0,0);
lcd.print("WI-FI Control ");
lcd.setCursor(0,1);
lcd.print("Home AutomatIon");
delay(2000);
lcd.clear();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Fan Light TV ");
lcd.setCursor(0,1);
lcd.print("OFF OFF OFF "); 
}
void loop()
{
lcd.setCursor(0,0);
lcd.print("Fan Light TV");
if(temp==1)
{
check();
temp=0;
i=0;
delay(1000);
}
}
void serialEvent() 
{
while(Serial.available()) 
{
if(Serial.find("#A."))
{
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
while (Serial.available()) 
{
char inChar=Serial.read();
str[i++]=inChar;
if(inChar=='*')
{
temp=1;
return;
} 
} 
}
}
}
void check()
{
if(!(strncmp(str,"tv on",5)))
{
digitalWrite(TV, LOW);
lcd.setCursor(13,1); 
lcd.print("ON ");
delay(200);
} 

else if(!(strncmp(str,"tv off",5)))
{
digitalWrite(TV, HIGH);
lcd.setCursor(13,1); 
lcd.print("OFF ");
delay(200);
}

else if(!(strncmp(str,"fan on",6)))
{
digitalWrite(Fan, LOW);
lcd.setCursor(0,1); 
lcd.print("ON ");
delay(200);
}

else if(!(strncmp(str,"fan off",7)))
{
digitalWrite(Fan, HIGH);
lcd.setCursor(0,1); 
lcd.print("OFF ");
delay(200);
}

else if(!(strncmp(str,"light on",8)))
{
digitalWrite(Light, LOW);
lcd.setCursor(7,1); 
lcd.print("ON ");
delay(200);
}

else if(!(strncmp(str,"light off",9)))
{
digitalWrite(Light, HIGH);
lcd.setCursor(7,1); 
lcd.print("OFF ");
delay(200);
} 
}

Bahadır ÖZGEN

Electronic Robotic Coding Research and Development 1975 - ∞

Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com

Arduino Kullanarak IR Uzaktan Kumandalı Ev Otomasyon Sistemi

 

Arduino kullanarak IR uzaktan kumandalı ev otomasyon sistemi


PC ile Arduino arasında seri iletişimi kullanırArtık cihazları uzaktan kontrol edebiliyorum. Artık cihazları TV uzaktan kumandası veya IR uzaktan kumanda yardımıyla kontrol edebiliyorum. Bu yüzden ona IR uzaktan kumandalı ev otomasyonu adını verdim. 

Arduino kullanarak IR uzaktan kumandalı ev otomasyon sistemi

IR uzaktan kumandalı ev otomasyon sisteminin Blok Şeması

Bu IR uzaktan kumandalı ev otomasyon sisteminde; Arduino Uno, devre beyni olarak kullanılır. Her şeyden önce IR alıcı, uzaktan kumandadan sinyal alır. Bu sinyaller Arduino tarafından okunur ve kodda tanımlanan değerlerle karşılaştırılır. Değerler aynıysa röleyi açıp kapamak veya LCD'de mesaj görüntülemek gibi karşılık gelen işlemi gerçekleştirir .Arduino kullanarak IR uzaktan kumandalı ev otomasyon sisteminin blok diyagramı

IR uzaktan kumandalı ev otomasyon sistemi için gerekli bileşenler

  • Arduino Uno: Kullanımı kolay olduğu için Arduino kullanıyoruz ve aynı zamanda LCD, IR ve röle modülü ile arayüze çok fazla dijital pin sağlıyor. Herhangi bir projenin prototipini oluştururken çok kolay.
  • 4 Kanal Röle Modülleri : Bu projede kullandığımız modül HL-54S'dir. Arduino'dan gelen 5v mantıksal sinyali kullanarak açılır ve kapanır. 250VAC ve 10A'ya kadar işleyebilir. Bu modüllerin 4 rölesi vardır, böylece 4 AC cihazını veya cihazını kontrol edebiliriz.
  • IR uzaktan kumanda ve alıcı: IR uzaktan kumanda, IR alıcı tarafından alınan kızılötesi sinyali gönderir. Uzaktan kumandadaki her düğmenin kendine özgü bir değeri vardır. Bu projede VS1838 kullanıyorum.
  • 16 × 2 LCD : LCD, proje adını, girilebilecek komutların listesini görüntülemek için kullanılır, daha sonra herhangi bir komut vermek ve girilen komutun durumunu göstermek için kullanılır. 16 × 2 LCD kullanıyoruz çünkü Arduino ile arayüz kolay ve fiyatı çok ucuz. Ekranın kontrastını kontrol etmek için 10k potansiyometre kullanılır
  • Tutuculu AC ampuller: AC ampuller, cihazları ve cihazları temsil etmek için kullanılır. Çünkü herhangi bir AC projesinin prototipini oluştururken kullanımı kolaydır ve çok kullanışlıdır. Nihai üründe, kontrol etmek için sadece AC soketiyle değiştirin.
  • Fişli AC kablosu: Daha yüksek voltajlarla çalışırken kaliteli kablo kullanmanızı tavsiye ederim. Bağlantıları kapatmak için elektrik bandı kullanmak her zaman iyidir.
  • Harici 5 volt besleme: Röleyi açmak ve kapatmak için 5 voltluk dc besleme gereklidir. Aksi takdirde işe yaramadı. Ayrıca Arduino'dan 5v vermeyin.

Devre IR uzaktan kumandalı ev otomasyon sistemiIR uzaktan kumandalı ev otomasyon sistemi devre şeması

Bağlantılar IR uzaktan kumandalı ev otomasyon sistemi

IR alıcısı:

Pin 1'den dijital pin 2'ye.

2'yi toprağa sabitleyin.

3'ü Vcc'ye sabitleyin.

16 × 2 LCD:

  • SS toprağa.
  • DD , besleme gerilimi için.
  • O , 10k potansiyometrenin pimini ayarlamak için.
  • RS'den Pin 8'e.
  • RW toprağa.
  • Pin 9'u etkinleştirin.
  • LCD D4 ile Pin 10 arası.
  • LCD D5 - Pin 11.
  • LCD D6'dan Pin 12'ye.
  • LCD D7'den Pin 13'e.
  • Potansiyometre ve katotun bir ucunu topraklayın
  • Potansiyometre ve anotun diğer ucuna 5v

 4 Kanal Röle modülleri:

  • Harici 5 volt'tan JD V CC'ye .
  • Yerden yere.
  • Ini1'den Pin 3'e.
  • Ini2'den Pin 4'e.
  • Ini3'ten Pin5'e.
  • Vcc'den Arduino 5v'ye.
  • Tüm ampullerin bir ucunu normalde açık olan rölelerin terminaline bağlayın.
  • 220VAC'nin bir ucu, rölenin tüm ortak terminallerine ve diğer ucu ampullerin diğer terminallerine.

IR uzaktan kumandalı ev otomasyon sisteminin çalışması

IR uzaktan kumandadaki her düğmenin kendine özgü bir değeri vardır. Böylece her düğmeyi ayrı ayrı kullanabiliriz. 3 düğme etiketini “1. 2. 3. ” Her düğmenin kodda kendi performansı vardır. Düğmeye uzaktan kumandadan bastığımda, kızılötesi sinyal gönderiyor ve bu daha sonra IR alıcısı tarafından alınıyor. Arduino sinyali okur ve cihazları açma ve kapama ve LCD'de durumu görüntüleme gibi ilgili işlemleri gerçekleştirir. Uzaktan Arduino'dan "1" butonuna bastığımda değeri okur ve kodda tanımlanan değer ile karşılaştırır: "16724175", eğer birinci röle üzerindeki Arduino anahtarına eşit ise ve ampul yanar ve tekrar basarsa ampul ışığı söner. Diğer iki düğme benzer şekilde çalışır.

IR tabanlı ev otomasyon sistemi kodu

#include <LiquidCrystal.h>
#include<string.h>
#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
#define bulb1 3
#define bulb2 4
#define bulb3 5

int RECV_PIN = 2;


int itsON[] = {1,1,1,1};

#define code1 16724175 
#define code2 16718055 
#define code3 16743045 

IRrecv irrecv(RECV_PIN); 
decode_results results;
char temp;
char str[10];
char i=0;
void setup() 
{
irrecv.enableIRIn();
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(bulb1, OUTPUT);
pinMode(bulb2, OUTPUT);
pinMode(bulb3, OUTPUT);
digitalWrite(bulb1, HIGH);
digitalWrite(bulb2, HIGH);
digitalWrite(bulb3, HIGH);
lcd.print("MICROCONTROLLERS ");
lcd.setCursor(0,1); 
lcd.print(" LAB ");
delay(2000);
lcd.clear();
lcd.print("HOME AUTOMATION ");
lcd.setCursor(0,1);
lcd.print(" USING IR ");
delay(2000);
lcd.clear();
lcd.print("1. Bulb 1");
lcd.setCursor(0,1);
lcd.print("2. Bulb 2");
delay(2000);
lcd.clear();
lcd.print("3. Bulb 3");
delay(2000);
lcd.clear();
lcd.print("Bulb 1 2 3 ");
lcd.setCursor(0,1);
lcd.print(" OFF OFF OFF");
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Bulb 1 2 3 ");
if (irrecv.decode(&results)) {
unsigned int value = results.value;
switch(value) {
case code1:
if(itsON[1] == 1) { 
digitalWrite(bulb1, LOW); 
itsON[1] = 0;
lcd.setCursor(4,1); 
lcd.print("ON ");
}
else { 
digitalWrite(bulb1, HIGH);
itsON[1] = 1;
lcd.setCursor(4,1); 
lcd.print("OFF"); 
}
break; 
case code2:
if(itsON[2] == 1) {
digitalWrite(bulb2, LOW);
itsON[2] = 0;
lcd.setCursor(8,1); 
lcd.print("ON "); 
} else {
digitalWrite(bulb2, HIGH);
itsON[2] = 1;
lcd.setCursor(8,1); 
lcd.print("OFF"); 
}
break;
case code3:
if(itsON[3] == 1) {
digitalWrite(bulb3, LOW);
itsON[3] = 0;
lcd.setCursor(12,1); 
lcd.print("ON ");
} else {
digitalWrite(bulb3, HIGH);
itsON[3] = 1;
lcd.setCursor(12,1); 
lcd.print("OFF "); 
}
break; 
}
Serial.println(value); // you can comment this line
irrecv.resume(); // Receive the next value
}
}

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.