Serial'e Türkçe'ye özgü karakterleri yazdırmak

Türkçe’ye karakterleri Serial porta yazdıran bir kod yazdım. extended ascii (128-255 arası ) karakterlerle yapıyoruz bu işi. Ama Ş,ş,İ,ı harfleri işletim bağımlıdır. Asıl extended ascii tablosunda bunlata küçük ve büyük Y_ACCUTE ve THORN harlerine karşılık gelir. Ben bu kodu Windows için yazdım. Linux ve MacOS için hex değerleri değiştirmek gerekebilir.

/*
* Coded by Umit Kabuli
* fOR tUR/
* Date: 10 July 2015
* htp://forum.arduinoturkiye.com
* user: @nighteagle
*/
#define BUYUK_CENGELLI_C 0xC7 
#define KUCUK_CENGELLI_C 0xE7
#define BUYUK_NOKTALI_U 0xDC
#define KUCUK_NOKTALI_U 0xFC
#define BUYUK_NOKTALI_I 0xDD
#define KUCUK_I 0xFD
#define BUYUK_CENGELLI_S 0xDE
#define KUCUK_CENGELLI_S 0xFE
#define BUYUK_NOKTALI_O 0xD6
#define KUCUK_NOKTALI_O 0xF6

#define CAPITAL_C_CEDILLA xE7
#define SMALL_C_CEDILLA 0xE7
#define CAPITAL_U_DIAERESIS 0xDC
#define SMALL_U_DIAERESIS 0xFC
#define CAPITAL_Y_ACUTE 0xDD //İşletim sistemi bağımlı
#define SMALL_Y_ACUTE 0xFD //İşletim sistemi bağımlı
#define CAPITAL_THORN 0xDE //İşletim sistemi bağımlı
#define SMALL_THORN 0xFE //İşletim sistemi bağımlı
#define CAPITAL_O_DIAERESIS_ 0xD6
#define SMALL_O_DIAERESIS 0xF6


void setup() {
    char TurkishCharacters[]= { BUYUK_CENGELLI_C,
                              KUCUK_CENGELLI_C,
                              BUYUK_NOKTALI_U,
                              KUCUK_NOKTALI_U,
                              BUYUK_NOKTALI_I,
                              KUCUK_I,
                              BUYUK_CENGELLI_S,
                              KUCUK_CENGELLI_S,
                              BUYUK_NOKTALI_O,
                              KUCUK_NOKTALI_O};
 Serial.begin(9600);
 String str;
 for(int i=0;i<10;i++)
 {

  Serial.print("0x");
  Serial.print((byte)TurkishCharacters[i],HEX);
  Serial.print("\t");
   Serial.print((byte)TurkishCharacters[i],DEC);
  Serial.print("\t");
  Serial.println(TurkishCharacters[i]);
 }
 /*
char ch;
 
 for(int i=128;i<255;i++)
 {
 Serial.print(i,HEX);
 Serial.print("\t");
 ch=i;
 Serial.println(ch);
 }
 */
}
void loop() {}

ğ,Ğ harferini unutmuşum:)

#define BUYUK_YUMUSAK_G 0xD0
#define KUCUK_YUMUSAK_G 0xF0

yazıp, dizi ve döngüyü ona göre değiştirebilirsiniz.