[Nefry BTとGrove接続実験] LEDソケット+LED(赤、青、緑)

LEDモジュール

私が購入したGROVEスターターキットV3に入っていたLEDモジュールは、LED Socket Kit v1.4というモジュールです。スイッチサイエンスさんの単体販売ページに掲載されているものとは、基板部分は同じですが、付属するLEDの個数に違いがあります。スイッチサイエンスさんで販売されているものはLEDが1個しかついていませんが、GROVEスターターキットV3には赤、青、緑の3種類のLEDが付いています。

Grove LEDモジュールとLED3種
GroveLEDモジュール

基板の右下にあるのがLEDを挿すソケットです。右上にあるの黄色いプラスチックが付いた箱はLEDの明るさを調整する可変抵抗です。黄色い部分をドライバで回して明るさを調整します。

Grove LEDモジュール(裏)

LEDモジュールの動作

1(HIGH)を送るとLEDが点灯し、0(LOW)を送るとLEDが消灯します。LEDの明るさは基板についている可変抵抗で調整できるようになっています。LEDが暗い時や点灯しない時は可変抵抗を回してみてください。

LEDをソケットに挿す際に、LEDの極性を合わせる必要があります。通常は足の長い方がプラスですが、足の長さが同じでどちらかわからない場合は LED の形状で判断します。

LEDの極性

円の一部分が欠けて直線になっている方がマイナスです。モジュールのLEDソケット部にも円が欠けている絵が描いてあるので、それに合わせてLEDを差し込みます。

プログラム

// Nefry BT無印の場合: D2, A0, A2 (注:D0は使えません)
// Nefry BT R2の場合: D0, D2, D5, A1  (注:A0を使うときはA1を記載します。)
#define PIN D2

void setup() {
  pinMode(PIN, OUTPUT);
  Serial.print("PIN = ");
  Serial.println(PIN);
}

void loop() {
  digitalWrite(PIN, HIGH);
  Serial.println(HIGH);
  delay(1000);

  digitalWrite(PIN, LOW);
  Serial.println(LOW);
  delay(1000);
}

1秒ごとに点灯、消灯を繰り返すプログラムです。digitalWrite(ピン, 設定値) を使ってHIGHとLOWを交互に設定しています。

LEDの明るさを変化させるプログラム

PWM(Pulse Width Modulation)を使って明るさを変化させます。Nefry BTでPWMを使う場合は、LEDCライブラリを使います。PWMとLEDCライブラリについては別記事に解説を書いていますので参照ください。

//GROVEケーブルを接続するGROVEコネクターを1つ選んで#define文に記載してください。
// Nefry BT無印の場合: D2, A0, A2 (注:D0は使えません)
// Nefry BT R2の場合: D0, D2, D5, A1  (注:A0を使うときはA1を記載します)
#define PIN D2

// LEDCのパラメータ設定
//   LEDC_CHANNEL        : チャンネル : 0
//   LEDC_RESOLUTION_BITS: 目盛数    : 10bit (0〜1023)
//   LEDC_FREQUENCY  : 周波数    : 50Hz (= 20ms周期)
#define LEDC_CHANNEL 0
#define LEDC_RESOLUTION_BITS 10
#define LEDC_FREQUENCY 50

const int32_t min = 0;
const int32_t max = 1023;
const int32_t delta = 32;
int32_t i;

void setup() {
  Serial.print("PIN = ");
  Serial.println(PIN);
  ledcSetup(LEDC_CHANNEL, LEDC_FREQUENCY, LEDC_RESOLUTION_BITS);
  ledcAttachPin(PIN, LEDC_CHANNEL);
}

void loop() {
  for (i = min; i < max; i += delta) {
    ledcWrite(LEDC_CHANNEL, (uint32_t)i);
    delay(50);
  }
  for (i = max; i > min; i -= delta) {
    ledcWrite(LEDC_CHANNEL, (uint32_t)i);
    delay(50);
  }
}

LEDをだんだん明るくし、輝度が最大になったら、今度はだんだん暗くする動作を繰り返すプログラムです。setup( )関数内のledcSetup( )関数でパラメータを設定し、ledcAttachPin( )関数で使用するピンを指定しています。loop( )関数内では、ledcWrite( )関数でLEDの明るさを変更しています。

諸元

名称LED Socket Kit
リレー
バージョンv1.4
Seeed社 Wikihttp://wiki.seeedstudio.com/Grove-LED_Socket_Kit/
スイッチサイエンス商品ページhttps://www.switch-science.com/catalog/1251/
Nefry BT無印 動作ソケットD2, A0, A2
Nefry BT R2 動作ソケットD0, D2, D5, A0(プログラム上はA1)

「Nefry BTとGroveモジュール接続実験」 トップページ

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください