What Integer Limit does Arduino Uno support?

Hi. I am making a project out of myself with NO ai. The project is simple. Every data sent from Bluetooth = every text written to SD card.

Check my devices on the latest message on this forum: Cannot RW Folders in 64G SD Card but can RW files - #9 by arduino_uno534

Code is simple:

#include <SPI.h> // SPI kütüphanesi eklendi
#include <SD.h> // SD kart kütüphanesi eklendi
#include <SdFat.h> // SDFat kütüphanesi eklendi 32G+ destekler
#include <SoftwareSerial.h>

SoftwareSerial bt_iletisim(7,6);

File dosya; // dosya adında bir File nesnesi oluşturuldu

void setup() 
{
  Serial.begin(115200); // SD karttan okunan verileri Serial monitöre daha hızlı aktarmak için 115200baud hızı seçildi
                        // aynı değişikliği Serial monitörünüzde önceden yapmayı unutmayın
  bt_iletisim.begin(15200);

  Serial.println("SD kart hazirlaniyor..."); 
  if(!SD.begin(4)) // SD kart CS bacağı 4 nolu dijital pine bağlı, SD kart takılı değilse
  {
    Serial.println("SD kart takili degil!!!");
    Serial.println("Lutfen SD kartinizi takiniz!!!");
    while(!SD.begin(4)); // kart takılana kadar beklenir
    Serial.println("SD kart kullanima hazir!!!"); // kart takılınca program devam eder
    delay(1000); // 1 saniye isteğe bağlı bekleme 
  }
  else
  {
    Serial.println("SD kart kullanima hazir!!!"); // kart takılı ise program devam eder
    delay(1000); // 1 saniye isteğe bağlı bekleme 
  }
  
}

void loop()
{
    Serial.println("-----------------LRT SD KART TEST-----------------");
    
    char okunan[100]; // 100 karakterlik char tipinde boş bir dizi tanımlandı
    int i=0; // okunacak karakter sayısı için sınır değişken başlangıçta sıfır

    // Attempt to create folders
    Serial.println("Folder olusturma testleri basliyor...");
    if (SD.mkdir("/Empty_Flashable_Zip")) {
    Serial.println("The Empty_Flashable_Zip in root was sucsessfully created.");
    }
    else {
    Serial.println("The Empty_Flashable_Zip in root was NOT sucsessfully created!");
    }

    
    dosya = SD.open("LRT.txt",FILE_WRITE); // LRT.txt adlı bir dosya üzerine veri yazılmak üzere oluşturulup açılıyor.
    dosya.println(123.456789,6); // açılan dosyaya 123.456789 sayısı yazılıyor dondaki 6 ondalıklı 
                                 // kısmın kaç basamağının yazılacağını belirtiyor
    dosya.close(); // yazma işlemi bitti dosya kapatılıyor

    Serial.println("123.456789 sayisi SD Karta Yazildi...");
    
    dosya = SD.open("LRT.txt",FILE_READ); // aynı dosya bu sefer okunmak için açılıyor
    while (dosya.available()) // dosyada karakter olduğu sürece while döngüsü devam ediyor
    {
       okunan[i] = dosya.read(); // ilk karakterden başlayıp her döngüde bir sonraki karakteri 
                                 // boş dizi değişkenine aktarıyoruz
       i++; 
       if(i==) // 12 karakter sınırı koyduk bundan fazla karakter okunmayacak dosyadan
       {
        break; // okunmaya kalkışılırsa while döngüsü sonlandırılır programa devam edilir
       }
    }
    dosya.close(); // dosya kapatılıyor
    
    float okunan_rakam = atof (okunan); // okunan karakter dizisi float tipinde tam sayıya dönüştürülüyor
    Serial.println(okunan_rakam,6); // ekrana dosyadan okunan ve float tipinde tam sayıya çevrilmiş hali
                                    // Serial monitöre yazdırılıyor, ondalıklı kısım 6 basamaklı olacak şekilde.
                                    //  çıktı 123.456771 oluyor gerçekte kaydedilen değer ise 123.456787 oluyor
    Serial.println("Yazdınız. Şimdi Bluetooth ile deneyin!");
    if (bt_iletisim.available()) {
      char data = bt_iletisim.read();
    dosya.println(data);
    Serial.println(data);
  }
    while(1); // program sonu loop tekrarını istemiyorum şimdilik
}

But when in here: char okunan[]; // 100 karakterlik char tipinde boş bir dizi tanımlandı and here: if(i==) // 12 karakter sınırı koyduk bundan fazla karakter okunmayacak dosyadan I want to set the INTEGER limit so i can have more text.

Look here

More than 100 char variables in your array? That will be limited by the available RAM. a type char is 1 byte. When you compile (or upload) the IDE should report how much memory is used and available.

I'd guess that char okunan[200]; would be fine... But I did not study your code so I don't know if that makes sense.

Let me give my project: (Already uploaded at okunan[100])

#include <SPI.h> // SPI kütüphanesi eklendi
#include <SD.h> // SD kart kütüphanesi eklendi
#include <SdFat.h> // SDFat kütüphanesi eklendi 32G+ destekler
#include <SoftwareSerial.h>

SoftwareSerial bt_iletisim(7,6);

File dosya; // dosya adında bir File nesnesi oluşturuldu
long number9999 = 2147483647;

void setup() 
{
  Serial.begin(115200); // SD karttan okunan verileri Serial monitöre daha hızlı aktarmak için 115200baud hızı seçildi
                        // aynı değişikliği Serial monitörünüzde önceden yapmayı unutmayın
  bt_iletisim.begin(15200);

  Serial.println("SD kart hazirlaniyor..."); 
  if(!SD.begin(4)) // SD kart CS bacağı 4 nolu dijital pine bağlı, SD kart takılı değilse
  {
    Serial.println("SD kart takili degil!!!");
    Serial.println("Lutfen SD kartinizi takiniz!!!");
    while(!SD.begin(4)); // kart takılana kadar beklenir
    Serial.println("SD kart kullanima hazir!!!"); // kart takılınca program devam eder
    delay(1000); // 1 saniye isteğe bağlı bekleme 
  }
  else
  {
    Serial.println("SD kart kullanima hazir!!!"); // kart takılı ise program devam eder
    delay(1000); // 1 saniye isteğe bağlı bekleme 
  }
  
}

void loop()
{
    Serial.println("-----------------LRT SD KART TEST-----------------");
    
    char okunan[100]; // 100 karakterlik char tipinde boş bir dizi tanımlandı
    int i=0; // okunacak karakter sayısı için sınır değişken başlangıçta sıfır

    // Attempt to create folders
    Serial.println("Folder olusturma testleri basliyor...");
    if (SD.mkdir("/Empty_Flashable_Zip")) {
    Serial.println("The Empty_Flashable_Zip in root was sucsessfully created.");
    }
    else {
    Serial.println("The Empty_Flashable_Zip in root was NOT sucsessfully created!");
    }

    
    dosya = SD.open("LRT.txt",FILE_WRITE); // LRT.txt adlı bir dosya üzerine veri yazılmak üzere oluşturulup açılıyor.
    dosya.println(123.456789,6); // açılan dosyaya 123.456789 sayısı yazılıyor dondaki 6 ondalıklı 
                                 // kısmın kaç basamağının yazılacağını belirtiyor
    dosya.close(); // yazma işlemi bitti dosya kapatılıyor

    Serial.println("123.456789 sayisi SD Karta Yazildi...");
    
    dosya = SD.open("LRT.txt",FILE_READ); // aynı dosya bu sefer okunmak için açılıyor
    while (dosya.available()) // dosyada karakter olduğu sürece while döngüsü devam ediyor
    {
       okunan[i] = dosya.read(); // ilk karakterden başlayıp her döngüde bir sonraki karakteri 
                                 // boş dizi değişkenine aktarıyoruz
       i++; 
       if(i==number9999) // 12 karakter sınırı koyduk bundan fazla karakter okunmayacak dosyadan
       {
        break; // okunmaya kalkışılırsa while döngüsü sonlandırılır programa devam edilir
       }
    }
    dosya.close(); // dosya kapatılıyor
    
    float okunan_rakam = atof (okunan); // okunan karakter dizisi float tipinde tam sayıya dönüştürülüyor
    Serial.println(okunan_rakam,6); // ekrana dosyadan okunan ve float tipinde tam sayıya çevrilmiş hali
                                    // Serial monitöre yazdırılıyor, ondalıklı kısım 6 basamaklı olacak şekilde.
                                    //  çıktı 123.456771 oluyor gerçekte kaydedilen değer ise 123.456787 oluyor
    Serial.println("Yazdınız. Şimdi Bluetooth ile deneyin!");
    if (bt_iletisim.available()) {
      char data = bt_iletisim.read();
    dosya.println(data);
    Serial.println(data);
  }
    while(1); // program sonu loop tekrarını istemiyorum şimdilik
}

this all eats memory

better

long number9999 = 2147483647LL;

I erased all of my data and God thank i did open the forum.

Made a website: (in development) enessmr.github.io

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.