#define S0 4 #define S1 5 #define S2 6 #define S3 7 #define sensorOut 8 #include #include SoftwareSerial mp3S(10,11); int redFrequency = 0; int greenFrequency = 0; int blueFrequency = 0; void setup() { pinMode(S0, OUTPUT); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT); Serial.begin(9600); mp3S.begin(9600); mp3_set_serial(mp3S); delay(1); mp3_set_volume(30); mp3_set_EQ(0); pinMode(sensorOut, INPUT); digitalWrite(S0,HIGH); digitalWrite(S1,LOW); } void loop() { int A[2]; int yellow[]={26,33,53}; int green[]={93,60,64}; int orange[]={29,64,68}; int red[]={33,90,68}; int blue[]={95,92,49}; int azure[]={97,52,28}; int purple[]={62,104,64}; int pink[]={36,94,57}; int black[]={113,130,100}; int brown[]={78,120,93}; digitalWrite(S2,LOW); digitalWrite(S3,LOW); redFrequency = pulseIn(sensorOut, digitalRead(sensorOut) == HIGH ? LOW : HIGH); A[0]=redFrequency; digitalWrite(S2,HIGH); digitalWrite(S3,HIGH); greenFrequency = pulseIn(sensorOut, digitalRead(sensorOut) == HIGH ? LOW : HIGH); A[1]=greenFrequency; digitalWrite(S2,LOW); digitalWrite(S3,HIGH); blueFrequency = pulseIn(sensorOut, digitalRead(sensorOut) == HIGH ? LOW : HIGH); A[2]=blueFrequency; float d=0.05; int y=0;int g=0;int o=0;int r=0;int b=0;int a=0;int p=0; int pi=0; int bl=0;int br=0; for(int i=0;i<=2;i++){ //желтый if((A[i]>=yellow[i]*(1-d))&&(A[i]<=yellow[i]*(1+d))){ y++; } //зеленый if((A[i]>=green[i]*(1-d))&&(A[i]<=green[i]*(1+d))){ g++; } //красный if((A[i]>=red[i]*(1-d))&&(A[i]<=red[i]*(1+d))){ r++; } //оранжевый if((A[i]>=orange[i]*(1-d))&&(A[i]<=orange[i]*(1+d))){ o++;} //голубой if((A[i]>=azure[i]*(1-d))&&(A[i]<=azure[i]*(1+d))){ a++; } //синий if((A[i]>=blue[i]*(1-d))&&(A[i]<=blue[i]*(1+d))){ b++;} //фиолетовый if((A[i]>=purple[i]*(1-d))&&(A[i]<=purple[i]*(1+d))){ p++; } //розовый if((A[i]>=pink[i]*(1-d))&&(A[i]<=pink[i]*(1+d))) { pi++;} //черный if((A[i]>=black[i]*(1-d))&&(A[i]<=black[i]*(1+d))){ bl++;} if((A[i]>=brown[i]*(1-d))&&(A[i]<=brown[i]*(1+d))){ br++;} } Serial.print(A[0]);Serial.print(A[1]);Serial.println(A[2]); if (y==2){mp3_play(1);Serial.print("yellow");} if (g==2){mp3_play(2);Serial.print("green");} if (r==2){mp3_play(3);Serial.print("red");} if (o==2){mp3_play(4);Serial.print("orange");} if (a==2){mp3_play(5);Serial.print("azure");} if (b==2){mp3_play(6);Serial.print("blue");} if (p==2){mp3_play(7);Serial.print("purple");} if (pi==2){mp3_play(8);Serial.print("pink");} if (br==2){mp3_play(9);Serial.println("brown");} if (bl==2){mp3_play(10);Serial.print("black");} delay(1000); }