デジタルの場合は、HIGHかLOWでした。いわゆる10の世界だったので、ちょっと暗くとかはできませんでした。ちょっと暗くを実現するには、アナログ出力する必要があります。
今回も、ちょいちょい検索し、配線図とスケッチを入手しました。ほんと、インターネットってすごいです。みんなの知識を共有できます。
ついでに、アナログ入力も試すことにしました。Arduinoにつないだ可変抵抗をぐるぐる回すとLEDの明るさか調整できるって、本格的な気がしたからです。
注意:本格的の意味は人によって異なります(笑)
配線図
アナログ出力するLEDについては、Arduinoの3番pinを使うことにしました。抵抗220ΩはLED点滅で使ったのと同じ。
Arduinoの基盤を見ると、3番pinのところにはアナログが使えるPWMの記載がありました。
LEDを回ってきてArduinoのGNDに戻ってくるのは同じです。
アナログ入力のところは、Arduinoの5VとGNDのpinへの接続と、グルグルと可変抵抗10KΩをまわしたときに変化する抵抗値を読み取るアナログ入力として0番pinへ接続しました。
グルグルまわすと抵抗値が変わり、0番pinへの入力電圧が変わるのは、感覚的にわかります。
スケッチ
int val=0; //入力値の変数を用意し、0に設定 void setup(){ //pinMode()の設定は不要 } void loop(){ //ANALOG INの0番ピンを読み取りvalに代入 val=analogRead(0); //アナログ出力(PWM)の3番ピンを出力とし //valを4で割った値を入れる analogWrite(3,val/4); //0.1秒ループにする delay(100); }
//pinMode() ・・・ LED点滅の時に使った、pinMode命令はアナログの場合には不要
とのことです。なので、コメントにしています。
val=analogRead(0) ・・・ この命令によって、アナログ入力(0番pin)の値を読み取り、
valという変数へ代入しています。読み取り値は0~1023と
のことです。
analogWrite(3,val/4) ・・・ 3番pinへアナログ出力しています。アナログ出力できる
のは、0~255なので、4で割っているわけです。
void loop() ・・・ 入力値の読み取りと出力を100msで繰り返しています。
実際に配線して、スケッチをArduinoにuploadしてみました。
見事にだんだん暗くしたり、明るくしたりができました。LEDの明るさ調整、成功。
気が済むまで、グルグルしました(笑)
デジタルだけでなくアナログも簡単に扱えるArduinoってすごい!!
0 件のコメント:
コメントを投稿