[Arduino] 自然光の明るさを測る

■素材(LCDなし版)
Arduino UNO R3 +PC(Firmata+Processing)
BB
CdSセル(5mm)
LED
ジャンプワイヤ5本
抵抗器(330,10kΩ)

■CdSセルとは
 Photoresistorの一種
 硫化カドミウム(CdS)を用いたもの
 光の強度が増加すると電気抵抗が低下する
 
・別名
 光依存性抵抗(LDE Light Dependent Resistor)
 光導電体(Photoconductor)
 フォトセル(Photocell)

■回路
・IN
PIN(5V)–Cds– +–10kR–GND
       |
       +(PIN) Analog IN 0
・OUT
PIN(D PWM 9) — 330R — LED — GND

■ソース(Processing)

import processing.funnel.*;

Arduino arduino;
Pin sensorPin;
Pin ledPin;

void setup() {
size(100,100);

Configuration config = Arduino.FIRMATA;
config.setDigitalPinMode(9, Arduino.PWM);
arduino = new Arduino(this, config);

sensorPin = arduino.analogPin(0);
ledPin = arduino.digitalPin(9);

Scaler scaler = new Scaler(0, 1, 1, 0);
sensorPin.addFilter(scaler);
}

void draw() {
background(255);
}

void change (PinEvent e) {
if (e.target == sensorPin) {
ledPin.value = sensorPin.value;
}
}

■手順
1.回路を組む
2.PCとUSBで接続.Standard Firmataをアップロード
3.ProcessingでRun
4.光から隠すとLEDが強く光る、光があたるとLEDが弱く光る

■+α
チャタリングを取り除く
デジタル値に変換
一定時間経過
値のキャリブレーション(調整)

コメントを残す