抵抗の計算
- 赤(Vf=2.0V) (5V-2.0V)/0.015A=200Ω
- 緑(Vf=3.0V) (5V-3.0V)/0.015A=133Ω
- 青(Vf=3.5V) (5V-3.5V)/0.015A=100Ω
とりあえず全部220Ω。
3軸加速度センサーにRGBを連動させてみる
int xPin = 0;
int yPin = 1;
int zPin = 2;
int rPin = 9;
int gPin = 10;
int bPin = 11;
long count = 0;
void setup() {
Serial.begin(38400);
pinMode(rPin, OUTPUT);
pinMode(gPin, OUTPUT);
pinMode(bPin, OUTPUT);
}
int xPrev=128, xVal=0;
int yPrev=128, yVal=0;
int zPrev=128, zVal=0;
void loop() {
int x = analogRead(xPin);
int y = analogRead(yPin);
int z = analogRead(zPin);
if(true){
int dx = abs(xPrev-x);
int dy = abs(yPrev-y);
int dz = abs(zPrev-z);
if(dx>dy && dx>dz){ dy=0; dz=0; }
if(dy>dx && dy>dz){ dx=0; dz=0; }
if(dz>dx && dz>dy){ dx=0; dy=0; }
xVal += dx/2;
yVal += dy/2;
zVal += dz/2;
xPrev = x;
yPrev = y;
zPrev = z;
xVal = xVal-xVal/400-1;
yVal = yVal-yVal/400-1;
zVal = zVal-zVal/400-1;
xVal = min(25500, max(0, xVal));
yVal = min(25500, max(0, yVal));
zVal = min(25500, max(0, zVal));
analogWrite(rPin, constrain(sqrt(xVal),0,255));
analogWrite(gPin, constrain(sqrt(yVal),0,255));
analogWrite(bPin, constrain(sqrt(zVal),0,255));
delay(2);
}else{
x = min(255, max(0, x-384));
y = min(255, max(0, y-384));
z = min(255, max(0, z-384));
analogWrite(rPin, x*3/16);
analogWrite(gPin, y*7/16);
analogWrite(bPin, z*1/16);
}
/*
// for arduinoscope
for (int i=0;i<6;i++){
Serial.print(analogRead(i));
Serial.print(" ");
}
Serial.println();
*/
count++;
}
最終更新:2009年07月04日 19:28