From f756c70c1c0750322f2cc7f1cfc40bf0c7600e5d Mon Sep 17 00:00:00 2001 From: Persephone Bubblegum-Holiday Date: Sun, 11 May 2025 12:39:24 -0700 Subject: [PATCH] arduino mega --- .../Firmware-32Valve-Mega.ino | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 Arduino Firmware/Firmware-32Valve-Mega/Firmware-32Valve-Mega.ino diff --git a/Arduino Firmware/Firmware-32Valve-Mega/Firmware-32Valve-Mega.ino b/Arduino Firmware/Firmware-32Valve-Mega/Firmware-32Valve-Mega.ino new file mode 100644 index 0000000..401c848 --- /dev/null +++ b/Arduino Firmware/Firmware-32Valve-Mega/Firmware-32Valve-Mega.ino @@ -0,0 +1,138 @@ +// PINKCONNECTION2 Client Program for 32 Valve Systems (Arduino Mega) + +int byte1 = 0; +int byte2 = 0; +int byte3 = 0; +int byte4 = 0; +int byte5 = 0; +int byte6 = 0; +int byte7 = 0; +int byte8 = 0; + +void setup() +{ + for (int i = 22; i <= 53; i++) pinMode(i, OUTPUT); + Serial.begin(9600); + Serial.write("PC2,32,Universal,END"); +} + +void loop() +{ + if (Serial.available() > 7) + { + byte1 = Serial.read(); + byte2 = Serial.read(); + byte3 = Serial.read(); + byte4 = Serial.read(); + byte5 = Serial.read(); + byte6 = Serial.read(); + byte7 = Serial.read(); + byte8 = Serial.read(); + + if ((byte1 & 64) && (byte2 & 64) && (byte3 & 64) && (byte4 & 64) && (byte5 & 64) && (byte6 & 64) && (byte7 & 64) && (byte8 & 64)) + { + if (byte1 & 1) digitalWrite(22, 1); + else digitalWrite(22, 0); + + if (byte1 & 2) digitalWrite(23, 1); + else digitalWrite(23, 0); + + if (byte1 & 4) digitalWrite(24, 1); + else digitalWrite(24, 0); + + if (byte1 & 8) digitalWrite(25, 1); + else digitalWrite(25, 0); + + + if (byte2 & 1) digitalWrite(26, 1); + else digitalWrite(26, 0); + + if (byte2 & 2) digitalWrite(27, 1); + else digitalWrite(27, 0); + + if (byte2 & 4) digitalWrite(28, 1); + else digitalWrite(28, 0); + + if (byte2 & 8) digitalWrite(29, 1); + else digitalWrite(29, 0); + + + if (byte3 & 1) digitalWrite(30, 1); + else digitalWrite(30, 0); + + if (byte3 & 2) digitalWrite(31, 1); + else digitalWrite(31, 0); + + if (byte3 & 4) digitalWrite(32, 1); + else digitalWrite(32, 0); + + if (byte3 & 8) digitalWrite(33, 1); + else digitalWrite(33, 0); + + + if (byte4 & 1) digitalWrite(34, 1); + else digitalWrite(34, 0); + + if (byte4 & 2) digitalWrite(35, 1); + else digitalWrite(35, 0); + + if (byte4 & 4) digitalWrite(36, 1); + else digitalWrite(36, 0); + + if (byte4 & 8) digitalWrite(37, 1); + else digitalWrite(37, 0); + + + if (byte5 & 1) digitalWrite(38, 1); + else digitalWrite(22, 0); + + if (byte5 & 2) digitalWrite(39, 1); + else digitalWrite(23, 0); + + if (byte5 & 4) digitalWrite(40, 1); + else digitalWrite(24, 0); + + if (byte5 & 8) digitalWrite(41, 1); + else digitalWrite(25, 0); + + + if (byte6 & 1) digitalWrite(42, 1); + else digitalWrite(42, 0); + + if (byte6 & 2) digitalWrite(43, 1); + else digitalWrite(43, 0); + + if (byte6 & 4) digitalWrite(44, 1); + else digitalWrite(44, 0); + + if (byte6 & 8) digitalWrite(45, 1); + else digitalWrite(45, 0); + + + if (byte7 & 1) digitalWrite(46, 1); + else digitalWrite(46, 0); + + if (byte7 & 2) digitalWrite(47, 1); + else digitalWrite(47, 0); + + if (byte7 & 4) digitalWrite(48, 1); + else digitalWrite(48, 0); + + if (byte7 & 8) digitalWrite(49, 1); + else digitalWrite(49, 0); + + + if (byte8 & 1) digitalWrite(50, 1); + else digitalWrite(50, 0); + + if (byte8 & 2) digitalWrite(51, 1); + else digitalWrite(51, 0); + + if (byte8 & 4) digitalWrite(52, 1); + else digitalWrite(52, 0); + + if (byte8 & 8) digitalWrite(53, 1); + else digitalWrite(53, 0); + } + } +}