Εμφάνιση αποτελεσμάτων : 1 έως 4 από 4

Θέμα: Μνήμη Arduino

  1. #1
    Μέλος Το avatar του χρήστη Eximnos
    Όνομα
    Γιάννης
    Εγγραφή
    Jul 2017
    Περιοχή
    Αθήνα
    Μηνύματα
    165

    Προεπιλογή Μνήμη Arduino

    Καλησπέρα κύριοι,

    Ασχολούμαι με ένα project το οποίο θέλω να υλοποιήσω με arduino.

    Οδηγώ μια λεντοσειρά για να φτιάξω ένα matrix. με 32 led έχω την παρακάτω απάντηση

    Sketch uses 11120 bytes (36%) of program storage space. Maximum is 30720 bytes.
    Global variables use 1778 bytes (86%) of dynamic memory, leaving 270 bytes for local variables. Maximum is 2048 bytes.
    Low memory available, stability problems may occur.

    και με 120 led που είναι ο στόχος μου έχω την παρακάτω...

    Global variables use 5210 bytes (254%) of dynamic memory, leaving -3162 bytes for local variables. Maximum is 2048 bytes.
    Not enough memory; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing your footprint.
    Error compiling for board Arduino Nano.


    Ποιά πιστεύετε οτι είναι η λύση?

    Ο Mega θα με καλύψει?

    https://www.arrow.com/en/research-an...-mega-vs-micro

    0 Not allowed! Not allowed!

  2. #2
    Μέλος Το avatar του χρήστη Eximnos
    Όνομα
    Γιάννης
    Εγγραφή
    Jul 2017
    Περιοχή
    Αθήνα
    Μηνύματα
    165

    Προεπιλογή

    Να δώσω λίγο παραπάνω πληροφορία...

    Πρόκειται για ένα ρολόι το οποίο λέει την ώρα ανα πεντάλεπτο ανάβοντας τα αντίστοιχα led πάνω σε ένα πάνελ. Το πάνελ αποτελείται από διευθυνσιοδοτούμενη ledοταινία.
    Παρακάτω είναι ο κώδικας που τρέχει οριακά σε arduino nano και UNO.

    Σίγουρα δεν είναι καλός κώδικας...
    Τον παραθέτω παρακάτω, όποια ιδέα έχει κανείς για αντίστοιχη και πιο "οικονομική" υλοποίηση ευπρόσδεκτη.



    #include <Wire.h> //Ρουτίνα συνδεσης RTC με Arduino (I2C communication)
    #include <DS1307.h> //Ρουτίνα για το RTC 1307

    #include <FastLED.h> //Ρουτίνα χρήσης των Led
    #define LED_PIN 2 //Pin οδήγησης LED
    #define NUM_LEDS 32 //Συνολικός αριθμός LED


    //Δήλωση μεταβλητών
    DS1307 rtc;
    CRGB leds[NUM_LEDS];
    int color[3] = {000, 300, 040}; // Χρωματισμός LED (Red Green Blue)<<<<<<<<<


    boolean one[NUM_LEDS] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean two[NUM_LEDS] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean three[NUM_LEDS] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean four[NUM_LEDS] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean five[NUM_LEDS] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean six[NUM_LEDS] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean seven[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean eight[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean nine[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean ten[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean eleven[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean twelve[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean thirteen[NUM_LEDS] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean fourteen[NUM_LEDS] = {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean fifteen[NUM_LEDS] = {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean sixteen[NUM_LEDS] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean seventeen[NUM_LEDS] = {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean eighteen[NUM_LEDS] = {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean nineteen[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean twenty[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean twentyone[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean twentytwo[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean twentythree[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean zero[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

    boolean akrivos[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean kai_pente[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean kai_deka[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean kai_tetarto[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean kai_eikosi[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean kai_eikosipente[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean kai_misi[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean para_eikosipente[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0};
    boolean para_eikosi[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0};
    boolean para_tetarto[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0};
    boolean para_deka[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0};
    boolean para_pente[NUM_LEDS] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0};

    int storedHour; // Δημιουργία μεταβλητής για αποθήκευση της ώρας
    int storedMin; // Δημιουργία μεταβλητής για αποθήκευση των λεπτών

    const int switchPlusPin = 3; //plus switch pin
    const int switchMinusPin = 4; //minus switch pin
    int lastButtonState = LOW;
    int buttonState;
    unsigned long lastDebounceTime = 0;
    unsigned long debounceDelay = 50;




    void setup()
    {


    pinMode(switchPlusPin, INPUT);
    pinMode(13, OUTPUT); // Set pin 13 as an output for the LED // NA TO ΔΙΑΓΡΑΨΩ ΟΤΑΝ ΠΑΙΞΕΙ
    /*init Serial port*/
    Serial.begin(9600);
    //while (!Serial); /*wait for serial port to connect - needed for Leonardo only*/
    rtc.begin();
    /*init RTC*/
    Serial.println("Init RTC...");

    /*only set the date+time one time*/
    //rtc.set(20, 25, 21, 7, 8, 2023); /*08:00:00 24.12.2014 //sec, min, hour, day, month, year*/ Ρύθμιση χρόνου RTC. Στη συνέχεια θα πρέπει να ξαναπερνάει σαν σχόλιο <<<<<<<<<<<<<

    /*stop/pause RTC*/
    // rtc.stop();

    /*start RTC*/
    rtc.start();

    FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);//Έναρξη αρχικοποίησης Led routine
    FastLED.setMaxPowerInVoltsAndMilliamps(5, 200); //Περιορισμός Τάσης λειτουργίας (V) και ρεύματος διαρροής led (mA) <<<<<<<<<<<<<
    FastLED.clear();
    FastLED.show(); //Λήξη αρχικοποίησης Led routine

    delay(1000);
    }


    void loop()
    {


    uint8_t sec, min, hour, day, month; // Αρχίζει ο κώδικας RTC
    uint16_t year;

    /*get time from RTC*/
    rtc.get(&sec, &min, &hour, &day, &month, &year);

    /*serial output*/
    Serial.print("\nTime: ");
    Serial.print(hour, DEC);
    Serial.print(":");
    Serial.print(min, DEC);
    Serial.print(":");
    Serial.print(sec, DEC);

    Serial.print("\nDate: ");
    Serial.print(day, DEC);
    Serial.print(".");
    Serial.print(month, DEC);
    Serial.print(".");
    Serial.print(year, DEC); // Τελειώνει ο κώδικας RTC

    storedHour = hour; // Αποθήκευση της ώρας στη μεταβλητή storedHour
    storedMin = min; // Αποθήκευση των λεπτών στη μεταβλητή storedMin

    FastLED.clear(); //Σβήσιμο (καθάρισμα) όλου του panel

    0 Not allowed! Not allowed!

  3. #3
    Μέλος Το avatar του χρήστη Eximnos
    Όνομα
    Γιάννης
    Εγγραφή
    Jul 2017
    Περιοχή
    Αθήνα
    Μηνύματα
    165

    Προεπιλογή

    Συνέχεια του κώδικα....


    //---------------------Αρχή if ωροδείκτη

    if (storedHour == 1)//------------------------1
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (one[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 2)//------------------------2
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (two[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 3)//------------------------3
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (three[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 4)//------------------------4
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (four[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 5)//------------------------5
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (five[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 6)//------------------------6
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (six[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 7)//------------------------7
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (seven[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == //------------------------8
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (eight[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 9)//------------------------9
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (nine[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 10)//------------------------10
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (ten[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 11)//------------------------11
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (eleven[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 12)//------------------------12
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (twelve[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 13)//------------------------13
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (thirteen[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 14)//------------------------14
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (fourteen[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 15)//------------------------15
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (fifteen[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 16)//------------------------16
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (sixteen[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 17)//------------------------17
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (seventeen[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 1//------------------------18
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (eighteen[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 19)//------------------------19
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (nineteen[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 20)//------------------------20
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (twenty[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 21)//------------------------21
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (twentyone[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 22)//------------------------22
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (twentytwo[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 23)//------------------------23
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (twentythree[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedHour == 0)//------------------------00
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (zero[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }

    //-----------------Τελος if ωροδείκτη
    //-----------------Αρχή if λεπτοδείτη

    if (storedMin >= 0 && storedMin < 5)//-----------------Ακριβώς
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (akrivos[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 5 && storedMin < 10)//------------Και 5
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (kai_pente[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 10 && storedMin < 15)//----------Και 10
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (kai_deka[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 15 && storedMin < 20)//---------Και 15
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (kai_tetarto[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 20 && storedMin < 25)//-------Και 20
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (kai_eikosi[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 25 && storedMin < 30)//--------Και 25
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (kai_eikosipente[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 30 && storedMin < 35)//-----------Και 30
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (kai_misi[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 35 && storedMin < 40)//----------Παρα 25
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (para_eikosipente[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 40 && storedMin < 45)//-----------Παρα 20
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (para_eikosi[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 45 && storedMin < 50)//------------Παρα 15
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (para_tetarto[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 50 && storedMin < 55)//-----------Παρα 10
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (para_deka[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }
    else if (storedMin >= 55)//----------------------------Παρα 5
    {
    for (int i = 0; i < NUM_LEDS; i++)
    {
    if (para_pente[i] == 1)
    leds[i] = CRGB (color[0], color[1], color[2]);//Red, Green, Blue
    }
    }

    //-----------------Τέλος if λεπτοδείτη


    FastLED.show(); // Εντολή εμφάνισης υπολογισμένων τιμών


    /*wait a second*/
    delay(1000);
    }

    0 Not allowed! Not allowed!

  4. #4
    Μέλος Το avatar του χρήστη SProg
    Όνομα
    Σάββας
    Εγγραφή
    Mar 2014
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    2.612

    Προεπιλογή

    Αρχικά γιατί βάζεις στην SRAM πράγματα τα οποία απλά κάνεις read; Hint: https://www.arduino.cc/reference/en/...ities/progmem/

    Στο παρακάτω που κάνεις (και δεσμεύεις 32 bytes στην SRAM !):
    boolean one[NUM_LEDS] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

    κάνεις χρήση της boolean:
    boolean is a non-standard type alias for bool defined by Arduino. It’s recommended to instead use the standard type bool, which is identical.

    πάμε τώρα στην bool:
    A bool holds one of two values, true or false. (Each bool variable occupies one byte of memory.)

    Όλη η πληροφορία της μεταβλητής/πίνακα one που δεσμεύεις, ουσιαστικά χωράει σε μία μεταβλητή των 4 bytes (unsigned long στη περιπτωση σου) με τιμή 2148270080 ή 0x800C0000. Μετά μπορείς να ελέγχεις το κάθε bit με bitwise operations ή με bitfields και structs.

    Υ.Γ αν δεν θες να εμβαθύνεις, κάνε απλά την αλλάγή με το PROGMEM

    2 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη SProg : 25-10-23 στις 23:48

Παρόμοια Θέματα

  1. html κώδικας σε Arduino - ανεπαρκής μνήμη
    By lelek in forum Μικροελεγκτές
    Απαντήσεις: 7
    Τελευταίο Μήνυμα: 05-06-15, 09:26
  2. Μνήμη ATmega16
    By Prithan in forum Μικροελεγκτές
    Απαντήσεις: 15
    Τελευταίο Μήνυμα: 13-12-14, 21:29
  3. πρόβλημα με μνήμη
    By sofaki in forum Hardware Η/Υ
    Απαντήσεις: 28
    Τελευταίο Μήνυμα: 26-12-12, 23:01
  4. Μνήμη μικροελεγκτών
    By ALAMAN in forum Μικροελεγκτές
    Απαντήσεις: 10
    Τελευταίο Μήνυμα: 23-10-09, 21:42
  5. Μνήμη RAM
    By manos_3 in forum Γενική Συζήτηση
    Απαντήσεις: 6
    Τελευταίο Μήνυμα: 03-09-07, 14:38

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας