Hi!
i make a code for 2 water tank, both of them 1M what if i want setup my device on difrent water tank
first one 1M the other one 2M ?
my problem is the code give the size for both tanks, so i must have the same size for both tanks
this is my code
#include <LiquidCrystal.h>
#define ECHOPIN 3 // Pin to receive echo pulse
#define TRIGPIN 4 // Pin to send trigger pulse
#define ECHO_PIN2 6 // Pin to receive echo pulse2
#define TRIG_PIN2 5 // Pin to send trigger pulse2
#define STATUSPIN 13 // Use for troubleshooting
int highWater = 30; // These values allow to calculate % of full
int lowWater = 100 ; // SRF04 hangs above water (lower distance = more water)
byte symbol[8] = { // Custom character for LCD display
B00000,
B11111,
B11111,
B11111,
B11111,
B11111,
B00000,
};
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // Assign pins
// Utility function for flashing STATUSPIN
void flashLed(int pin, int times, int wait) {
for (int i = 0; i < times; i++) {
digitalWrite(pin, HIGH);
delay(wait);
digitalWrite(pin, LOW);
if (i + 1 < times) {
delay(wait);
}
}
}
void setup() {
lcd.begin(16,2);
lcd.print(" AQUA LEVEL ");
lcd.createChar(0, symbol);
pinMode(ECHOPIN, INPUT);
pinMode(TRIGPIN, OUTPUT);
pinMode(ECHO_PIN2, INPUT);
pinMode(TRIG_PIN2, OUTPUT);
delay(3000); // Show application name for 3 seconds.
}
void loop() {
// Measure distance
digitalWrite(TRIGPIN, LOW); // Set the trigger pin to low for 2uS
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH); // Send a 10uS high to trigger ranging
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW); // Send pin low again
int distance = pulseIn(ECHOPIN, HIGH); // Read in times pulse
distance= distance/58; // divide by 58 gives cm.
// Measure distance 2
digitalWrite(TRIG_PIN2, LOW); // Set the trigger pin to low for 2uS
delayMicroseconds(2);
digitalWrite(TRIG_PIN2, HIGH); // Send a 10uS high to trigger ranging
delayMicroseconds(10);
digitalWrite(TRIG_PIN2, LOW); // Send pin low again
int distance2 = pulseIn(ECHO_PIN2, HIGH); // Read in times pulse
distance2= distance2/58; // divide by 58 gives cm.
// Convert measured value1 to value between 0-11, to display on LCD
// Use Arduino built-in map and constrain functions
int scaledValue = map(constrain(distance, highWater, lowWater), lowWater, highWater, 0, 15);
lcd.clear();
lcd.print("E | F1");
lcd.setCursor(0,1);
while (scaledValue > 0) {
lcd.print((char)0);
scaledValue--;
}
delay(3000); // Wait 2 seconds before printing the 2nd value.
// Convert measured value2 to value between 0-11, to display on LCD
// Use Arduino built-in map and constrain functions
int scaledValue2 = map(constrain(distance2, highWater, lowWater), lowWater, highWater, 0, 15);
lcd.clear();
lcd.print("E | F2");
lcd.setCursor(0,1);
while (scaledValue2 > 0) {
lcd.print((char)0);
scaledValue2--;
}
delay(3000); // Wait 2 seconds before measuring again. We're in no hurry!
}