Arduino Renk Tanıma Projesi# Sesli Bildiri

Arduino Renk Tanıma Projesi# Sesli Bildiri

Arduino ile renk tanıma projelerime sesli bildiri ekleyerek bir çeşidini yapmaya çalıştım. Sd karta yüklediğim sesleri renklere göre hoparlöre aktarıyorum.




 

 

 

#include <SD.h> // sd kart kütüphanesi
#define Sd_Chip_pin 4
#include <TMRpcm.h> // melodi çalma kütüphanesi
#include <SPI.h>
TMRpcm tmrpcm; // melodi fonksiyonu oluşturma

#define S2 7
#define S3 6
#define sensorOut 5
//
int yogunluk = 0; // sıklık
int ortalama = 15; // ortalama
int kirmizi, yesil, mavi;


void setup() {

  Serial.begin(9600); //iletişim ayarı

  
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);
  // Frekans ölçeklendirme değerini% 20 olarak ayarlama



tmrpcm.speakerPin = 9; // hoparlör + bacağı digital 9. pine tak
if (!SD.begin(Sd_Chip_pin)) { // sd module bağlanma
return;
}


  tmrpcm.play("Proje.wav");
  
  delay (3000);
}
void loop() {




  // Okunacak kırmızı filtrelenmiş fotodiyotların ayarlanması
  digitalWrite(S2, LOW);
  digitalWrite(S3, LOW);



  // Çıkış frekansını okuma
  yogunluk = pulseIn(sensorOut, LOW);
  kirmizi= yogunluk;

  // Seri monitörde değeri yazdırma
  Serial.print("Kirmizi= ");// baskı adı
  Serial.print(yogunluk);// Kırmızı renk sıklığı yazdırma
  Serial.print("  ");
  delay(100);
  /*if(yogunluk>50 && yogunluk<200) {
    servo1.write(30);
    }*/

  // Okunacak yeşil filtrelenmiş fotodiyotları ayarlama
  digitalWrite(S2, HIGH);
  digitalWrite(S3, HIGH);
  // Çıkış frekansını okuma
  yogunluk = pulseIn(sensorOut, LOW);
  yesil= yogunluk;

  // Seri monitörde değeri yazdırma
  Serial.print("Yesil= ");// baskı adı
  Serial.print(yogunluk);// Yeşil renk sıklığı yazdırma
  Serial.print("  ");
  delay(100);
  /*if(yogunluk>100 && yogunluk<150) {
    servo1.write(60);
    }*/

  // Okunacak mavi filtrelenmiş fotodiyotları ayarlama
  digitalWrite(S2, LOW);
  digitalWrite(S3, HIGH);
  // Çıkış frekansını okuma
  yogunluk = pulseIn(sensorOut, LOW);
  mavi= yogunluk;

  // Seri monitörde değeri yazdırma
  Serial.print("Mavi= ");// baskı adı
  Serial.print(yogunluk);// Mavi renk sıklığı yazdırma
  Serial.println("  ");
  delay(1000);

  if ( ( kirmizi- ortalama < 22 && kirmizi+ ortalama > 22 ) && ( yesil- ortalama < 32 && yesil+ ortalama > 32 ) && ( mavi- ortalama < 45 && mavi+ ortalama > 45) ) {
    
    Serial.println("------SARI------");
  tmrpcm.play("Sari.wav");
  
  delay (3000);

  }
  
  else if ( ( kirmizi- ortalama < 24  && kirmizi+ ortalama > 24 ) && ( yesil- ortalama < 46 && yesil+ ortalama > 46 ) && ( mavi- ortalama < 29 && mavi+ ortalama > 29) ) {

    Serial.println("------PEMBE-----");
  tmrpcm.play("Pembe.wav");
  
  delay (3000);
  }

  else if ( ( kirmizi- ortalama < 26 && kirmizi+ ortalama > 26 ) && ( yesil- ortalama < 60 && yesil+ ortalama > 60 ) && ( mavi- ortalama < 55 && mavi+ ortalama > 55) ) {

    Serial.println("-----TURUNCU----");
  tmrpcm.play("Turuncu.wav");
  
  delay (3000);
  }

  else if ( ( kirmizi- ortalama < 28  && kirmizi+ ortalama > 28 ) && ( yesil- ortalama < 79 && yesil+ ortalama > 79) && ( mavi- ortalama < 61 && mavi+ ortalama > 61) ) {

    Serial.println("-----KIRMIZI----");
  tmrpcm.play("Kirmizi.wav");
  
  delay (3000);
  }

  else if ( ( kirmizi- ortalama < 45 && kirmizi+ ortalama > 45 ) && ( yesil- ortalama < 48 && yesil+ ortalama > 48 ) && ( mavi- ortalama < 60 && mavi+ ortalama > 60) ) {

    Serial.println("------YESIL-----");
  tmrpcm.play("Yesil.wav");
  
  delay (3000);
  }

  else if ( ( kirmizi- ortalama < 29 && kirmizi+ ortalama > 29 ) && ( yesil- ortalama < 26 && yesil+ ortalama > 26 ) && ( mavi- ortalama < 20 && mavi+ ortalama > 20) ) {

    Serial.println("---ACIK  MAVI---");
  tmrpcm.play("Turkuaz.wav");
  
  delay (3000);
  }

  else if ( ( kirmizi- ortalama < 66  && kirmizi+ ortalama > 66 ) && ( yesil- ortalama < 40 && yesil+ ortalama > 40 ) && ( mavi- ortalama < 25 && mavi+ ortalama > 25) ) {

    Serial.println("------MAVI------");
  tmrpcm.play("Mavi.wav");
  
  delay (3000);
  }

  else if ( ( kirmizi- ortalama < 62  && kirmizi+ ortalama > 62 ) && ( yesil- ortalama < 87 && yesil+ ortalama > 87 ) && ( mavi- ortalama < 49 && mavi+ ortalama > 49) ) {

    Serial.println("------MOR-------");
  tmrpcm.play("Mor.wav");
  
  delay (3000);
  }

  
}



Sosyal Medyada Paylaş Facebook Twitter Google+

Etiketler: , ,
Eklenme Tarihi: 2 Eylül 2018

Konu hakkında yorumunuzu yazın