initial checkin

This commit is contained in:
2021-12-14 18:34:54 +01:00
commit ddb24de04a

178
UARTBridge3dDrucker.ino Normal file
View File

@@ -0,0 +1,178 @@
/*
Blink
Turns an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://www.arduino.cc/en/Main/Products
modified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Blink
*/
#define RELAY1 2
#define RELAY2 3
#define RELAY3 4
#define RELAY4 5
unsigned int relay[4] = { RELAY1, RELAY2, RELAY3, RELAY4 };
#define BUTTON1 6
#define BUTTON2 7
#define BUTTON3 8
#define BUTTON4 9
unsigned int button[4] = { BUTTON1, BUTTON2, BUTTON3, BUTTON4 };
#define OPTO1 10
boolean relayState[4];
boolean buttonState[4];
boolean buttonLastState[4];
boolean buttonPressed[4];
boolean optoState;
String inString;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
pinMode(OPTO1, OUTPUT);
pinMode(BUTTON1, INPUT_PULLUP);
pinMode(BUTTON2, INPUT_PULLUP);
pinMode(BUTTON3, INPUT_PULLUP);
pinMode(BUTTON4, INPUT_PULLUP);
digitalWrite(RELAY1, HIGH);
digitalWrite(RELAY2, HIGH);
digitalWrite(RELAY3, HIGH);
digitalWrite(RELAY4, HIGH);
digitalWrite(OPTO1, LOW);
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
optoState = false;
for (int i=0;i<4;i++){
buttonState[i] = digitalRead(button[i]);
buttonLastState[i] = buttonState[i];
relayState[i] = false;
}
}
// the loop function runs over and over again forever
void loop() {
for (int i=0;i<4;i++){
//generate the button states...
//Button i press
buttonState[i] = digitalRead(button[i]);
if ((buttonState[i] != buttonLastState[i]) && (buttonState[i] == LOW)){
buttonPressed[i] = true;
} else {
buttonPressed[i] = false;
}
buttonLastState[i] = buttonState[i];
//invert relay if button i is pressed:
if (buttonPressed[i]){
if (relayState[i] == false){
Serial.print("Command executed: RELAY");Serial.print(i+1);Serial.println("=ON");
digitalWrite(relay[i], LOW);
relayState[i] = true;
} else {
Serial.print("Command executed: RELAY");Serial.print(i+1);Serial.println("=OFF");
digitalWrite(relay[i], HIGH);
relayState[i] = false;
}
delay(250);
}
}
//check for new command...
if (Serial.available() > 0) {
// get incoming byte:
inString = Serial.readString();
Serial.print("Command executed: ");
Serial.print(inString);
if (inString.indexOf("LED=ON") >= 0){
digitalWrite(LED_BUILTIN, HIGH);
} else
if (inString.indexOf("LED=OFF") >= 0){
digitalWrite(LED_BUILTIN, LOW);
} else
if (inString.indexOf("RELAY1=ON") >= 0){
digitalWrite(RELAY1, LOW);
relayState[0] = true;
} else
if (inString.indexOf("RELAY1=OFF") >= 0){
digitalWrite(RELAY1, HIGH);
relayState[0] = false;
} else
if (inString.indexOf("RELAY2=ON") >= 0){
digitalWrite(RELAY2, LOW);
relayState[1] = true;
} else
if (inString.indexOf("RELAY2=OFF") >= 0){
digitalWrite(RELAY2, HIGH);
relayState[1] = false;
} else
if (inString.indexOf("RELAY3=ON") >= 0){
digitalWrite(RELAY3, LOW);
relayState[2] = true;
} else
if (inString.indexOf("RELAY3=OFF") >= 0){
digitalWrite(RELAY3, HIGH);
relayState[2] = false;
} else
if (inString.indexOf("RELAY4=ON") >= 0){
digitalWrite(RELAY4, LOW);
relayState[3] = true;
} else
if (inString.indexOf("RELAY4=OFF") >= 0){
digitalWrite(RELAY4, HIGH);
relayState[3] = false;
} else
if (inString.indexOf("OPTO1=ON") >= 0){
digitalWrite(OPTO1, HIGH);
optoState = true;
} else
if (inString.indexOf("OPTO1=OFF") >= 0){
digitalWrite(OPTO1, LOW);
optoState = false;
}
}
}