注意:すべてのOSOYOO ARDUINO用製品はサードパーティー製品であり、ARDUINOと完全に互換性があります。

認可されたオンライン小売業者:

AMAZON
amzuk

内容

  1. 紹介
  2. 準備
  3. PWMとは
  4. 接続
  5. スケッチのアップロード
  6. プログラムの実行結果

紹介

このレッスンでは、プログラミングを通じてLEDの輝度を徐々に変化させる方法を説明します。脈動する光が呼吸のように見えるため、魔法のような名前である「Breathing LED(呼吸するLED)」と呼びます。この効果をパルス幅変調(PWM)で実現します。

準備

準備

ソフトウェア

Arduino IDE(バージョン1.6.4以上)

PWMとは?

パルス幅変調(PWM)は、デジタル手段でアナログ結果を得るための技術です。デジタル制御を使用して、オンとオフを切り替える信号である矩形波を作成します。このオン・オフのパターンによって、信号がオンになっている時間とオフになっている時間の割合を変化させることで、完全にオン(5V)とオフ(0V)の間の電圧をシミュレートすることができます。オンの時間の長さをパルス幅と呼びます。異なるアナログ値を得るためには、パルス幅を変化させます。

LEDなどにこのオン・オフのパターンを十分に高速に繰り返すと、信号がLEDの明るさを制御する0V~5Vの安定した電圧であるかのように結果が得られます。 ( the PWM description on the official website of Arduino).

トップのオシログラムから、DC電圧出力の振幅は5Vであることがわかります。ただし、実際の電圧出力はPWMを通じて3.75Vだけであるため、高いレベルが周期内の総電圧の75%しか占めないからです。

以下は、PWMの3つの基本的なパラメーターについての紹介です。

  1. デューティサイクル(duty cycle)は、「オン」の時間の周期あたりの割合を表します。
  2. 周期(period)は、1秒あたりのパルスの逆数を表します。
  3. ここでの電圧振幅は0V~5Vです。

接続

OSOYOO Basicボードのほとんどには、ピン番号の横に「PWM」と表示された5つのピンがあります(一部のボードでは「〜」記号になっている場合もあります)。これらのピンはPWMピンです。ここではピン3を使用してLEDを制御します。ハードウェアの接続は以下のフリッツィングダイアグラムの通りです。


注意

LEDをバッテリーや電圧源に直接接続することはできません。まず、LEDには正極と負極があり、逆に接続すると点灯しなくなります。また、LEDは抵抗器と一緒に使用する必要があり、流れる電流量を制限するために「窒息させる」必要があります。そうしないと、LEDが焼き切れる可能性があります!

スケッチのアップロード

USBケーブルを使用してOSOYOO Basicボードをコンピュータに接続してください。緑色の電源LED(PWRとラベルされています)が点灯するはずです。Arduino IDEを開いて、OSOYOO Basicボードに対応するボードタイプとポートタイプを選択してください。

次に、 ‘PWM_Control_LED’ の例題スケッチを読み込むか、以下のコードを新しいArduino IDEウィンドウにコピーして、OSOYOO Basicボードにアップロードしてください。数秒待ちます。ボード上のRXとTXのLEDが点滅するはずです。アップロードが成功した場合、ステータスバーに「Done uploading」というメッセージが表示されます。

void setup ()
{
  pinMode(3,OUTPUT);// declare pin 3 to be an output
}

void loop()
{
  for (int a=0; a<=255;a++)     //loop from 0 to 255,it controls the increase in PWM brightness
  {
    analogWrite(3,a);           //set the brightness of pin 3:          
    delay(8);                   //wait for 8 ms        
  }
    for (int a=255; a>=0;a--)   //loop from 255 down to 0,it control PWM brightness reduction
  {
    analogWrite(3,a);           // set the brightness of pin 3:
    delay(8);                   //wait for 8 ms
  }
  delay(800);                  //wait for 800 ms
}

実行結果

アップロードが終了して数秒後、LEDが徐々に明るくなり、次にゆっくりと暗くなり、まるで呼吸しているかのような動きになるはずです。