Skocz do zawartości

Tablice w arduino


Pomocna odpowiedź

Napisano

Cześć, od dłuższego czasu próbuję załapać o co chodzi w praktyce i ni hu hu. Niby łapię teorię, wiem, że to takie szufladowce z jedną szufladą z pojemnikami na dajmy na to 5 danych,

 tablica[5]

, lub np. z 5 szufladami

tablica [5] [5]

.

Ale praktycznie to ni hu hu.

Np. czy da się z tego zrobić tablicę i jak z niej korzystać. Mam takie zmienne(pomijam prawidłowy typ zmiennej):

int cisnienie_bmp_strych, temperatura_bmp_strych;
int cisnienie_bmp_strych_max, cisnienie_bmp_strych_min, temperatura_bmp_strych_max, temperatura_bmp_strych_min;
int dzien_temperatura_bmp_strych_min, miesiac_temperatura_bmp_strych_min, rok_temperatura_bmp_strych_min;
int dzien_temperatura_bmp_strych_max, miesiac_temperatura_bmp_strych_max, rok_temperatura_bmp_strych_max;
int dzien_cisnienie_bmp_strych_min, miesiac_cisnienie_bmp_strych_min, rok_cisnienie_bmp_strych_min;
int dzien_cisnienie_bmp_strych_max, miesiac_cisnienie_bmp_strych_max, rok_cisnienie_bmp_strych_max;

każda z tych zmiennych jest w jakiś tam sposób deklarowana np:

temperatura_bmp_strych = bme.readTemperature();

albo:

cisnienie_bmp_strych_min=cisnienie_bmp_strych;

czy też:

dzien_temperatura_bmp_strych_max = now.day();

Kto mi teraz wytłumaczy jak z tego zrobić tablicę dzięki której podobno będzie mi znacznie łatwiej operować na tych zmiennych. Ale jak zrobić np tablicę BMP[liczba zmiennych], każdą wewnątrz deklarować, ale co zyskuję? Nazwy łatwo mi zapamiętać, co zyskuję zamienając to w tablicę?

Pozdrawiam chętnych 😃

Tablica nie służy do tego. To co Ty opisujesz sensowniej zrobisz jako strukturę (struct).

Tablica jest przydatna jak masz wiele elementów zbioru. np. pobierasz próbki z ADC i chcesz je uśredniać.

Trudno to zrobić zmiennymi tekstowymi:

int probka1;
int probka2;
...
int probka10;

i potem kodem typu srednia = (probka1+probka2+...+probka10)/10

Co więcej jak teraz chcesz uśredniać nie 10 a 100 próbek to jak to zrobisz?

z tablicą idzie łatwo np:

#define LICZBAPROBEK (10)

int probki[LICZBAPROBEK];

...

int srednia = 0;
for (i=0;i<LICZBAPROBEK;i++) srednia+=probki[i];
srednia /= LICZBAPROBEK

jak teraz chcesz usredniac 100 to wystarczy zmienić definicję z 10 na 100 i rekompilować kod...

  • Lubię! 1

Dzięki, tak właśnie mi to jakoś nie pasowało do takich zmiennych. Czyli tablice służą raczej do wykonywania operacji na zmiennych w nich zawartych niż do wykożystywania tych zmiennych "pojedynczo".

Wszystko zależy od kontekstu. Często łączysz tablicę ze strukturą i wtedy dostajesz zalety obu rozwiązań.

Jak chcesz mieć np. kilka konfiguracji (np. dla każdego użytkownika inne parametry typu ustawienie fotela/kierownicy w aucie) to najłatwiej mieć tablicę ze struktury, która opisuje wszystkie parametry i odwołując się do poszczególnych elementów struktury w tablicy możesz odczytywać parametry dla danego kierowcy...

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...