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

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
54%
İlginç
14%
Eh İşte
5%
Anlamadım
13%
Kötü
3%
Berbat
12%
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.
53 YORUMLAR
1 2
  • Kadir
    25 Ekim 2018 at 00:11

    Selamun Aleykum
    Hc06 nin VCC pini ve lcd nin 6. Pini arduinoda ayni pine gelmis. Nasil olucak ?

  • Bahadır ÇELENK
    26 Ekim 2018 at 21:35

    Hocam öncelikle projeniz çok hoşuma gitti ama kodu yükledim ama çalışmadı.

  • Eylül
    27 Ekim 2018 at 19:23

    Murat hocam verdiğiniz link Aptoide yi kuruyor. apk linkini güncelleyebilir misiniz?

YORUM YAP