#define R 7
#define G 5
#define B 3
#define TRIG_PIN 13
#define ECHO_PIN 12
byte r_level;
byte g_level;
byte b_level=0;
bool blue_state=0;
unsigned long migalka=200;
unsigned long migalka_time;
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(R,OUTPUT);
pinMode(G,OUTPUT);
pinMode(B,OUTPUT);
}
long time, distance;
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
time = pulseIn(ECHO_PIN, HIGH);
distance = (time / 2) * 0.0343;
if(distance<=250 && distance!=0)
{
r_level= 255 - distance;
g_level=distance;
b_level=0;
}
else
{
r_level=0;
g_level=0;
b_level=255;
}
if(!b_level)
{
analogWrite(R,r_level);
analogWrite(G,g_level);
analogWrite(B,b_level);
}
else
{
if(millis()>=migalka_time+migalka)
{
migalka_time=millis();
blue_state=!blue_state;
}
analogWrite(R,r_level);
analogWrite(G,g_level);
analogWrite(B,b_level*blue_state);
}
Serial.print(distance);
Serial.print('\t');
Serial.print(r_level);
Serial.print('\t');
Serial.print(g_level);
Serial.print('\t');
Serial.println(b_level);
}