pdu_power_sequence/pdu_power_sequence.ino

52 lines
1.1 KiB
Arduino
Raw Permalink Normal View History

2024-01-10 22:41:08 +01:00
#include <avr/interrupt.h>
#include <avr/sleep.h>
2024-01-11 14:57:19 +01:00
// Set to "1" to enable debug output, 0 (or else) disables serial output
2024-01-11 14:54:49 +01:00
#define DEBUG 1
#if DEBUG == 1
#define Debugln(x) Serial.println(x)
#else
#define Debugln(x)
#endif
2024-01-15 08:35:13 +01:00
// Define relay pins
#define relayPin_1 11
#define relayPin_2 12
#define interval 2000
2024-01-10 22:41:08 +01:00
void setup() {
Serial.begin(9600); // open the serial port at 9600 bps
// Init pins HIGH
2024-01-15 08:35:13 +01:00
digitalWrite(relayPin_1, HIGH);
digitalWrite(relayPin_2, HIGH);
pinMode(relayPin_1, OUTPUT);
pinMode(relayPin_2, OUTPUT);
2024-01-11 14:54:49 +01:00
Debugln("Hello!");
2024-01-10 22:41:08 +01:00
}
void loop() {
2024-01-15 08:35:13 +01:00
delay(interval); // Wait for 2 seconds
2024-01-11 14:54:49 +01:00
Debugln("Enable power rail #1");
2024-01-15 08:35:13 +01:00
digitalWrite(relayPin_1, LOW); // Poweron relay #1
2024-01-15 08:35:13 +01:00
delay(interval);
2024-01-11 14:54:49 +01:00
Debugln("Enable power rail #2");
2024-01-15 08:35:13 +01:00
digitalWrite(relayPin_2, LOW); // Poweron relay #2
delay(50); // wait for UART to finish
stop();
2024-01-10 22:41:08 +01:00
}
void stop() {
// Turn microcontroller off
2024-01-11 14:54:49 +01:00
Debugln("All done, powering off. Goodbye.");
delay(100); // wait for UART to finish
2024-01-10 22:41:08 +01:00
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
cli();
sleep_mode();
}