概要
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);
}
}
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);
}
}