Hi!
I am trying to get a basic robotic arm using pneumatics to work. I am getting an "lvalue required as left operand of assignment" error at the end of my code (in my bool function).
Here is the code:
#include <WiFi.h>
// Solenoid control
int solIn1 = 10; //upper arm
int solOut1 = 11; //upper arm
int solIn2 = 12; // lower arm
int solOut2 = 13; //lower arm
//digital input from sensors
int sensor1 = 0;
int sensor2 = 0;
//input from user
char data = 0;
bool possibleInput();
//control variables
char cont1 = -1;
char cont2 = -1;
void setup() {
// set the digital pin as output:
pinMode(solIn1, OUTPUT);
pinMode(solOut1, OUTPUT);
pinMode(solIn2, OUTPUT);
pinMode(solOut2, OUTPUT);
pinMode (A0, INPUT); //sensor1
pinMode (A1, INPUT); //sensor2
Serial.begin(9600);
Serial.println("TRON ARM");
}
void loop() {
while (Serial.available()){
if (Serial.available() > 0)
{
// read input from user
// A = Upper arm up
// B = Upper arm down
// C = Lower arm up
// D = Lower arm down
data = Serial.read();
if (possibleInput(data)){
if (data = "A"){
digitalWrite (solIn1, HIGH);
digitalWrite (solOut1, LOW);
sensor1 = digitalRead(A0);
while(sensor1 != 1)
digitalWrite (solIn1, LOW);
cont1 = 0;
}
if (data = "B"){
digitalWrite (solOut1, HIGH);
digitalWrite (solIn1, LOW);
sensor1 = digitalRead(A0);
if(sensor1 = 1)
digitalWrite (solOut1, LOW);
cont1 = 0;
}
if (data = "C"){
digitalWrite (solIn2, HIGH);
digitalWrite (solOut2, LOW);
sensor1 = digitalRead(A1);
if(sensor1 = 1)
digitalWrite (solIn2, LOW);
cont2 = 0;
}
if (data = "D"){
digitalWrite (solOut2, HIGH);
digitalWrite (solIn2, LOW);
sensor1 = digitalRead(A1);
if(sensor2 = 1)
digitalWrite (solOut2, LOW);
cont2 = 0;
}
else delay (1000);
}
}
}
}
bool possibleInput(char data){
if (data = "A" && cont1 =! 1)
return true;
else if (data = "C" && cont2 =! 1)
return true;
else if (data = "B" && cont1 =! -1)
return true;
else if (data = "D" && cont2 =! -1)
return true;
else return false;
}
Any help would be greatly appreciated