I dont know why i dont have sram. Arduino nano

Hello, my name is Sasha, and im 13
years old. Today i tried to do menu for my arduino nano. When i load it and tried to see position of joysticks(in code X,Y,XT,YT) i saw something stupid. You can see on the video:12 апреля 2023 г. - YouTube i think i have no sram, but why? When i compile the sketches i see that's my sketch take 16% of memory, and 15% sram. Im new in arduino, what it can be?
Because i usually cant use PC i upload my code in arduino by phone, and i writing it in arduino studio
Here's code like hex file that i uploaded in arduino on video:

#include <SSD1306Ascii.h>
#include <SSD1306AsciiAvrI2c.h>
#include <EEPROM.h>
#include <avr/sleep.h>

#define pinX A2      // ось X джойстика
#define pinY A0      // ось Y джойстика
#define pinXT A6
#define pinYT A5
#define I2C_ADDRESS 0x3C
#define RST_PIN -1
byte inMenu = 1;
int belpr;
int rusupr;
bool rusuprflag;
bool belprflag;
SSD1306AsciiAvrI2c oled;
void setup() {
  Serial.begin(9600);
  pinMode(pinX, INPUT);
  pinMode(pinY, INPUT);
  #if RST_PIN >= 0
  oled.begin(&Adafruit128x64, I2C_ADDRESS, RST_PIN);
#else   // RST_PIN >= 0
  oled.begin(&Adafruit128x64, I2C_ADDRESS);
#endif  // RST_PIN >= 0 
        // Call oled.setI2cClock(frequency) to change from the default frequency.
  oled.setFont(Adafruit5x7);
  oled.println("Hello Sahsa!");
  delay(3000);
  oled.clear();
  InMenu1();
}
void InMenu1()
{ 
  oled.setCursor(0,0);
  inMenu = 1;
  oled.println("Write Homework");
  oled.println("Games");
  oled.println("Settings");
  
  if(belprflag == 1)
  {
    EEPROM.put(0,belpr);
    belprflag = 0;
  }
  if(belprflag == 0)
  {
    EEPROM.get(0,belpr);
  }
  if(rusuprflag == 1)
  {
    EEPROM.put(2,rusupr);
    rusuprflag = 0;
  }
  if(rusuprflag == 0)
  {
    EEPROM.get(2,rusupr);
  }
}
void SettingsInMenu3()
{
  oled.clear();
  oled.setCursor(0,0);
  inMenu = 3;
  oled.println("joywork");
}
void HomeworkInMenu2()
{
  oled.clear();
  oled.setCursor(0,0);
  inMenu = 2;
  oled.println("Belarussian(right)" + belpr);
  oled.println("Russian(left)" + rusupr);
}
void BLHWInMenu4()
{
  oled.clear();
  oled.setCursor(0,0);
  oled.println("Belarussian");
  oled.print("pr  ");
  oled.setCursor(0,100);
  oled.println(belpr + "       ");
  belprflag = 1;
}
void loop()
{
  int X = analogRead(pinX);
  int Y = analogRead(pinY);
  int XT = analogRead(pinXT);
  int YT = analogRead(pinYT);
  if(inMenu == 1)
  {
  if(X < 200)  //вниз
  {
    SettingsInMenu3();
  }
  if(X > 800) //вверх
  {
    HomeworkInMenu2();
  }
  if(Y > 800) //вправо
  {
    //oled.clear();
    //GamesInMenu4();
  }
  if(Y < 200) //влево
  {
    
  }
}
if(inMenu == 3)
{
  oled.println("X:" + X);
  oled.println("Y:" + Y);
  oled.println("XT:" + XT);
  oled.println("YT:" + YT);
}
if(inMenu == 2)
{
  if(Y < 200) //влево
  {
    inMenu = 4;
    BLHWInMenu4();
  }
  if(Y > 800) //вправо
  {
    inMenu = 5;
   // RusHWInMenu5();
  }
}
if(inMenu == 4)
{
  if(Y < 200)
  {
    belpr = 0;
    BLHWInMenu4();
  }
  if(Y > 800)
  {
    belpr++;
    BLHWInMenu4();
  }
  if(X > 800)
  {
    belpr = belpr + 10;
    BLHWInMenu4();
  }
  if(X < 200)
  {
    belpr = belpr + 100;
    BLHWInMenu4();
  }
}
}

The best place to start is to see if the Arduino Blink example uploads and runs. Files>Examples>01.Basics>Blink

It is extremely unlikely that you don't have SRAM. It is part of the MCU chip itself.

I mean: what can take so many sram, and if problem not in sram in what problem?

I try blink now

Blink works good.

Then your Arduino is working well.

The program you posted does use a lot of SRAM (mostly for the display) and may be too large for the Arduino you have. Learn starting with small programs, and work upwards.

You asked a good question. That number shows the amount of SRAM used in your fixed variables and messages when not using the "F" macro. That 15% is telling you have 100% - 15& = 85% left. It is impossible to write code for the Arduino without using some SRAM so if your code works the SRAM works. When it gets over 80% you are headed for trouble, depending on the code.

How do you know you're out of SRAM?

The behavior looks like what happens when you do not correctly clear the OLED before printing. It seems like in your loop(), you never clear the display, so each call to println is just wriitng in the same place.

It should write :
joywork

X:575
Y:897
XT:566
YT:838
XT, YT, X, Y, It takes from 2 joysticks, but it place text things. For me arduino is a new development platform, and i dont know what is can be. I think it can be sram but idk

I try to place in my code oled.clear();
But i think it cant work anyway, because why display printing words from code?

I send message after ~2h im not at home now i try it

Саша, I have seen your video and did not see why you concluded that you do not have enough sram ?

My joysticks should display information about its x,y,xt,yt on display, but they're displaying something like ck^^`~ or XT:^^^* or Y::::"@ if i try to drag joysticks more it will display Hello Sahsa!(you cant see it on video) or etc.

Here is 2 videos: here i placed oled.clear(); and load it to arduino 13 апреля 2023 г. - YouTube
Here is i writed fast test display 13 апреля 2023 г. - YouTube
Here is display test code:

#include <SSD1306Ascii.h>
#include <SSD1306AsciiAvrI2c.h>
#include <EEPROM.h>
#include <avr/sleep.h>

#define pinX A2      // ось X джойстика
#define pinY A0      // ось Y джойстика
#define pinXT A6
#define pinYT A5
#define I2C_ADDRESS 0x3C
#define RST_PIN -1
String a = "this is a display test";
String b = "All this text is string";
String c = "aboba";
String d = "aboobaaboobaaboobaaboobaaboobaabooba";
String e = "pon";
SSD1306AsciiAvrI2c oled;
void setup() {
  Serial.begin(9600);
  pinMode(pinX, INPUT);
  pinMode(pinY, INPUT);
  #if RST_PIN >= 0
  oled.begin(&Adafruit128x64, I2C_ADDRESS, RST_PIN);
#else   // RST_PIN >= 0
  oled.begin(&Adafruit128x64, I2C_ADDRESS);
#endif  // RST_PIN >= 0 
        // Call oled.setI2cClock(frequency) to change from the default frequency.
  oled.setFont(Adafruit5x7);
  oled.println("Hello Sahsa!");
  delay(3000);
  oled.clear();
}
void loop()
{
  oled.clear();
  oled.println(a);
  delay(1000);
  oled.clear();
  oled.println(b);
  delay(1000);
  oled.clear();
  oled.println(c);
  delay(1000);
  oled.clear();
  oled.setCursor(50,50);
  oled.println(d);
  delay(500);
  oled.setCursor(0,0);
  oled.println(d);
  delay(500);
  oled.setCursor(10,10);
  oled.println(d);
  delay(500);
  oled.setCursor(20,20);
  oled.println(d);
  delay(500);
  oled.setCursor(30,30);
  oled.println(d);
  delay(500);
  oled.setCursor(40,40);
  oled.println(d);
  delay(500);
  oled.setCursor(60,60);
  oled.println(d);
  delay(500);
  oled.setCursor(64,64);
  oled.println(e);
  delay(500);
  oled.clear();
  oled.setCursor(50,50);
  oled.println("and again!");
  delay(2000);
}