/*
'* Name : Piston shuttle aid *
'* Author : Eng. Chavez Murga Arturo Alejandro *
'* Notice : Copyright (c) 2022 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 3/11/2022 *
'* Version : 1.7 *
'* Notes : Guapo *
'* : *
'****************************************************************
*/
// Define boolean inputs
boolean inA;
boolean inB;
boolean Enable;
boolean CoverOpen;
// Define boolean outputs
boolean outNAND;
// Define the pushbuttons
int S1 = 2;
int S2 = 3;
int S3 = 4;
int S4 = 5;
// Define the logic output LEDs
int ledNAND = 10;
// Define the logic input LEDs
int ledA = 12;
int ledB = 11;
int ledE = 9;
int COLed = 8;
void setup() {
// initialize serial port at 9600 bps:
Serial.begin(9600);
// Define signals as inputs
pinMode(S1, INPUT);//S1
pinMode(S2, INPUT);//S2
pinMode(S3, INPUT);//Enable
pinMode(S4, INPUT);//Cover Open
// Define LEDs as outputs
pinMode(ledNAND, OUTPUT);//Relay
pinMode(ledA, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(ledE, OUTPUT);
pinMode(COLed, OUTPUT);
}
void loop() {
//Clear Variables
inA = 0;//
inB = 0;
Enable = 0;
CoverOpen = 0;
digitalWrite(ledNAND, LOW);
inA = digitalRead(S1);
inB = digitalRead(S2);
Enable = digitalRead(S3);
CoverOpen = digitalRead(S4);
digitalWrite(ledA, inA);
digitalWrite(ledB, inB);
digitalWrite(ledE, Enable);
digitalWrite(COLed, CoverOpen);
while(CoverOpen == LOW){
Enable = digitalRead(S3);
digitalWrite(ledE, Enable);
if(Enable == HIGH){
delay(1859);
inA = digitalRead(S1);
inB = digitalRead(S2);
Enable = digitalRead(S3);
digitalWrite(ledE, Enable);
digitalWrite(ledA, inA);
digitalWrite(ledB, inB);
digitalWrite(COLed, CoverOpen);
CoverOpen = digitalRead(S4);
if(Enable == HIGH){
while(Enable==HIGH && CoverOpen==LOW)
{
inA = digitalRead(S1);
inB = digitalRead(S2);
Enable = digitalRead(S3);
CoverOpen = digitalRead(S4);
digitalWrite(ledA, inA);
digitalWrite(ledB, inB);
digitalWrite(COLed, CoverOpen);
digitalWrite(ledE, Enable);
if (outNAND = !(inA & inB)){
digitalWrite(ledA, inA);
digitalWrite(ledB, inB);
digitalWrite(ledNAND, HIGH);
delay(127);
digitalWrite(ledNAND, LOW);
delay(127);
}
}
}
}
}
// Display the results
Serial.print("IN-- A:");
Serial.print(inA);
Serial.print("IN-- B:");
Serial.print(inB);
Serial.print("Enable:");
Serial.print(Enable);
Serial.print(" -- OUT--:");
Serial.print(" NAND:");
Serial.print(outNAND);
Serial.print(" CO:");
Serial.print(CoverOpen);
delay(50);
}