Arduino
OKUDUĞUNUZ KONU
Sesleri LCD Ekrana Yazdırma
48

Sesleri LCD Ekrana Yazdırma

Yazar : Murat Duran26 Kasım 2017

Arduino ile sesleri lcd ekrana yazdırma projesini gerçekleştireceğiz , proje işitme engelliler için kullanılabilecek özelliğe sahiptir.Proje henüz demo özelliğindedir.Ama projeyi saat boyutlarına getirirsek birçok işitme engelli için kullanışlı olabilir.Projenin çalışma prensibi şu şekildedir.Arduino üzerine bağlı bir lcd ekran , titreşim motoru ve bluetooth modülü bulunmaktadır.

Telefon ile bluetooth modülüne android program ile bağlanıp konuşmaları bluetooth modülüne iletir bu konuşmalarda arduino tarafından yazıya çevrilerek ekrana basılır.

Projede Kullanılan Malzemeler

Projenin Malzemelerini Satın Al

Bu proje için gerekli malzemeleri Proje Hocam garantisi ile tek sepette satın alabilirsiniz.Malzemeler proje ile %100 uyumludur.İstenilmesi halinde arduino içerisine kodlar yüklenerek gönderilir. “Satın Almak İçin Yukarıda Butona Basınız”

Cep Telefonu uygulamasını indir

5110 LCD kütüphanesi indir

Projenin Kodlarını İndir


#include <SoftwareSerial.h>

SoftwareSerial mySerial(6, 7); // RX, TX
#include <LCD5110_Basic.h>  
// LCD pinleri
// SCK  - Pin 8
// MOSI - Pin 9
// DC   - Pin 10
// RST  - Pin 11
// CS   - Pin 12
LCD5110 myGLCD(8,9,10,11,12); // Lcd yi tanımlama ve SPI pinlerini atama
extern uint8_t SmallFont[]; // Yazı fontu
String ses; // gelen karakterlerin satır değişkenine atama
int titresim_motor = 5; // titresim motor pini

int gelendegertoplam = 0;
void setup() {
  Serial.begin(9600);
mySerial.begin(9600); // serial iletişm hızı
myGLCD.InitLCD(); // lcd ekrana bağlatma fonksiyonu

pinMode(titresim_motor,OUTPUT); // titreşim motorunu
digitalWrite(titresim_motor,LOW); // motoru durma pozisyonuna al
myGLCD.setFont(SmallFont);
  myGLCD.print(ses,LEFT,10);
}

void loop() {

while (mySerial.available()){ //Okumak için kullanılabilir bayt olup olmadığını kontrol et
delay(10); //10 milisaniye bekle
char c = mySerial.read(); //Seri okuma

// türkçe karakterler lcd kütüphanesinde olmadığı için aşağıdaki gibi utf8 deki integer değerleri alınmıştır. 
int a = (int) c; // char tipi karakteri integer karaktere dönüştürme


if(a<0) // a değeri negatif ise
{
  
  if ( a == -60) {  // a değeri -60 ise 
    c = mySerial.read();  // sonraki gelen veriyi oku
    a = (int) c;  // char tipi karakteri integer karaktere dönüştürme
    if( a == -97 ) { // a değeri -97 ise
      ses += 'g';  // ses karakterine g harfini ekle.
      } 
    else { ses += 'i';  // a değeri -97 değil ise ses karakterine i harfini ekle
    }
    a = 0; // a değerini sıfırla
    } 
    
  gelendegertoplam +=a; // gelendegertoplam değerine a değerini ekle
   
  if (gelendegertoplam < 0 ) // gelendegertoplam değeri negatif ise { if ( gelendegertoplam == -157) { ses += "S";gelendegertoplam =0; } // Ş harfini S harfine dönüştürme işlemi if ( gelendegertoplam == -156) { ses += "s";gelendegertoplam =0; } // ş harfini s harfine dönüştürme işlemi if ( gelendegertoplam == -150) { ses += "c";gelendegertoplam =0; } // ç harfini c harfine dönüştürme işlemi if ( gelendegertoplam == -182) { ses += "C";gelendegertoplam =0; } // Ç harfini C harfine dönüştürme işlemi if ( gelendegertoplam == -135) { ses += "o"; gelendegertoplam =0;} // ö harfini o harfine dönüştürme işlemi if ( gelendegertoplam == -167) { ses += "O"; gelendegertoplam =0;} // Ö harfini O harfine dönüştürme işlemi if ( gelendegertoplam == -129) { ses += "u"; gelendegertoplam =0;} // u harfini u harfine dönüştürme işlemi if ( gelendegertoplam == -161) { ses += "U";gelendegertoplam =0;} // U harfini U harfine dönüştürme işlemi } } else { if (c == '#') {break;} // # tespit edildiğinde döngüden çık ses += c; // gelen karakterleri ses tanımında topla } } if (ses.length()>0)  // gelen veri var ise
{
 
Serial.println(ses);
myGLCD.clrScr(); // Ekranı temizle
delay(1000);  // 1 saniye bekle
myGLCD.print(ses.substring(1,12),LEFT,0); // ses karakterinin ilk 12 harfini Sola hizalı ve en üst pikselden  yazıyı konumlandır.
myGLCD.print(ses.substring(12,24),LEFT,10); // ses karakteri 12 harften de büyükse  12. harften sonrasını  Sola hizalı ve 10 piksel üstten aşağı doğru yazıyı konumlandır.
myGLCD.print(ses.substring(24,36),LEFT,20); // ses karakteri 24 harften de  büyükse  24. harften sonrasını  Sola hizalı ve 10 piksel üstten aşağı doğru yazıyı konumlandır.
myGLCD.print(ses.substring(36,48),LEFT,30);  // ses karakteri 36 harften de  büyükse  36. harften sonrasını  Sola hizalı ve 10 piksel üstten aşağı doğru yazıyı konumlandır.
delay(10);  // 10 milisaniye bekle
titresim(); // titreşim motoru görev tanımı
ses =""; // ses karakterine yapılan atamayı temizle
}

}
void titresim() // titreşim motor görev tanımı
{
  digitalWrite(titresim_motor,HIGH); // titreşim motorunu aktif et
  delay(1000); // 1 saniye bekle.
  digitalWrite(titresim_motor,LOW); //  titreşim motorunu durdur.
}






SİZCE NASIL OLMUŞ?
Beğendim
53%
İlginç
13%
Eh İşte
6%
Anlamadım
13%
Kötü
3%
Berbat
13%
YAZAR HAKKINDA
Murat Duran
Murat Duran
Açık kaynak donanım ve yazılım geliştiricisiyim , mekanik ve robotik sistemler üzerinde çalışmalar yapmaktayım.Ayrıca bir start-up firması olan Proje Hocam 'ın kurucuyum.
48 YORUMLAR
  • muhittin
    28 Kasım 2017 at 18:11

    çok güzel düşünülmüş bir proje. mümkünse fritzing şeması paylaşır mısınız?

  • Brahdor
    5 Aralık 2017 at 17:10

    Hocam uygulama cok iyi fakat .apk dosyasini yani android uyg. Nereden bulabiliriz

  • feyzullah budak
    8 Aralık 2017 at 17:31

    çalışıyor mu ?

  • dilek gödek
    13 Aralık 2017 at 13:34

    Merhaba, kodları yazdık. Derlerken aşağıdaki hataları verdi. Bu arada kütüphaneyi de yükledik.
    C:\Users\DELL\Desktop\arduino\lcdekran\lcdekran.ino: In function ‘void loop()’:

    lcdekran:66: error: ‘titresim’ was not declared in this scope

    titresim(); // titreşim motoru görev tanımı

    ^

    lcdekran:72: error: a function-definition is not allowed here before ‘{‘ token

    {

    ^

    lcdekran:78: error: ‘nbsp’ was not declared in this scope

     

    ^

    lcdekran:80: error: expected ‘}’ at end of input

     

    ^

    lcdekran:80: error: expected ‘}’ at end of input

    exit status 1
    ‘titresim’ was not declared in this scope

  • Yasin erkılıç
    13 Aralık 2017 at 21:41

    Aceba bu devrenin yapılışının fotoğrafı varmı? Varsa yasinerkilic@icloud.com gönderebilirmisiniz? Bide tam olarak gerekli malzemeler

  • Murat
    28 Aralık 2017 at 16:29

    Hocam. Bluetooth dan gelen veriyi seri port ekranına yazıyor fakat lcd bağladığımda lcd ye yazmıyor.
    Bir de buradaki titreşim motorunun görevi nedir ve nasıl bağlanıyor? Yardımcı olur musunuz?

  • Fatih bağrıyanik
    28 Aralık 2017 at 20:33

    Hocam şunun bı şeması varmı yarına kadar yapmam lazım LCD ekrandan nereye gidiyor kablolar karıştırdım

  • Gökhan Bektaş
    31 Aralık 2017 at 18:34

    kodlamada sıkıntı var bi çözüm bulurmusunuz projemi vermem gerekiyor salı gününe acil !!!

  • Gökhan Bektaş
    31 Aralık 2017 at 18:47

    Titreşim Motorunu Nasıl Bağlayacaz bide Onu Anlatabilirmisiniz

  • Gökhan Bektaş
    31 Aralık 2017 at 19:48

    titresim’ was not declared in this scope bu sorunu alıyorum acil çözüm lütfen 1!!!

  • fatih bgrynk
    6 Ocak 2018 at 14:40

    66. satır hata veriyor

  • Can Arslan
    Can Arslan
    14 Ocak 2018 at 21:08

    Ben Uygulamayı İndiremiyorum !!! Uygulama Linkini Düzeltirmisiniz

  • slmozrsln
    30 Ocak 2018 at 18:46

    cep telefonu için vermiş olduğunuz link çalışmamaktadır.

  • Merve yucekaya
    9 Şubat 2018 at 11:21

    Merhaba hocam, titreşim motorunun bağlantısı nasıldır acaba??

    • ali_baba
      29 Mart 2018 at 14:44

      + ucu pin 5 demiş – ucu da gnd ye bağlayacaksınız sanırım. ?Programda tanımlanan pin o şekilde. Fakat program çalışmıyor.

  • 17581190
    21 Şubat 2018 at 09:33

    Tam tersi oluyomu lcd ekranda yazanı sesli bir şekilde söylemesi

  • mehmet uysal
    26 Şubat 2018 at 12:58

    ben üniversite öğrencisiyim bu uygulamayı kullanacağız fakat google play uygulaöması yok sizin yazdığınız yorumdaki linkte çalışmıyor yardımcı olabilir misiniz

  • Berkant ÖKLÜ
    26 Şubat 2018 at 18:54

    SoftwareSerial mySerial(6, 7); // RX, TX
    (0,1) olarak değiştirin ve if (gelendegertoplam 0) // gelen veri var ise
    { bu kodları düzenleyince çalışıyor

  • Kerem Bal
    2 Mart 2018 at 09:02

    Tam anlamıyla kurup çalıştıran oldu mu?
    Uğraştım, uğraşıyorum. Lakin çalıştıramadım.
    Yardım eder misiniz?

  • kenan1297
    11 Mart 2018 at 13:42

    bu devre için çalısan kodu kenanbsrn97@gmail.com hesabıma gönderebılirsiniz

  • Emircan bayat
    15 Mart 2018 at 21:49

    Hocam bu ekran yerine 16×2 lik lcd ekran kullanabilir miyiz?

  • emre
    16 Mart 2018 at 09:50

    hocam selamın aleyküm programı yüklüyorum ama şöyle bir hata veriyor yardımcı olabilirmisiniz

    Arduino:1.8.5 (Windows 10), Kart:”Arduino/Genuino Uno”

    C:\Users\cspr\Desktop\ea\ea.ino:7:29: fatal error: LCD5110_Basic.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling for board Arduino/Genuino Uno.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • ismail cem sorgun
    25 Mart 2018 at 14:55

    abi yazılım da sıkıtı var ve benim salı kadar bu projeyi teslim etmem gerek bana ulaş be abi
    @ismail.sorgun instagram adresim abi

  • ali_baba
    29 Mart 2018 at 12:25

    Ben kodları kontrol et dediğimde hata veriyor hocam. Aşağıdaki gibi;
    C:\Users\HPSERV~1\AppData\Local\Temp\arduino_modified_sketch_831664\sketch_mar29a.ino: In function ‘void loop()’:

    sketch_mar29a:65: error: ‘titresim’ was not declared in this scope

    titresim(); // titreşim motoru görev tanımı

    ^

    sketch_mar29a:71: error: a function-definition is not allowed here before ‘{‘ token

    {

    ^

    sketch_mar29a:75: error: expected ‘}’ at end of input

    }

    ^

    sketch_mar29a:75: error: expected ‘}’ at end of input

    exit status 1
    ‘titresim’ was not declared in this scope
    Yardımcı olursanız sevinirim hocam??

  • Ömer ADAÇOĞLU
    29 Mart 2018 at 13:12

    Titreşim motoru bağlantısı nasıl olcak yardımcı olursanız sevinirim yukarıda göremedim

  • Semih Özdemir
    31 Mart 2018 at 14:00

    Hocam herşey tamamladım fakat kodu atınca çalışmıyor kodları kontrol Edip paylaşır mısınız lütfen ?

  • Ahmet Akel
    1 Nisan 2018 at 17:25

    yazılımda titreşim motoru hatası alanlar süslü parantezlere dikkat etsin bir eksiklik var!!

  • Mehmet balta
    6 Nisan 2018 at 20:45

    Kütüphane sıkıntısını nasıl çözerim ve titreşim motoru nere baglanıyor Mehmetbaltaa7 instagram adresim ulaşabilirsiniz

  • ismail mert
    24 Nisan 2018 at 20:13

    hocam bunu direk hoparlöre versem işe yarar mı ?

  • Emre
    25 Nisan 2018 at 00:04

    Merhabalar titreşim motorum maalesef küçük kardeşim taraffından kaybedildi. Titreşim motorsuz denediğimde bir hata almıyorum derleme veya upload sırasında fakat konuştuğum zaman arduinonun değil telefonun ekranına bastırıyor konuştuğumu nedeni ne olabğilir. Bağlantıları doğru yaptığıma eminim. Cevaplarsanız çok sevinirim şimdiden Teşekkürler

  • Nurcan
    25 Nisan 2018 at 21:57

    Hocam Arduino ya yükledim titreşim motoru çalışıyor. ama ekrana yazmıyor.

  • hüseyin
    1 Mayıs 2018 at 15:13

    bu projeyi adım adım basitleştirilmiş bir şekilde anlattığınız bir video çeker misiniz? Proje ile ilgili verilen bilgiler yetersiz

  • Yunus Emre Eroğlu
    4 Mayıs 2018 at 16:42

    Hocam evde çalışan sey okulda çalışmıyor bunun sebebi nedir ya proje gunu geldi sıkıntı cıkmaya başladı
    acil çevap verirseniz sevinirim. Voltaj kaldırmıyor mu acaba ?

  • 24 Eylül 2018 at 09:43

    Titreşimli motor yok resimde devrede ama malzemelerde var Nasil olucak admin acill cevap

YORUM YAP