Hello everyone, beginner here, I have a problem. I'm trying to use a 2-digit 7-segment display to display, say "A1", when receiving the message '1' from my phone, sent with the Serial Bluetooth Monitor app. I tried this with both switch case and if, and they both didn't solve it.
When I give the signal '1', it only displays 'A'. I then give it another signal of '1', and it displays '1' (the other part of "A1").
What can I do so that, upon receiving a singular '1' message, the display goes through the complete multiplexing loop? Thank you in advance!
The program is so written, so that, upon receiving '2', it would display "A2" and, with '3', "A3".
Below is the code:
#include <BluetoothSerial.h>
#define A 18
#define B 19
#define C 0
#define D 2
#define E 15
#define F 17
#define G 16
#define DP 4
#define DIG1 22
#define DIG2 23
unsigned long timp = millis();
long interval=5;
int dig;
BluetoothSerial ESP_BT;
byte state1=LOW;
byte state2=LOW;
byte state3=LOW;
byte state4=LOW;
char inc = '\0';
void display7(int nr)
{
if(nr==1)
{if(millis()-timp>=interval)
{
if(dig==1)
{
digitalWrite(DIG1, LOW);
digitalWrite(DIG2, HIGH);
dig=2;
aprindeCh1(dig);
}
else
{
digitalWrite(DIG1, HIGH);
digitalWrite(DIG2, LOW);
dig=1;
aprindeCh1(dig);
}
timp=millis();
}}
if(nr==2)
{
if(millis()-timp>=interval)
{
if(dig==1)
{
digitalWrite(DIG1, LOW);
digitalWrite(DIG2, HIGH);
dig=2;
aprindeCh2(dig);
}
else
{
digitalWrite(DIG1, HIGH);
digitalWrite(DIG2, LOW);
dig=1;
aprindeCh2(dig);
}
timp=millis();
}
}
if(nr==3)
{
if(millis()-timp>=interval)
{if(dig==1)
{
digitalWrite(DIG1, LOW);
digitalWrite(DIG2, HIGH);
dig=2;
aprindeCh2(dig);
}
else
{
digitalWrite(DIG1, HIGH);
digitalWrite(DIG2, LOW);
dig=1;
aprindeCh3(dig);
}
timp=millis();
}
}
}
void setup()
{
Serial.begin(115200);
pinMode(A,OUTPUT);
pinMode(B,OUTPUT);
pinMode(C,OUTPUT);
pinMode(D,OUTPUT);
pinMode(E,OUTPUT);
pinMode(F,OUTPUT);
pinMode(G,OUTPUT);
pinMode(DP,OUTPUT);
pinMode(DIG1, OUTPUT);
pinMode(DIG2, OUTPUT);
dig=1;
ESP_BT.begin("ESP32_T3");
Serial.println("Ready to pair");
}
void loop()
{ if(ESP_BT.available())
{
inc=ESP_BT.read();
Serial.println("Paired");
Serial.write(inc);
switch(inc)
{
case '1':
display7(1);
break;
case '2':
display7(2);
break;
case '3':
display7(3);
break;
default:
Serial.println("Invalid code");
break;
}
}

