I keep getting this wierd simbol when i try printing some data.
#include <SoftwareSerial.h>
SoftwareSerial esp8266(2,3); //TX, RX
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
esp8266.begin(9600);
lcd.begin(); //LCD BEGIN
lcd.backlight();
}
int positions[80];
String old_data="";
String data;
int numbero;
bool unread = false;
void loop() {
bool cond = false;
//Check to see if anything is available in the serial receive buffer
while (esp8266.available()) {
data = esp8266.readString();
cond = true;
}
if(data != old_data && cond == true)
{
old_data = data;
unread = true;
Serial.println(data);
while(data.indexOf("️") != -1)
{
int index = data.indexOf("️");
data.remove(index,3);
}
Serial.println(data);
hearth();
Serial.println(data);
print_lcd();
}
}
void print_lcd()
{
lcd.clear();
int j =20;
for(int i = 0;i<=data.length();i+=20)
{
lcd.setCursor(0,i/20);
lcd.print(data.substring(i,j));
Serial.println(data.substring(i,j));
j+=20;
}
for(int i = 0;i< numbero;i++)
{
int nr = positions[i]/20;
lcd.setCursor(positions[i] - (20*nr),nr);
lcd.print("&");
Serial.println(positions[i]);
}
numbero = 0;
memset(positions, 0, sizeof(positions));
}
void hearth()
{
int index = data.indexOf("❤");
int of = 2;
if(index != -1)
{
positions[numbero] = index;
numbero++;
}
//Serial.println(index);
//Serial.println(data.lastIndexOf("❤"));
while(index != data.lastIndexOf("❤"))
{
index = data.indexOf("❤",index + 1);
//Serial.println(index - of);
positions[numbero] = index - of;
of += 2;
numbero++;
}
data.replace("❤"," ");
}