Ultrasonic - pomiary w w tablicy - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Czujniki (https://forum.arduinopolska.pl/dzial-czujniki) +--- Wątek: Ultrasonic - pomiary w w tablicy (/watek-ultrasonic-pomiary-w-w-tablicy) Strony:
1
2
|
Ultrasonic - pomiary w w tablicy - f1rew4ll - 19-01-2016 Witam Mam pytanie odnosnie zapisywania danych do tablicy. Jak wiecie zaprogramowany czujnik odbiera sygnaly ktorych wartosci mozemy wyswietlic w Serial Moniotor. Chcialbym jednak aby wyniki byly zapisywane do tablicy, z tego wzgledu ze chcialbym z nich korzystac w nastepnej funkcji. Czy ktos ma pomysl jak tego dokonac? podam kod ktory wyswietla wyniki bez tablicy Kod: #define Trig A0 RE: Ultrasonic - pomiary w w tablicy - wojtekizk - 19-01-2016 Kurcze nie zdążę do kina... jak wrócę to napiszę więcej. W każdym da się utworzyć w pamięci tablicę typu float o max 596 elementach (praktyka). Powyżej tej wielkości kompilator zastrajkuje - za mało pamięci. To tyle. Wieczorkiem napisze dlaczego tak jest i jak to ugryźć. Pozdrawiam RE: Ultrasonic - pomiary w w tablicy - f1rew4ll - 19-01-2016 Super, będę czekał na podpowiedzi. Z tego co sie dowiedziałem międzyczasie to trzeba by było z EEPROM, jest gotowy sketch zapisu do EEPROM ale z tymi tablicami to nie wychodzi. Pozdrawiam RE: Ultrasonic - pomiary w w tablicy - wojtekizk - 19-01-2016 Da się i do EEPROM zapisać, tyle że tam zapisuje się kolejne bajty, zaczynając od komórki pamięci o adresie 0. Mała trudność polega na tym, że jak pisałem wcześniej liczba typu float zajmuje w pamięci 4 bajty, zatem jej poszczególne bity (po 8) trzeba dzielić i kolejno zapisywać w EEPROM. Mało wydajna metoda niestety. Może napisz do czego potrzebne Ci są te tablice, co chciałbyś z tymi danymi potem robić... i może wtedy należałoby wymyślić coś max. prostego....Najtrudniej jest zakumać co autor ma na myśli :-) Pozdrawiam RE: Ultrasonic - pomiary w w tablicy - f1rew4ll - 19-01-2016 Zgadza się, nie ma to jak zrozumieć autora mysli. Potrzebna mi byla tablica by zbierac pomiary i z opoznieniem 200ms maksymalnie wysylac max wartosc, a pozniej z kolei dzieki tym wartosciom max mogl sterowac innym urzadzeniem. Mysle ze poradzilem sobie z tym. Dzieki za odpwiedz Pozdrawiam RE: Ultrasonic - pomiary w w tablicy - wojtekizk - 19-01-2016 Witam No nie bardzo rozumiem to zbieranie pomiarów z tym max opóźnieniem 200ms skoro w kodzie pozwalasz sobie na delay(500)... ale spoko. Skoro chcesz z np 1000 prób pobrać max. wartość to jaki problem użyć tylko 2 zmiennych i w każdej próbie sprawdzać: Kod: float x, max=0; Pozdro RE: Ultrasonic - pomiary w w tablicy - f1rew4ll - 20-01-2016 dolaczony kod to kod pokazowy z opoznieniem widzialnym dla oka, a chodzilo o to by robic pomiar1....gdy wartosci zaczna byc wieksze od wartosci z pomiaru1 zaczac nowy pomiar2. Gdy wartosci zmaleja zakonczyc pomiar2 i wrocic do poczatku wykonywania pomiaru2 i dokonac na nich pewnych obliczen. RE: Ultrasonic - pomiary w w tablicy - wojtekizk - 20-01-2016 Witam Kurcze co drugi tu robi co najmniej bombę atomową, wszystko takie utajnione :-) Opiszcie dokładnie na czym pracujecie i co chcielibyście osiągnąć a macie z tym problemy. Zawsze trzeba od was wszystko wyciągać, krok po kroku? Twój przypadek - chcesz robić jakiś pomiar, ale jego wynik poddawać dalszej obróbce dopiero wtedy gdy trend przestanie rosnąć lub maleć, TAK? Jeśli o to dokładnie chodzi to rzeczywiście potrzebujesz tablicy z wynikami. Tylko pytanie: Ile ostatnich pomiarów wystarczy aby określić trend - rosnący czy malejący? Bo może nie trzeba aż tak wielu obliczeń. Może wystarczy do Twoich obliczeń np. wiedza. z np. 5-ciu kolejnych pomiarów? jeśli np: 1) każdy następnik z 5-ciu ost. pomiarów jest większy od poprzednika -> trend rosnący 2) każdy następnik z 5-ciu ost. pomiarów jest mniejszy od poprzednika -> trend malejący 3) Jeśli przypadek 1 lub 2 nie zachodzi - to wybierz z tych 5-ciu MIN lub MAX i rób obliczenia Te 3 punkty to może być algorytm którego potrzebujesz. Pozdrawiam RE: Ultrasonic - pomiary w w tablicy - f1rew4ll - 24-01-2016 No nie koniecznie bombe ale czasem ktos ma pomysl na cos i nie moze zdradzic calosci projektu tylko ewentualnie kawalek kodu tak by ktos nie wykorzystal tego..wiem ze maloprawdopodobne bo teraz juz jest wszystko hehe.. A wracajac do tematu... Mam funkcje ktora w tablicy x elementowej wyswietla mi na okraglo pomiary i zwraca wartosc stanu wysokiego i niekiego jak w warunku: if(tab[i]<10.00) { canL=tab[i]; Serial.println(" CAN LOW "); } else { canH=tab[i]; Serial.println(" CAN HIGH "); } } Pytanie, jak zwrocic ilosc wystapien stanow wysokich i niskich w tej x elementowej tablicy. zazwyczaj uzywa sie funkcji tab.length no ale arduino nie korzysta z niej. zrobilem funkcje szukajaca po tablicy: int canL=0; for( i=0;i<x;i++) { if(tab[i]<10.00) { canL=tab[i] canL++; } Serial.print(canL); Ale cos nie dokonca to dobrze wyszukuje.. RE: Ultrasonic - pomiary w w tablicy - wojtekizk - 24-01-2016 (24-01-2016, 00:39)f1rew4ll napisał(a): No nie koniecznie bombe ale czasem ktos ma pomysl na cos i nie moze zdradzic calosci projektu tylko ewentualnie kawalek kodu tak by ktos nie wykorzystal tego..wiem ze maloprawdopodobne bo teraz juz jest wszystko hehe.. Cześć Kurcze w zmiennej licznik na przykład: Kod: int licznik=0; Pozdrawiam |