求问用piezo控制RGB灯,不同的震动使灯产生不一样的颜色
我是按照这个教程做的 piezo,不同节奏控制RGB灯变化。但是不成功,我修改了代码还是有问题最后灯只有一个会随拍打 变幻不同颜色,请问是为什么呢?http://www.instructables.com/id/RGBeatz/ 这个是教程地址~这是代码
int soundSensor1 = 0; // piezo 1 connect to analog 0
int soundSensor2 = 1; // piezo 2 connect to analog 1
int threshold = 10;
int sensorReading1 = 0;//var to hold anaolg reading of piezo1
int sensorReading2 = 0;//var to hold anaolg reading of piezo2
//first LED pins//
int LED1R = 3;
int LED1G = 5;
int LED1B = 6;
//second LED pins//
int LED2R = 9;
int LED2G = 10;
int LED2B = 11;
//static LED//
int red1 = 7;
int blue1 = 8;
int red2 = 13;
int blue2 = 12;
int read1 = 0;
int read2 = 0;
void setup(){
Serial.begin(9600); //set serial output
pinMode(LED1R, OUTPUT);//set pins for first LED
pinMode(LED1G, OUTPUT);
pinMode(LED1B, OUTPUT);
pinMode(LED2R, OUTPUT);//set pins for second LED
pinMode(LED2G, OUTPUT);
pinMode(LED2B, OUTPUT);
pinMode(red1,OUTPUT); //set Red & Blue pins for third LED
pinMode(blue1,OUTPUT);
pinMode(red2,OUTPUT); //setRed * Blue pins for fouth LED
pinMode(blue2,OUTPUT);
}
void loop(){
sensorReading1 = analogRead(soundSensor1);//reading in piezo sensors 1 & 2
sensorReading2 = analogRead(soundSensor2);
//Serial.println("one");
//Serial.println(sensorReading1);
//Serial.println("two");
//Serial.println(sensorReading2);
read1 = map(sensorReading1,0,10,255,0);//map analog input to RGB scale
read2 = map(sensorReading2,0,10,255,0);
analogWrite(LED1R, read1);//for middle two LEDs scale Red & Blue to sensor input
analogWrite(LED1G, 100);
analogWrite(LED1B, read2);
analogWrite(LED2R, read1);
analogWrite(LED2G, 100);
analogWrite(LED2B, read2);
//four outter two LEDs change from red to Blue at volume threshold
if(sensorReading1 > threshold){
digitalWrite(red1,LOW);
digitalWrite(blue1,HIGH);
digitalWrite(red2,HIGH);
digitalWrite(blue2,LOW);
}
else{
digitalWrite(red1,HIGH);
digitalWrite(blue1,LOW);
digitalWrite(red2,LOW);
digitalWrite(blue2,HIGH);
}
} 求问各位大神,是我连接有问题还是,代码问题? read1 = map(sensorReading1,0,10,255,0);//map analog input to RGB scale
read2 = map(sensorReading2,0,10,255,0);
这两个压电陶瓷的灵敏度太低了吗?5V*10/1024,只有约50mV,最好加个运放放大一下。另外,map到255~0,试试改为255~100,因为100以下LED可能根本就不亮。 不错的项目参考,可以设计个声音控制的
页:
[1]