メインコンテンツに移動

GR-COTTON 特設:LEDで遊ぶ

概要

GR-COTTONのLEDで色々な光り方を試してみます。

サンプルプログラムをWebコンパイラや、IDE for GRにコピーペーストして楽しんでください。

cotton-sp-congratulation

準備

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

GR-COTTONの裏面にある白いジャンパーが3V3、USB側にします。BATT側にある場合は引き抜いて、USB側に差し込んでください。

cotton-sp-prepare
cotton-sp-prepare2

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

青色LEDはGR-COTTONのピン24に割り当たっていて、pinModeでピン24を出力にし、digitalWriteでLEDをON/OFFしています。

ピン22が赤色、ピン23が緑色ですので、#defineの部分を22や23にして光の色を変えてみてください。


#include <arduino.h>

#define LED 24 // blue led
void setup() {
    pinMode(LED, OUTPUT);
    digitalWrite(LED, HIGH);
}



void loop() {
    digitalWrite(LED, LOW);
    delay(500);
    digitalWrite(LED, HIGH);
    delay(500);
}

LEDを蛍のように点滅させる

赤と緑のLEDを使って、蛍のようにもわっと光るサンプルです。

LEDの光に強弱をつけるため、analogWriteを使って0~255の範囲で設定しています。digitalWriteはONとOFFだけでした。


#include <arduino.h>

#define LED_R 22 // red led
#define LED_G 23 // green led
void setup() {
}

void loop() {
    for(int i = 0; i < 255; i++){
    analogWrite(LED_R, i);
    analogWrite(LED_G, i);
    delay(5);
    }
    for(int i = 0; i < 255; i++){
    analogWrite(LED_R, 255 - i);
    analogWrite(LED_G, 255 - i);
    delay(5);
    }
}

レインボー

LEDを虹色でもわっと光らせるサンプルです。


#include <arduino.h>

void setup() {
}

void loop() {
    static double t = 0.0;
    analogWrite(22, int(255.0 * pow(0.5 - 0.49 * cos(t / 2.0), 2.0)));
    analogWrite(23, int(255.0 * pow(0.5 - 0.49 * cos(t / 3.0), 2.0)));
    analogWrite(24, int(255.0 * pow(0.5 - 0.49 * cos(t / 5.0), 2.0)));
    t = fmod(t + (2 * M_PI / 1000 * 10), 60.0 * M_PI);
    delay(1);
}