What to add on this code to check my pins state during run? And how can i trigger error using Visual basic when 1 of my pin is disconnected?
String input = "";
void setup(){
Serial.begin(9600); // Sets up communication with the serial port
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT); // for start of program operation
pinMode(12,OUTPUT); // for stop of program operation
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
}
void loop(){
int recipe;
//Serial.print("Enter recipe number: ");
while(Serial.available()==0){ // Waits for data from serial port
}
while(Serial.available() > 0){
int data = Serial.read();
// convert the incoming byte to a char
// and add it to the string
input += (char)data;
recipe = input.toInt()+'0'; //recipe=0 if not a digit
if(recipe == '0')
recipe = data;
if(data == '\n'){
//Serial.print("Recipe: ");
//Serial.println(recipe);
//Serial.print("String: ");
//Serial.println(input);
input = "";
}
}
if(recipe == 's'){
digitalWrite(11,HIGH);
delay(1000);
digitalWrite(11,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}
else if(recipe == 't'){
digitalWrite(12,HIGH);
delay(1000);
digitalWrite(12,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}
else if(recipe>'0' && recipe<'32'){
recipe = recipe-'0';
char binary[7] = {0}; // This is where the binary representation will be stored
recipe += 32; // Adding 32 so that there will always be 6 digits in the string
itoa(recipe,binary,2); // Convert recipe to a string of base 2 and save it in array 'binary'
char* signals = binary + 1; // Get rid of the most significant digit to get the 5 bits
//Serial.print(signals); // Print out the signals in binary
int i;
for(i=0; i<5; i++){
if(signals[i] == '0')
signals[i] = '1';
else
signals[i] = '0';
digitalWrite(i+6, signals[i]-'0'); // write to pin; converts the bit of the string to HIGH or LOW
//Serial.print(signals[i]);
}
}
else
loop();
}