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() {}