Skip to content

Instantly share code, notes, and snippets.

@uozias
Created December 11, 2015 11:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save uozias/4dc0d2389cbf2a96f0f5 to your computer and use it in GitHub Desktop.
Save uozias/4dc0d2389cbf2a96f0f5 to your computer and use it in GitHub Desktop.
transfer keybord input to LED morse signal
int ledPin = 13; //13番をアウトプットに指定
int interval = 500; // ・1つは、0.5秒にする
int long_interval = interval * 3; // ーは・の3つ分まつ
String target = String("B"); // ここに表示したい文字1つを書く
String moji[] = {String("A"), String(""), String("B"), String("C"), String("D"), String("E"), String(""), String("F"), String("G"), String("H"), String(""), String("J"), String("K"), String("L"), String("M"), String("N"), String("O"), String(""), String("P"), String("Q"), String("R"), String("S"), String("T"), String("U"), String(""), String(""), String(""), String("V"), String("W"), String("X"), String("Y"), String("Z"), String(""), String(""), String(""), String(""), String(""), String(""), String(""), String(""), String(""), String(""), String(""), String(""), String(""), String(""), String(""), String("")};
String tonTu[] = {String("sl"), String("slsl"), String("lsss"), String("lsls"), String("lss"), String("s"), String("sslss"), String("ssls"), String("lls"), String("ssss"), String("lslls"), String("slll"), String("lsl"), String("slss"), String("ll"), String("ls"), String("lll"), String("llls"), String("slls"), String("llsl"), String("sls"), String("sss"), String("l"), String("ssl"), String("slssl"), String("ssll"), String("slsss"), String("sssl"), String("sll"), String("lssl"), String("lsll"), String("llss"), String("llll"), String("lslll"), String("slsll"), String("llsll"), String("lslsl"), String("lslss"), String("lssll"), String("lsssl"), String("sslsl"), String("llsls"), String("sllss"), String("llssl"), String("lssls"), String("sllls"), String("lllsl"), String("slsls")};
void setup()
{
Serial.begin(9600); // シリアルポートを9600bpsで開く
pinMode(ledPin, OUTPUT);//13番をアウトプットに指定
}
void loop()
{
if(Serial.available()>0){
target = String(char(Serial.read()));
Serial.println(target);
// 光らせたい文字の番号を検索
int length = sizeof(moji) / sizeof(moji[0]);
int targetIndex = 0;
for (int i = 0; i < length; i++){
if(target.equals(moji[i])){
targetIndex = i;
break;
}
}
// その番号の符号を検索
length = tonTu[targetIndex].length();
for(int j = 0; j < length; j++){
showCharactter(String(tonTu[targetIndex].charAt(j))); // 光らせる
}
}
}
// 符号1つ分を光らせる
void showCharactter(String character)
{
if(String("s").equals(character)) { // 短点
Serial.println("short!");
digitalWrite(ledPin, HIGH); // 光らせる
delay(interval); // ・1つは、1秒にする
}else if(String("l").equals(character)){ // 長点
Serial.println("long!");
digitalWrite(ledPin, HIGH); // 光らせる
delay(long_interval); // ーは・の3つ分なので、3秒まつ
}
digitalWrite(ledPin, LOW); //光らせるのやめる
delay(long_interval); // 文字の間は・の3つ分あけるの
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment