PR

初めてのArduino ~ LチカVVV

まずは、作法に則ってLチカ。

テストということで、「VVV」の繰返し。

わざわざLEDを付けなくても良かったみたい。ボード上にも13番ピンにつながったLEDが搭載されているようだ(USBコネクタの側の青LED)。 互換機だからかな?ちなみに、Seeeduino v4.2というもの。

/* Lチカ: VVV
 *  (C) 2020 JH4VAJ
 */
 
#define CW_DOT_LEN 150  // 短点の長さ (ms) これがすべての基準(これだけ変えればOK)
#define CW_DASH_LEN (CW_DOT_LEN * 3)          // 長点の長さ
#define CW_SPACE_CODE_LEN    CW_DOT_LEN       // 点間隔
#define CW_SPACE_LETTER_LEN  (CW_DOT_LEN * 3) // 文字間隔
#define CW_SPACE_PHRASE_LEN  (CW_DOT_LEN * 7) // 語間隔

#define DOT   0
#define DASH  1

#define CODE        0
#define LETTER      1
#define LETTER_END  2
#define PHRASE      3

#define SPACE_CODE    delay(CW_SPACE_CODE_LEN);
#define SPACE_LETTER  delay(CW_SPACE_LETTER_LEN);
#define SPACE_PHRASE  delay(CW_SPACE_PHRASE_LEN);

#define LEDpin  13

void setup() {
  // put your setup code here, to run once:
  pinMode(LEDpin, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  output_letter_V();
  SPACE_LETTER

  output_letter_V();
  SPACE_LETTER

  output_letter_V();
  SPACE_PHRASE
}

void output_LED(int dot_dash, int space) {
  digitalWrite(LEDpin, HIGH);

  if (dot_dash == DOT) {
    delay(CW_DOT_LEN);
  }
  else {
    delay(CW_DASH_LEN);
  }

  digitalWrite(LEDpin, LOW);
  
  switch (space) {
    case CODE:
      SPACE_CODE
      break;
    case LETTER:
      SPACE_LETTER
      break;
    case PHRASE:
      SPACE_PHRASE
      break;
    case LETTER_END:
    default:
      break;
  }

  return;  
}


void output_letter_V() {
  output_LED(DOT, CODE);
  output_LED(DOT, CODE);
  output_LED(DOT, CODE);
  output_LED(DASH, LETTER_END);

  return;
}

こんなもん、使いたい人がいるとは思えないけど、もし試してみたければご自由に(著作権は放棄しませんが)。

しかし、なんで「スケッチ」っていうんだろう?絵を書くのは苦手なので「スケッチ」と言われるとなんだかハードルが高く感じるんだけど…。


自作
この記事のタイトルとURLをコピーする
スポンサーリンク
スポンサーリンク
スポンサーリンク

コメント