概要

GR-PEACHのLEDやボタンで遊んでみます。


準備

GR-PEACH、USBケーブル(マイクロBタイプ)の2つを準備します。

記事の中では、外付けのLEDを使っていますが、GR-PEACH上のLEDで遊ぶことができます。


LEDを点滅させる

以下のサンプルは非常に簡単な例ですが、青色LEDを点滅させるだけです。

青色LEDはGR-PEACHのピン86に割り当たっていて、別名のPIN_LED_BLUEを使うことでdigitalWriteでLEDをON/OFFしています。 赤色LEDはPIN_LED_RED(またはピン84)、緑色はPIN_LED_GREEN(またはピン85)、もう1つ別の場所についている赤LEDはPIN_LED_USER(またはピン87)です。PIN_LED_BLUEの部分を変えて試してみてください。


#include <arduino.h>
void setup() {
  pinMode(PIN_LED_BLUE, OUTPUT);
  digitalWrite(PIN_LED_BLUE, HIGH);
}
  
void loop() {
  digitalWrite(PIN_LED_BLUE, LOW);
  delay(500);
  digitalWrite(PIN_LED_BLUE, HIGH);
  delay(500);
}

LEDをゆっくり光らせる

LEDを蛍のようにゆっくり光らせるためにはanalogWriteを使います。※2016年7月時点のライブラリではGR-PEACH上のLEDに対してanalogWriteを使うことはできません。

前記で使ったdigitalWriteではONとOFFだけでしたが、LEDの光に強弱をつけるため、analogWriteを使って0~255の範囲で設定しています。 なお、analogWriteが使用できるピンは限られており、写真ではピン8にLEDのアノード、GNDにカソードをつなげています。


#include <arduino.h>
#define LED 8 // led
void setup() {
}
   
void loop() {
  for(int i = 0; i < 255; i++){
    analogWrite(LED, i);
    delay(5);
  }
  for(int i = 0; i < 255; i++){
    analogWrite(LED, 255 - i);
    delay(5);
  }
}


ボタンを押したらLEDを光らせる

GR-PEACH上のボタンスイッチが押したときにLEDを光らせるサンプルです。


#include <arduino.h>
void setup() {
    pinMode(PIN_LED_GREEN, OUTPUT);
    pinMode(PIN_SW, INPUT);
}
   
void loop() {
    if(digitalRead(PIN_SW) == 0){
        digitalWrite(PIN_LED_GREEN, HIGH);
    } else {
        digitalWrite(PIN_LED_GREEN, LOW);
    }
}