Due to insufficient info on my previous problem, and since i'm pretty new in this,i redo my code with BWD in mind. This is my first try.
The basic setup is 2 sonar distance sensors.Everything is set correctly hardware wise(either way with delay() style code everything works fine) and in Serial.Print I'm able to see the distance of both sensors as they calculate.My issue is that only FRsensor prints in lcd while RRsensor stays 0.0
//code is a snippet only!
unsigned long frmillis;
unsigned long rrmillis;
unsigned long cmillis;
unsigned long printmillis;
int lblink_p = 50;
int frsensor_p = 10; //read period frsensor
int rrsensor_p = 20; //read period rrsensor
int button_p = 50;
int print_p = 5000; //print period
void setup() {
frmillis = millis();
rrmillis = millis();
printmillis = millis();
pinMode(FRtrigPin, OUTPUT);
pinMode(FRechoPin, INPUT);
pinMode(RRtrigPin, OUTPUT);
pinMode(RRechoPin, INPUT);
}
void loop() {
cmillis = millis();
if (cmillis - rrmillis >= rrsensor_p) {
digitalWrite(RRtrigPin, LOW);
delayMicroseconds(2);
digitalWrite(RRtrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(RRtrigPin, LOW);
RRduration = pulseIn(RRechoPin, HIGH);
float RRdistance = RRduration * 0.034 / 2;
rrmillis = cmillis;
//in serial.print here gives correct distance!
}
if (cmillis - frmillis >= frsensor_p) {
digitalWrite(FRtrigPin, LOW);
delayMicroseconds(2);
digitalWrite(FRtrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(FRtrigPin, LOW);
FRduration = pulseIn(FRechoPin, HIGH);
FRdistance = FRduration * 0.034 / 2;
frmillis = cmillis;
}
if (cmillis - printmillis >= print_p) {
lcd.setCursor(9, 1);
lcd.print(RRdistance, 1);
//In Serial.print here it goes 0,0
lcd.setCursor(9, 0);
lcd.print(FRdistance, 1);
printmillis = cmillis;
}
}