class LedClass
{
public:
int pin;
void on(void);
void off(void);
void flash(void);
unsigned long lastTime = 0;
int freq = 2;
int flashStep = 100;
int drct = 1;
};
void LedClass::flash(void)
{
analogWrite(pin, flashStep);
if (millis() - lastTime > freq)
{
if (drct == 1)
{
flashStep++;
if (flashStep >= 255)
{
drct = 0;
flashStep = 255;
}
}
else
{
flashStep--;
if (flashStep <= 0)
{
drct = 1;
flashStep = 0;
}
}
lastTime = millis();
}
}
void LedClass::on(void)
{
digitalWrite(pin, HIGH);
}
void LedClass::off(void)
{
digitalWrite(pin, LOW);
}
LedClass led1;
LedClass led2;
LedClass led3;
LedClass led5;
LedClass led4;
void setup()
{
Serial.begin(9600);
led1.pin = 3;
led2.pin = 5;
led2.freq = random(1,9);//闪烁的速度,数值越大,呼吸变换越慢
led1.freq = random(10,200);
led3.freq = random(40,200);
led3.freq = random(40,200);
led3.freq = random(40,200);
led3.pin=9;
led4.pin=10;
led5.pin=11;
pinMode(led1.pin, OUTPUT);
pinMode(led2.pin, OUTPUT);
pinMode(led3.pin, OUTPUT);
pinMode(led4.pin, OUTPUT);
pinMode(led5.pin, OUTPUT);
}
void loop()
{
led1.flash();
led2.flash();
led3.flash();
led4.flash();
led5.flash();
}