ArduinoでADC調光を行う
PWM制御 Arduinoでアナログ制御を行おうとすると、PWM制御という単語にたどりつく。 Arduinoは基本的に0Vか5Vの電気の出力しか行えない。しかし、PWMは出力する電気を高速でON/OFFすることで、疑似的に出力する電気の量を変えることができる。 100回のON/OFFの切り替えで、50回だけ5Vを出力し、疑似的に2.5Vの電気を出力することができる。 アナログ出力とアナログ入力 アナログ出力でLEDの明るさを調節する ArduinoはPWM制御の行えるピンが決まっている。 3、5、6、9、10、11ピンが使える。 今回は3番ピンでPWMによるLEDの調光を行う。 使う回路はこんな感じ。 スイッチがついているが、今回は使わない。 int led; void setup() { pinMode(3,OUTPUT); } void loop() { for(led=0;led<256;led++){ analogWrite(3,led); delay(5); } for(led=255;led>0;led--){ analogWrite(3,led); delay(5); } } Arduinoでアナログ出力を行うときはanalogWrite()という関数を使う。 アナログ出力で注意するところは、Arduinoでは0Vから5Vの変化を0から255の数値に変換して行う。 5Vの電気を出力したいとき255を引数として与え、2.5Vなら127の数値を引数として与える。 アナログ入力を行ってアナログ出力を調節する Arduinoでアナログ入力を行うときはA0からA7というピンを使う。 「A」はanalogのAである。 アナログ入力を行うので、可変抵抗器をスイッチの代わりに使ってみた。 可変抵抗器はその名の通りに、抵抗の値を変化させることができる。 これを使って、抵抗値の変化をアナログ入力してLEDの調光を行ってみる。 int led; int sw; void setup() { pinMode(A1,INPUT); pinMode(3,OUTPUT); } void