//gpt trial 2 - PWM at different intervals int cauldron = D4; int castle = D5; int camp = D7; int mortar = D6; unsigned long previousMillis = 0; const long interval = 50; // interval at which to update LEDs (in milliseconds) void setup() { pinMode(camp, OUTPUT); pinMode(cauldron, OUTPUT); pinMode(mortar, OUTPUT); pinMode(castle, OUTPUT); } void loop() { unsigned long currentMillis = millis(); // Update all LEDs simultaneously camp1(currentMillis); cauldron1(currentMillis); mortar1(currentMillis); castle1(currentMillis); } void camp1(unsigned long currentMillis) { static unsigned long previousCampMillis = 0; static int fadeValueCamp = 0; if (currentMillis - previousCampMillis >= interval) { previousCampMillis = currentMillis; analogWrite(camp, fadeValueCamp); fadeValueCamp = (fadeValueCamp + 1) % 256; // increment fade value } } void cauldron1(unsigned long currentMillis) { static unsigned long previousCauldronMillis = 0; static int fadeValueCauldron = 0; if (currentMillis - previousCauldronMillis >= interval) { previousCauldronMillis = currentMillis; analogWrite(cauldron, fadeValueCauldron); fadeValueCauldron = (fadeValueCauldron + 2) % 256; // increment fade value } } void mortar1(unsigned long currentMillis) { static unsigned long previousMortarMillis = 0; static int fadeValueMortar = 0; if (currentMillis - previousMortarMillis >= interval) { previousMortarMillis = currentMillis; analogWrite(mortar, fadeValueMortar); fadeValueMortar = (fadeValueMortar + 3) % 256; // increment fade value } } void castle1(unsigned long currentMillis) { static unsigned long previousCastleMillis = 0; static int fadeValueCastle = 0; if (currentMillis - previousCastleMillis >= interval) { previousCastleMillis = currentMillis; analogWrite(castle, fadeValueCastle); fadeValueCastle = (fadeValueCastle + 4) % 256; // increment fade value } }