Trying to understand what I did wrong.
Using a ESP32 dev kit 1
keeps thinking the Cfsrvalue value is high enough to make the "if" statement true.
thanks.
const int Carfsr = 34; //pin link for car side FSR
const int Phonefsr = 35; //pin link for phone side FSR
const int QiwirelessI = 32; //pink link for Qi wireless chearger
const int Threeway = 27; //pin link for 3 way electronic valve
const int PumpL = 26; // pin link for Pump
const int Mswitch = 25; // manual switch
int Cfsrvalue = 0; // setting value for car side to start at 0
int Pfsrvalue = 0; // setting value for phone side to start at 0
int ManualS;
int QwirelessA;
void setup()
{
Serial.begin(115200);
delay(1000);
// Setting pins I/O mode
pinMode(Threeway, OUTPUT);
pinMode(PumpL, OUTPUT);
pinMode(Mswitch, INPUT);
pinMode(QiwirelessI, INPUT);
pinMode(Carfsr, INPUT);
pinMode(Phonefsr, INPUT);
// Setting pin state
digitalWrite(Threeway, LOW);
digitalWrite(PumpL, LOW);
digitalWrite(Mswitch, LOW);
digitalWrite(QiwirelessI, HIGH);
int adcAttachPin(Carfsr);
}
void loop()
{
// Manual switch reading
ManualS = digitalRead(Mswitch);
// Qi wireless charger current sensor trigger reading
QwirelessA = digitalRead(QiwirelessI);
// Presure reading from car side
Cfsrvalue = analogRead(Carfsr);
// Presure reading from phone side
Pfsrvalue = analogRead(Phonefsr);
// if both manual switch and phone is on
if( ManualS == HIGH && QwirelessA == LOW)
{
digitalWrite(Threeway, HIGH);
delay(10);
digitalWrite(PumpL, HIGH);
}
// manual switch pump trigger
if( ManualS == HIGH )
{
digitalWrite(Threeway, HIGH);
delay(10);
digitalWrite(PumpL, HIGH);
}
if( ManualS == LOW )
{
digitalWrite(Threeway, LOW);
delay(10);
digitalWrite(PumpL, LOW);
}
// wireless charger current senese pump trigger
if (QwirelessA == LOW)
{
digitalWrite(PumpL, HIGH);
}
// on condtions for car presure
if( Cfsrvalue >= 3000 || Cfsrvalue <= 3800)
{
digitalWrite(Threeway,HIGH);
digitalWrite(PumpL, HIGH);
delay(1000);
Serial.println(Cfsrvalue);
}
Serial.println(Cfsrvalue);
Serial.println(ManualS);
Serial.println(QwirelessA);
}
You are testing for smaller than or equal 3000.
sorry that was something I was trying out, look again.
analogRead only returns values in the range 0-1023
Print the values of those variables that you're getting from analogRead for debugging purposes.
analogRead only returns values in the range 0-1023
Print the values of those variables that you're getting from analogRead for debugging purposes.
"Reading an analog value with the ESP32 means you can measure varying voltage levels between 0 V and 3.3 V.
The voltage measured is then assigned to a value between 0 and 4095, in which 0 V corresponds to 0, and 3.3 V corresponds to 4095. Any voltage between 0 V and 3.3 V will be given the corresponding value in between."
https://randomnerdtutorials.com/esp32-adc-analog-read-arduino-ide/
I followed this website guide.
Place the print before the if statement to make sure you know what the A/D converter results are.
Is this the section of code you are asking about?
// on condtions for car presure
if( Cfsrvalue >= 3000 || Cfsrvalue <= 3800)
{
digitalWrite(Threeway,HIGH);
digitalWrite(PumpL, HIGH);
delay(1000);
Serial.println(Cfsrvalue);
}
The if statement will be true if Cfsrvalue is >= 3000 OR Cfsrvalue is <= 3800. How can that ever be false? One or the other condition will always be true, for values from 3000 to 3800 both will be true. For the if statement to be false, both conditions must be false.
It looks like you were intending to call this function but what you really did was declare a function prototype so this line of code does nothing.
int adcAttachPin(Carfsr);
Hi,
I think you wanted;
// on condtions for car presure
if( Cfsrvalue >= 3000 && Cfsrvalue <= 3800)
{
digitalWrite(Threeway,HIGH);
digitalWrite(PumpL, HIGH);
delay(1000);
Serial.println(Cfsrvalue);
}
&& AND, not || OR, for Cfsrvalue to be true between 3000 and 3800.
Tom.... :)
Ahh yes I see now, looks like this fixed the issue.
and yes the int adcAttachPin code was for testing as I thought it was conflicting for the pin, and I read that command clear all others.
Thanks
this helped immensely