您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

72 行
1.2 KiB

  1. #define LOW_POWER_SLEEP
  2. #define SLOW_START_DELAY 1000 // ms
  3. #define PIN_SPEAKER 12
  4. #define RELAYS 8
  5. int relayPins[] = {
  6. 2, 3, 4, 5, 6, 7, 8, 9
  7. };
  8. #ifdef LOW_POWER_SLEEP
  9. #include <Adafruit_SleepyDog.h>
  10. #endif
  11. void beep(int freq, int ms) {
  12. tone(PIN_SPEAKER, freq, ms);
  13. delay(ms);
  14. }
  15. void setup() {
  16. pinMode(LED_BUILTIN, OUTPUT);
  17. digitalWrite(LED_BUILTIN, HIGH);
  18. for (int i = 0; i < RELAYS; i++) {
  19. pinMode(relayPins[i], OUTPUT);
  20. digitalWrite(relayPins[i], LOW);
  21. }
  22. Serial.begin(115200);
  23. while (!Serial)
  24. delay(10);
  25. Serial.println();
  26. Serial.println(" [ Slow-start Power Socket ] ");
  27. beep(440, 200);
  28. delay(1000);
  29. for (int i = 0; i < RELAYS; i++) {
  30. Serial.println("...");
  31. beep(100, 10);
  32. delay(SLOW_START_DELAY);
  33. Serial.print("Starting ");
  34. Serial.print(i+1);
  35. Serial.print(" ... ");
  36. beep(200, 50);
  37. digitalWrite(relayPins[i], HIGH);
  38. Serial.println("Done.");
  39. beep(460, 100);
  40. }
  41. Serial.println();
  42. Serial.println("Finished!");
  43. delay(1000);
  44. beep(210, 100);
  45. beep(420, 100);
  46. beep(560, 200);
  47. digitalWrite(LED_BUILTIN, LOW);
  48. delay(1000);
  49. }
  50. void loop() {
  51. // nothing to do!
  52. #ifdef LOW_POWER_SLEEP
  53. Watchdog.sleep();
  54. #else
  55. delay(1000);
  56. #endif
  57. }