W顺利消失? 字节fadeincrement = 5; / millis()时序变量,只是衰落 unsigned long previousfademillis; int fadeInterval = 30;//////////////////////////////////////////////////////////////////////void se
W顺利消失?
字节fadeincrement = 5;
/ millis()时序变量,只是衰落
unsigned long previousfademillis;
int fadeInterval = 30;
//////////////////////////////////////////////////////////////////////
void setup() {
pinMode(led, OUTPUT);
Serial.begin(115200);
Serial.println("Type 'g' to hear a melody.");
}
void loop() {
// no need to repeat the melody.
unsigned long currentMillis = millis();
if (Serial.available()) {
int c = Serial.read();
if (c == 'g') {
check = true;
fadeOrNot = false;
}
if (c == 'h') {
Serial.println("Hello");
}
}
else {
if (fadeOrNot) {
doTheFade(currentMillis);
}
if (check) {
MelodyWithoutDelay(currentMillis);
}
}
}
void MelodyWithoutDelay(long cMillis) {
int noteDuration = 1700 / noteDurations[thisNote];
int pauseBetweenNotes = noteDuration * 1.2;
if ((cMillis - songMillis <= pauseBetweenNotes / 4)) {
digitalWrite(led, LOW);
}
else if ((cMillis - songMillis <= pauseBetweenNotes)) {
tone(buzzer, melody[thisNote], noteDuration);
if (melody[thisNote] != 0){
digitalwrite(LED,高);} } {
其他
如果(数据> = lengthofsong){
数据= 2;
检查=假;
fadeornot = true;
}
数据+ +;
不一(蜂鸣器);
songmillis = cmillis;蜂鸣器
} }
无效dothefade(unsigned long thismillis)
/ {
如果(thismillis - previousfademillis > = fadeinterval){
如果(B){
fadevalue + = fadeincrement;
如果(fadevalue > = maxpwm){
/最大,限制和改变方向
fadevalue = maxpwm;
B = false;} } {
其他
fadevalue = fadeincrement;
如果(fadevalue <= minpwm){
/ / min,限制和改变方向
fadevalue = minpwm;
B = true;
}
}
analogWrite(LED,fadevalue);