Robotik Kodlama

Robotik Kodlama
Ana Sayfa

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

1 Mayıs 2021 Cumartesi

Arduino Kullanarak Ses Kontrollü Ev Otomasyonu

 

Arduino Kullanarak Ses Kontrollü Ev Otomasyonu


Arduino kullanarak ses kontrollü Ev Otomasyonu: Bu projede, ev cihazlarını kontrol etmek için bir ses fonksiyonu kullanıyoruz. Bu proje, Ev Otomasyonu serimin bir parçasıdır.Bu projede S2 Terminal uygulamasını kullanıyoruz bunda AMR_Voice uygulamasını kullanıyoruz. Bu uygulama ücretsizdir ve kullanımı çok kolaydır. Bu projenin gerçek hayatta kullanımı çok kolaydır. Her yaştan insan sadece komutları söyleyerek onu kontrol edebilir. Bu Arduino tabanlı proje , IR ve PC tabanlı olanlardan daha geniş bir menzile sahiptir. Bu projeyi yapmadan önce, HC 05 Bluetooth modülünü Arduino ile kullanımını biliyor olmalısınız.

arduino kullanan ses kontrollü ev otomasyon sistemi


Ses Kontrollü Tabanlı Ev Otomasyonunun Blok Şeması

arduino kullanan ses kontrollü ev otomasyon sisteminin blok diyagram diyagramı

Arduino kullanan ses kontrollü ev otomasyon sistemi için gerekli bileşenler

  • Arduino Uno: Sadeliği nedeniyle Arduino kullanıyoruz ve aynı zamanda LCD, Bluetooth modülü ve röle modülü ile arayüze çok fazla dijital pin sağlıyor.
  • HC-05 Bluetooth Modülü: HC-05, cep telefonu ile iletişim kurmak için kullanılır.
  • 4 Kanal Röle Modülleri: Bu projede kullandığımız modül HL-54S'dir. Arduino'dan 5v mantıksal bir sinyal kullanarak açılır ve kapanır. 250VAC ve 10A'ya kadar dayanabilir. Bu modüllerin 4 kanalı vardır, böylece bir seferde 4 AC cihazı kontrol edebiliriz.
  • 16 × 2 LCD: LCD, proje adını, girilebilen komutların listesini görüntülemek için kullanılır, daha sonra herhangi bir komut vermek ve girilen komutun durumunu göstermek ister. 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ı 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 sadece kontrol edilecek cihazlarla değiştirin.
  • Fişli AC kablosu: Daha yüksek voltajlarla çalışırken kaliteli kablo kullanmanızı tavsiye ederim. Bağlantıları korumak için elektrik bandı kullanmak her zaman iyidir.
  • Harici 5 Volt besleme: Bir röleyi açıp kapatmak için 5 voltluk dc besleme gereklidir. Aksi takdirde işe yaramadı. Ayrıca, Arduino'dan 5v vermeyin.

Arduino kullanan ses kontrollü ev otomasyon sisteminin Devre Şemasıarduino kullanan ses kontrollü ev otomasyon sisteminin devre şeması

Bağlantılar:

Bluetooth Modülü HC-05

  • HC-05 Rx - Arduino Tx.
  • HC-05 Tx ila Arduino Rx.
  • Vcc'den 5v'ye
  • Yerden yere.

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.
  • 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öle terminaline bağlayın.
  • Rölenin tüm ortak terminallerine 220VAC'nin bir ucu ve başka bir ampul terminali ile diğer ucu.

Ses kontrollü ev otomasyon sisteminin çalışması

Önceden tanımlanmış komutları AMR_Voice uygulamasına seslendiriyoruz. Uygulama, komutu daha sonra Arduino tarafından alınan ve açıklanan görevi yerine getiren Bluetooth'a gönderir. Aynı zamanda Arduino, durumu LCD'de görüntüler ve seri monitöre yazar. Her komutun kodda tanımlanan benzersiz işlemleri vardır. Komutları kendi rahatınıza göre değiştirebilirsiniz. Komutların listesi aşağıdadır.

Komutlar: Cihazları açmak ve kapatmak için kullanıcı tarafından aşağıdaki komutlar söylenmelidir.

Cep telefonundan komut gönderMonitörde mesaj ekranı
beyazBeyaz AÇIK
beyaz kapatmaKapalı beyaz
mavi açıkMavi AÇIK
mavi kapatmaMavi KAPALI
yeşilYeşil AÇIK
yeşil kapanma

Yeşil KAPALI

Ses kontrollü ev otomasyon sistemi kodu

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
#define white 3
#define blue 4
#define green 5
int tx=1;
int rx=0;
char inSerial[15];


void setup(){
Serial.begin(9600);
pinMode(white, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(green, OUTPUT);
pinMode(tx, OUTPUT);
pinMode(rx, INPUT);
digitalWrite(white, HIGH);
digitalWrite(blue, HIGH);
digitalWrite(green, HIGH);
lcd.begin(16, 2);
lcd.clear();
lcd.print("MICROCONTROLLERS ");
lcd.setCursor(0,1); 
lcd.print(" LAB ");
delay(2000);
lcd.clear();
lcd.print("VOICE CONTROL");
lcd.setCursor(0,1);
lcd.print("HOME AUTOMATION ");
delay(2000);
lcd.clear();
lcd.print("1. Bulb 1 WHITE");
lcd.setCursor(0,1);
lcd.print("2. Bulb 2 BLUE");
delay(2000);
lcd.clear();
lcd.print("3. Bulb 3 GREEN");
delay(2000);
lcd.clear();
lcd.print("Bulb 1 2 3 ");
lcd.setCursor(0,1);
lcd.print(" OFF OFF OFF");

}

void loop(){
int i=0;
int m=0;
delay(500); 
if (Serial.available() > 0) { 
while (Serial.available() > 0) {
inSerial[i]=Serial.read(); 
i++; 
}
inSerial[i]='\0';
Check_Protocol(inSerial);
}} 



void Check_Protocol(char inStr[]){ 
int i=0;
int m=0;
Serial.println(inStr);


if(!strcmp(inStr,"*white on#")){ 
digitalWrite(white, LOW);
Serial.println("White ON");
lcd.setCursor(4,1); 
lcd.print("ON ");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

if(!strcmp(inStr,"*white off#")){ 
digitalWrite(white, HIGH);
Serial.println("White OFF");
lcd.setCursor(4,1); 
lcd.print("OFF ");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;} 

if(!strcmp(inStr,"*blue on#")){ 

digitalWrite(blue, LOW);
Serial.println("Blue ON");
lcd.setCursor(8,1); 
lcd.print("ON "); 
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

if(!strcmp(inStr,"*blue of#")){ 

digitalWrite(blue, HIGH);
Serial.println("Blue OFF");
lcd.setCursor(8,1); 
lcd.print("OFF "); 
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}
if(!strcmp(inStr,"*green on#")){ 

digitalWrite(green, LOW);
Serial.println("Green ON");
lcd.setCursor(12,1); 
lcd.print("ON ");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

if(!strcmp(inStr,"*green of#")){ 

digitalWrite(green, HIGH);
Serial.println("Green OFF");
lcd.setCursor(12,1); 
lcd.print("OFF ");
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

else{
for(m=0;m<11;m++){
inStr[m]=0;
}
i=0;

}}

Arduino ile kullanımı çok kolay ve bu proje çok az bir çaba ile yapılabilir. Bu projeyi yaparken herhangi bir sorunla karşılaşırsanız bana bildirin.


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 ve ses tanıma uygulamasını kullanan Ses Kontrollü Robot

 

Arduino ve ses tanıma uygulamasını kullanan Ses Kontrollü Robot


Bugün Arduino kullanarak robotik ile ilgili projelere başlayacağız. Zaten gibi robotik projeler gönderdiniz çizgi izleyen robot , engel kaçınma robot ve robotik kol ve almak ve yer robotik Arduino kullanarak kolu. Bugün Arduino ve android uygulamasını kullanarak robotun ses kontrolünden bahsedeceğiz.  Ses kontrollü robot, belirli bazı sesli komutlarla kontrol edilen mobil bir robottur. Mobil uygulama, "Durdur", "İleri", "Geri", "Sol", "Sağ" olmak üzere beş komutu tanımlayabilir. Bu gömülü sistemler projesindemobil uygulama üzerinden sesle kontrol edebileceğimiz 4-WD robotik araba yapıyoruz. Uygulama dinler ve talimatı Bluetooth kullanarak Arduino'ya gönderir ve ardından Arduino belirtilen işlemi gerçekleştirir. Ses tanıma uygulaması % 100 doğru değil. Uygulama çevredeki seslere duyarlıdır. Bazen robota verilen sesli komutları yanlış yorumluyor. Ancak çevreyi görmezden gelen ve yalnızca kendi sesinizi alabilen kendi uygulamanızı tasarlayabilirsiniz. 

arduino kullanan ses kontrollü robot

Arduino kullanan ses kontrollü robotun Blok Şemasıarduino blok diyagramını kullanan ses kontrollü robot

Ses kontrollü robot için gerekli bileşenler

Arduino Uno: Arduino Uno, motor sürücü kalkanını içine monte edebildiğimiz için kullanılmaktadır. Ayrıca her şeyi kasaya yerleştirmemiz gerektiğinden ucuz, kullanımı kolay ve daha az yer kaplıyor. 

Motor Sürücü Kalkanı : Motor Sürücü Kalkanı, çift ​​tam köprü sürücüsü olan L293 IC'ye dayanmaktadır Bu, röleler, solenoidler, DC ve kademeli motorlar gibi endüktif yükleri sürmek için kullanılır. Arduino'nuzla dört DC motor ve 2 servo sürmenizi sağlar. Her motorun hızını ve yönünü bağımsız olarak kontrol edebiliriz.HC-05 Bluetooth Modülü: Bu, Master veya Slave olarak yapılandırılabilen Seri Port Profiline sahip bir sınıf-2 Bluetooth modülüdür. Bunu, MCU, PC ile gömülü projeniz arasında bir bağlantı kurmak için seri port değişimi için kullanabiliriz.

HC-05 Özellikleri:

  • Bluetooth protokolü: Bluetooth Spesifikasyonu v2.0 + EDR
  • Frekans: 2.4GHz ISM bandı
  • Modülasyon: GFSK (Gaussian Frequency Shift Keying)
  • Emisyon gücü: ≤4dBm, Sınıf 2
  • Hassasiyet:% 0.1 BER'de ≤-84dBm
  • Hız: Asenkron: 2.1Mbps (Maks) / 160 kbps, Senkron: 1Mbps / 1Mbps
  • Güvenlik: Kimlik doğrulama ve şifreleme
  • Profiller: Bluetooth seri bağlantı noktası
  • Güç kaynağı: + 3.3VDC 50mA
  • Çalışma sıcaklığı: -20 ~ + 75Centigrade
  • Boyut: 26,9 mm x 13 mm x 2,2 mm

4-WD Araç Şasisi: Akrilikten oluşan 2 platform içerir. Hız enkoderli 4 dc motor içerir. Montajı kolaydır ve Arduino, Bluetooth modülü ve pil takımını yerleştirmek için çok fazla alan sağlar.

Batarya: Her motor 200mA'ya kadar akım kullandı. Üç adet 3.7v, 2200mA kullandım.Li-ion hücreler paralel. Pil paketi 12,1 volt sağlar. Li-ion pil, şarj edilebilir bir pil türüdür. Böylece bu hücreleri tekrar tekrar kullanabiliriz.

Arduino kullanan ses kontrollü robotun devre şemasıArduino kullanan ses kontrollü robotun devre şeması

Bağlantılar:bağlantıları

Öncelikle Arduino Uno üzerine Motor Sürücü kalkanı monte edin.

HC-05 veya HC-06 Bağlantıları:

  • Vcc'yi 5 volta bağlayın.
  • GND'yi Toprağa bağlayın.
  • Modül Rx - Arduino Tx.
  • Modül Tx - Arduino Rx.

Bluetooth modülü çalışmazsa 1K ve 2K dirençler kullanarak voltaj bölücü yapın ve 5v'yi 3.3v'ye dönüştürmek için modülün Rx pinine bağlayın.

Motordan Motora Sürücü Kalkanı:

  • Sol taraf motorları M3 ve M4 terminallerine.
  • Sağ taraf motorlar M1 ve M2 terminallerine.

Motor ters yönde dönüyorsa, tüm motorları aynı yönde döndürmek için kablo bağlantısını değiştirin.

Arduino kullanan ses kontrollü robotun kodu

#include<AFMotor.h>

AF_DCMotor motor1(1, MOTOR12_1KHZ); 
AF_DCMotor motor2(2, MOTOR12_1KHZ);
AF_DCMotor motor3(3, MOTOR12_1KHZ); 
AF_DCMotor motor4(4, MOTOR12_1KHZ);

int tx=1;
int rx=0;
char inSerial[15];
char command;

void setup() 
{ 
Serial.begin(9600); //Set the baud rate to your Bluetooth module.
}

void loop(){

int i=0;
int m=0;
delay(500); 
if (Serial.available() > 0) { 
while (Serial.available() > 0) {
inSerial[i]=Serial.read(); 
i++; 
}
inSerial[i]='\0';
Check_Protocol(inSerial);
} 
}

void Check_Protocol(char inStr[]){ 
int i=0;
int m=0;
Serial.println(inStr);


if(!strcmp(inStr,"*forward#")){ 
forward();
delay(1200);
Stop(); 
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;} 

if(!strcmp(inStr,"*back#")){ 
back();
delay(1200);
Stop(); 
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

if(!strcmp(inStr,"*left#")){ 
left();
delay(350);
Stop(); 
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}
if(!strcmp(inStr,"*right#")){ 
right();
delay(350);
Stop(); 
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

if(!strcmp(inStr,"*stop#")){ 
Stop(); 
for(m=0;m<11;m++){
inStr[m]=0;}
i=0;}

else{
for(m=0;m<11;m++){
inStr[m]=0;
}
i=0;

}}

void forward()
{
motor1.setSpeed(255); 
motor1.run(FORWARD); 
motor2.setSpeed(255); 
motor2.run(FORWARD); 
motor3.setSpeed(255); 
motor3.run(FORWARD); 
motor4.setSpeed(255); 
motor4.run(FORWARD);
}

void back()
{
motor1.setSpeed(255); 
motor1.run(BACKWARD); 
motor2.setSpeed(255); 
motor2.run(BACKWARD); 
motor3.setSpeed(255); 
motor3.run(BACKWARD); 
motor4.setSpeed(255); 
motor4.run(BACKWARD); 
}

void left()
{
motor1.setSpeed(255); 
motor1.run(FORWARD); 
motor2.setSpeed(255); 
motor2.run(FORWARD); 
motor3.setSpeed(0);
motor3.run(RELEASE); 
motor4.setSpeed(0);
motor4.run(RELEASE); 



}

void right()
{
motor1.setSpeed(0);
motor1.run(RELEASE); 
motor2.setSpeed(0);
motor2.run(RELEASE); 
motor3.setSpeed(255); 
motor3.run(FORWARD); 
motor4.setSpeed(255); 
motor4.run(FORWARD); 


}

void Stop()
{
motor1.setSpeed(0);
motor1.run(RELEASE); 
motor2.setSpeed(0);
motor2.run(RELEASE); 
motor3.setSpeed(0);
motor3.run(RELEASE);
motor4.setSpeed(0);
motor4.run(RELEASE); 
}

Arduino kullanarak ses kontrollü robotun çalışması

Tüm bağlantıları doğru bir şekilde yaparsanız , Play Store'dan AMR_Voice uygulamasını indirin Uygulamayı açın, robotu çalıştırın ve uygulamayı Bluetooth modülüne bağlayın. Belirtilen komutları söylediğimizde, uygulama talimatı Bluetooth üzerinden Arduino'ya gönderir ve ardından Arduino tanımlanan işlemi gerçekleştirir.

Not: Arduino'ya kod yüklerken Bluetooth modülünün Rx ve Tx pinlerini daima çıkarın, aksi takdirde bazı hatalar gösterir ve kod yüklenmez. Bluetooth modülünü cep telefonunuza ilk kez bağladığınızda “1234” veya “0000” şifresini deneyin. Tekerlekler ters yönde dönüyorsa, motor bağlantısını Motor Sürücü Kalkanı terminalinden değiştirir. Robotu sesle kontrol etmek etkili bir yol değildir. Kontrol etmesi eğlenceli ama Gesture kontrol uygulamasını tavsiye ederim.


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.

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.