• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zmniejszenie rozmiaru projektu
#1
Witam
Udało mi się uruchomić cyfrowy termometr z dwoma czujnikami DS18B20 i wyświetlaczem OLED.
Napotkałem jednak kolejny problem. Mianowicie kod zajmuje zbyt dużo miejsca w pamięci kontrolera. O ile na Arduino UNO nie ma problemów z pamięcią o tyle na Arduino Nano (Atmega 168) brakuje pamięci. Czy jest jakaś możliwość zmniejszenia rozmiaru kodu? Usunięcie zbędnych danych z wykorzystanych bibliotek? Chciałbym, aby jakoś udało się zmieścić ten program na Arduino NANO, ponieważ z założenia miało to wszystko zostać zamknięte w jak najmniejszej obudowie. Jeżeli jednak zajdzie taka potrzeba, będę zmuszony zakupić Arduino NANO z Atmegą 328. Jednak warto spróbować zmniejszyć kod i czegoś się przy okazji nauczyć Wink
W razie potrzeby zamieszczam kod:
Kod:
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <OneWire.h>
#include <DS18B20.h>
#define ONEWIRE_PIN 2
#define SENSORS_NUM 2
#define OLED_RESET LED_BUILTIN
const byte address[SENSORS_NUM][8] PROGMEM = {
 0x28, 0xB1, 0x6D, 0xA1, 0x3, 0x0, 0x0, 0x11, ///////adres czujnika 1
 0x28, 0x87, 0x6A, 0xA1, 0x3, 0x0, 0x0, 0x1F  ///////adres czujnika 2
};
OneWire onewire(ONEWIRE_PIN);
DS18B20 sensors(&onewire);
Adafruit_SSD1306 display(OLED_RESET);
const uint8_t logo [] PROGMEM = {
dane hex logo
};
const uint8_t ramka [] PROGMEM = {
dane hex ramki
};
void setup() {
 display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
 display.clearDisplay();
 display.drawBitmap(0, 0, logo, 128, 64, 1);
 display.display();
 delay(5000);
 display.clearDisplay();
 sensors.begin();
 sensors.request();
 }
void loop() {
 if (sensors.available())
 {
   for (byte i=0; i<SENSORS_NUM; i++)
   {
     float temperature = sensors.readTemperature(FA(address[i]));
     display.drawBitmap(0, 0, ramka, 128, 64, 1);
     display.display();
     display.setTextColor(WHITE);
     display.setCursor(22,30);
     display.println(temperature);
     display.setTextColor(WHITE);
     display.setCursor(73,30);
     display.println(temperature);
}
   }

   sensors.request();
 }

Jedyne, co przychodzi mi do głowy, to możliwość usunięcia "logo" i przeniesienia go do biblioteki adafruit, chociaż wątpię, czy zmieni to rozmiar.
Za wszystkie pomocne odpowiedzi z góry dziękuję Smile
 
Odpowiedź
  


Wiadomości w tym wątku
Zmniejszenie rozmiaru projektu - przez ArduinoNewbie - 03-09-2018, 18:52
RE: Zmniejszenie rozmiaru projektu - przez kaczakat - 03-09-2018, 20:47
RE: Zmniejszenie rozmiaru projektu - przez es2 - 03-09-2018, 21:26
RE: Zmniejszenie rozmiaru projektu - przez es2 - 04-09-2018, 08:52
RE: Zmniejszenie rozmiaru projektu - przez kaczakat - 04-09-2018, 14:29
RE: Zmniejszenie rozmiaru projektu - przez es2 - 04-09-2018, 17:48

Skocz do:


Przeglądający: 1 gości