つよくなりたいなあ

地に足をつけず世界を生きぬくブログです

Arduinoにも手を出しました

初任給でArduino学習キットを買ってから今まで手をつけていなかったのですが、先日のMaker Fair Tokyo2018へ行ってから自分でもなにか作ってみようと思い、ちょいちょい本を読みつつ勉強しています。

今回は、ボタンを押したらLEDが点灯する仕組み。 f:id:heyassy:20180815001106j:plain

配線は上の写真のようになりました。ここまでは理解できます。
コードは以下です。

const int LED = 9;
const int BUTTON = 7;

int val = 0;
int old_val = 0;
int state = 0;

int brightness = 128;
unsigned long startTime = 0;

void setup() {
  pinMode(LED, OUTPUT);
  pinMode(LED, INPUT);

}

void loop() {
  val = digitalRead(BUTTON);

  if ((val == HIGH) && (old_val == LOW)) {
    state = 1 - state;
    startTime = millis();
    delay(10);
  }

  if ((val == HIGH) && (old_val == HIGH)) {
    if (state == 1 && (millis() - startTime) > 500) {
      brightness++;
      delay(10);
      if (brightness > 255) {
        brightness = 0;
      }
    }
  }

  old_val = val;

  if (state == 1) {
    analogWrite(LED, brightness);
  } else {
    analogWrite(LED, 0);
  }

}

つぎはシリアル通信に挑戦だ!