Skocz do zawartości

Tablice w arduino


SOYER

Pomocna odpowiedź

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 😃

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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".

Link do komentarza
Share on other sites

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...

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.