Robotik Kodlama

Robotik Kodlama
Ana Sayfa

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

IR etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
IR etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

2 Mayıs 2021 Pazar

Kızılötesi sensör FC-51 modülü Engel algılama ve Arduino

 

Kızılötesi sensör FC-51 modülü Engel algılama ve Arduino


Kızılötesi sensörün uygulamaları nelerdir? Kızılötesi sensör Arduino Uno R3 ile nasıl arayüzlenir? Elektronik bileşenler kullanılarak kızılötesi sensör nasıl yapılır? Çok ünlü Arduino Uno R3 ile arayüz oluşturan kızılötesi sensörün devre şemaları. Arduino Uno ile Arduino Uno R3 arabirimi için programlama. 



Kızılötesi sensör nedir

Kızılötesi sensör, ısı ve nesneleri algılamak için kullanılan elektronik bir cihazdır. Çevresindeki kızılötesi radyasyonların ve ısı değişiminin tespiti ile çalışır. İki tür kızılötesi sensör vardır, bunların kısa bir açıklaması aşağıda verilmiştir:

  • Termal kızılötesi sensör, çevresindeki ısı değişikliğiyle çalışır veya kızılötesi radyasyonları ısı olarak kullanır.
  • fotoğraf kızılötesi sensör, kızılötesi radyasyonları algılamak için foto diyot kullanır. Bu yazıda foto kızılötesi sensör kullanacağım ve size foto kızılötesi sensör devre şeması yapmanın kolay bir yolunu sunacağım.


Kızılötesi sensörün uygulamaları

Kızılötesi sensörlerin artık evsel kullanımdan endüstriyel kullanıma kadar birçok uygulaması var. Aşağıda kızılötesi sensörün birkaç uygulamasından bahsetmiştim. Maksimumları öğrenci seviyesindeki projeler içindir.

  • Nesne algılama
  • Hareket algılama
  • Engellerden kaçınma robotu
  • Gaz kaçağı tespiti
  • duman algılama
  • mesafe ölçümü
  • robotik
  • nesne sayacı ve diğerleri

Kızılötesi sensörün devre şeması

Kızılötesi sensörün devre şeması aşağıda verilmiştir. Bu devrede kızılötesi alıcı Led ve foto diyot bu sensörün ana parçalarıdır. Fotoğraf diyotu, herhangi bir nesneye çarptığında bir açıyla geri dönen kızılötesi radyasyonlar yayar. Bu kızılötesi radyasyonlar, herhangi bir nesneye çarptıktan sonra geri döner. Kızılötesi alıcı, yansıyan radyasyonları algılar. Foto diyot kullandığımız için bu tip sensöre foto kızılötesi sensör deniyor.




kızılötesi devre şeması


Lm358, kızılötesi alıcı kızılötesi radyasyonları algıladığında, lm358'in çıkışı yüksek olduğunda ve çıkış açıldığında led bağlı olduğunda karşılaştırıcı olarak kullanılır. Bu çıkış pini, Arduino Uno R3 ile arayüz oluşturmak için kullanılır.


Aşağıdaki devre şeması, bu sensörün Arduino Uno R3 ile arayüzünü göstermektedir. Kızılötesi sensörlerin çıkışı Arduino Uno R3'ün 1 numaralı pinine bağlıdır. Bu sensörü Arduino ile kullanmak ve kodunu yazmak için Arduino ile switch'i nasıl kullanacağınızı bilmeniz gerekir. Çünkü bu sensör çıkışı bir anahtar görevi görüyor. IR alıcısı kızılötesi radyasyonları algıladığında, çıktı yüksek olacaktır, aksi takdirde çıktı düşük olacaktır. 




arduino uno r3 ile kızılötesi sensör arabirimi

Arduino ile arayüz oluşturan kızılötesi sensör modülünün kodu

const int IR_INPUT = 2; // Dijital çıkış, IR SENSOR için pin okur
geçersiz kurulum () 
{
pinMode (13, ÇIKIŞ); // Çıkışı göstermek için ON Board LED'i
pinMode (IR_Sensor, INPUT);
}
geçersiz döngü () 
{
if (digitalRead (IR_Sensor) == HIGH) // engel yoksa LED kapalı
{
digitalWrite (13, DÜŞÜK); // Engel olmadığında LED söner
}
Başka
{
digitalWrite (13, YÜKSEK); // Bir engel olduğunda LED yanar
}
}

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.

1 Mayıs 2021 Cumartesi

Kızılötesi Algılama ve Arduino

Kızılötesi Algılama ve Arduino

Anlayabileceğiniz gibi, bir IR sisteminin temel gereksinimleri, bir sinyali iletmek ve sinyali almak için verici ve alıcı modüllerdir. Gördüğümüz IR sensörleri genellikle EM spektrumunun (nanometre, nm cinsinden verilir) aynı bant genişliğinde çalışan (gönderen ve alan) bir çift olarak gelir. Bunları ardışık olarak satmak harikadır, ancak parçaları kesip değiştiriyorsanız, bant genişliği iki bileşene uyması için kullanılan özelliktir.

Kızılötesini nasıl kullanacağız ?

Bu tür bir teknolojinin bariz kullanımı uzaktan kumandadır, ancak kızılötesi bir ton harika uygulamanın bir parçasıdır. Engellerden kaçınmak ve bir duvara yakın olduğunda bilmek için robotunuza 'gözler' vermek mi istiyorsunuz? Kızılötesi, uygun bir seçenektir. Hareket algılandığında bir eylemi tetikleyebilecek bir hareket sensörü oluşturmak istiyorsanız, kesinlikle IR'yi kullanabilirsiniz. Gece görüş kameraları ve termal görüntüleme bile kızılötesi teknolojiyi kullanır. Kızılötesi teknolojisi için çok sayıda uygulama vardır ve onu kullanan üretici dostu ürünler de yaygın ve iyi belgelenmiştir!

Basit bir kırılma ışını devresi yapacağız. Adafruit'teki arkadaşlarımız , bu kullanım için yapılmış harika bir modül çifti yaptılar. Aksiyon filmlerindeki hırsızlık sahnelerini düşünün, kahraman yeşil lazer alarmları labirentinde dikkatlice hareket ediyor. Yeşil lazer kısmı olmadan bunlardan birini yapacağız. Bir dakika bekle; sen bir yapıcısın! Birine çok meraklıysanız, eklemekten çekinmeyin!

kızılötesi kırılma ışını kırma eskiz

Örnek bir yük devresi olarak temel bir piezo hoparlör devresi kullanacağız. Bu devre, kullandığımız kızılötesi ışının durumuna tepki verecektir. Kırılma kirişleri, anahtarlar hakkındaki makalemizin de harika bir uzantısıdır, ancak kabloları ve fiziksel anahtarı kaldırıyoruz. Esasen kurulumun hoparlör kısmını istediğiniz herhangi bir şeyle değiştirebilirsiniz, ancak alarm sistemi ile uyumlu bir zil sesi görünür. Daha sonraki eğitimlerde, Arduino'nuzla bir IR uzaktan kumanda yapacağız! 

Bugün bizimle birlikte takip etmek için şunlara ihtiyacınız olacak:

  • Arduino Uno
  • Piezo Hoparlör
  • Bağlantı telleri
  • Adafruit 3mm IR Break Beam modülü

Donanım Kesintileri ve Pullup Dirençleri

Devremizin taslağını yazarken bakacağımız birkaç ekstra şey var. Programımızın ışın frenlemesine tepki vermesi ve bu olduğunda bir ses çalması gerekecek.

Bu olayı kontrol etmek için donanım kesintilerini kullanacağız. Donanım kesintileri için mükemmel bir uygulama olmayabilir, ancak konsepti tanıtmak için harika bir yer! Kesintileri kullanırken veya hatta sadece donanım kullanırken, kontrol pimini bilinen bir duruma getirmek iyi bir uygulamadır. Bu şekilde, onunla arayüz oluşturduğumuzda nasıl tepki vereceğini doğru bir şekilde tahmin edebiliriz.

Pim bilinen bir durumda değilse, ona kayan diyoruz. Kayma, esas olarak, pimin mantığının açık veya kapalı olmadığı ve muhtemelen iki değer arasında salınım yaptığı anlamına gelir. Bu nedenle, pimi bilinen bir duruma getirmek için, pimi yüksek mantığa bağlamak için bir çekme direnci kullanabiliriz. ATMega328 için dahili olarak çekme dirençleri mevcuttur; biz de Uno'yu kullanıyoruz ve bunlara işlev kullanılarak erişilebilir

pinMode ([PinNumber], INPUT_PULLUP);

Kesinti pimleri yaptıkları işte harikadır. Sadece boşta durmak, bir pin mantığının yüksekten alçağa veya tam tersi şekilde gitmesini beklemek için yapılmıştır. Bu olduğunda, o olaya hizmet etmek için kodunuza rutinler / işlevler girebilirler.

İyi çalışıyor, devrenin arkasındaki koda bakalım.

Kod

# tanım PIEZOPIN 3 # tanım BEAMPIN 2

Uçucu int sensorState = 0 , lastState = 0 ; // Değişkenler uçucu olmalıdır veya bunları

void kurulumu () {
pinMode ( PIEZOPIN , ÇIKIŞ ); Çıkış için // initialism Piezo pinMode ([ BEAMPIN ] INPUT_PULLUP );
attachInterrupt ( digitalPinToInterrupt ( 2 ), buzz_ISR , ALÇALMA ); Seri . başlangıç ( 9600 ); }


geçersiz döngü () {
sensorState = digitalRead ( BEAMPIN ); // ışının mevcut durumunu oku if ( sensorState == HIGH ) { // Işın kırık değilse bana her şeyin yolunda olduğunu söyle.
analogWrite ( PIEZOPIN , 0 ); Seri . println ( "Herşey Tamam" ); } else { Serial . println ( "Her Şey Tamam Değil" );
} }

void buzz_ISR () {
analogWrite ( PIEZOPIN , 20 ); // Buzzer'ı Tetikle! }

Pekala, devrenizi ve taslağınızı bir araya getirin ve çalıştırın. Siz ışınlarını kırana kadar sisteminiz kesinlikle hiçbir şey yapmamalıdır; bunu yaptığınızda piezonun tetiklendiğini duymalı ve bir uğultu sesi çıkarmalısınız! 

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 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.