• 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
Tworzenie bibliotek z kilkoma zmiennymi wyjściowymi
#1
Witam,

Potrzebuję stworzyć bibliotekę funkcji w, których będzie kilka zmiennych wyjściowych do tej pory tworzyłem biblioteki w których funkcja zwracała tylko jedną wartość "return"
A co w przypadku jeśli chcę zbudować jaś bibliotekę z kilkoma danymi wejściowymi i kilkoma wyjściowymi.
Przykładowo chcę stworzyć bibliotekę, z funkcją która będzie obliczała prędkość na podstawie danych wejściowych czas i droga, a danymi wyjściowymi będą prędkość w km/h i mph. - mam na myśli to, żebym podał za jednym razem kilka danych wejściowych i od razu otrzymał dwie dane wyjściowe, a nie używał dwóch różnych funkcji do przeliczania tego, żeby dane wyjściowe wpisywały się do dwóch zmiennych, które wskażę.
Oczywiście nie musi być to przykład podany przeze mnie - każdy przykład, który obrazuje jak to zrealizować będzie pomocny,
 
Odpowiedź
#2
Czy ktoś wie jak coś takiego zrobić????
 
Odpowiedź
#3
Witam serdecznie. Smile Nie jestem znawcą ale ja bym poszedł w stronę programowania obiektowego.
Gdzieś czytałem, że arduino wspiera c++ ale jeszcze nie próbowałem.
Więc tworzysz sobie strukturę i do niej powrzucać te wszystkie zmienne które chcesz tam mieć.
I zwracasz daną strukturę .
Tylko nie zapomnij o kasowaniu struktur za pomocą operatora delete Tongue
np.
struct nazwa
{
int wysokość;
int prędkość;
}

Jeszcze raz podkreślę, że jeszcze tego na arduino nie robiłem, ale mam nadzieję, że pomogłem Smile
 
Odpowiedź
#4
jest prosta metoda tylko nie wiem czy o coś takiego ci chodzi

Kod:
int q1,q2,q3;

void setup() {
  
  Serial.begin(9600);

}

void loop() {

q1 = analogRead(A0);
q2 = analogRead(A1);
q3 = analogRead(A2);
  
  przelicz(q1,q2,q3);
  
  Serial.print(q1);
  Serial.print(" / ");
  Serial.print(q2);
  Serial.print(" / ");
  Serial.println(q3);

}

void przelicz(int a , int b ,int c){

q1 = map(a, 0, 1023, 0, 100);
q2 = map(b, 1023, 0, 0, 100);
q3 = c/4;

return;

}
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#5
Generalnie jeśli pracujesz na arduino MEGA lub DUE ( mają więcej pamięci od innych) to zachęcam jednak do obiektówki. Strasznie ułatwia robotę i do tego skraca kod. Po za tym cały program jest bardziej uporządkowany dzięki czemu łatwiej możesz go edytować no i szybciej znajdziesz ewentualne błędy. Ehh. Kocham C++ Smile
 
Odpowiedź
#6
Dzięki za podpowiedź. Macie racie skłonie się w kierunku C++
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości