• 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
Problem z kodem do czujników , wzór funkcji
#1
Cześć,
Chciałbym wykonać projekt na arduino który polegałby na czytaniu danych z trzech czujników i wyświetlał dane na ekranie wyświetlacza LCD.
Czujniki to : ciśnienie doładowania, ciśnienie oleju, temp oleju.
Z ciśnieniem doładowania poradziłem sobie szybko, ponieważ działa on liniowo, a pozostałe dwa nie.
Oto dane dla dwóch czujników które otrzymałem od producenta:
(Dane są „na gotowo” po dobraniu odpowiednich oporników.)
No i udało mi się wyznaczyć wzór funkcji.

Ciśnienie oleju:
   

Temperatura oleju: 
   

tutaj się zatrzymałem. Na tym moja wiedza się kończy.

Nie potrafię napisać kodu z użyciem tych funkcji. A informacje z internetu nie za wiele mi mówią [Obrazek: 1f615.png]
Czy ktoś mógłby mi pomóc, podpowiedzieć coś w napisaniu kodu dla tych dwóch czujników ?
 
Odpowiedź
#2
Po prostu wybierz jakikolwiek przykład z czujnikami, gdzie jest użyty czujnik analogowy i przepisz funkcję z obrazka. Być może okaże się problemem wyliczenie tego na float (AVR nie ma double) i na 8 bitowym procku z 16MHz, ale takimi szczegółami można się martwić jak się ma cokolwiek, z czego nie jest się zadowolonym. Może zapis tabel do flash i aproksymacja między punktami z tego wykresu będzie bardzie wydajna.
A może ktoś inny napisze coś mądrzejszego.
Przykładowy szkic z funkcją do analoga:
Kod:
#define PinAnalogowy A1

float funkcjaPolezD(uint16_t x)
{
  float y=(3.141593*x*x)/4;
  return y;
}

void setup() {
  // put your setup code here, to run once:
Serial.begin(115200);
}

void loop() {
  uint16_t odczyt=0;
 
  float wynik=funkcjaPolezD(analogRead(PinAnalogowy));
  Serial.println(wynik,7);//drukuje wynik z 7 miejscami po przecinku
  delay(1000);
  // put your main code here, to run repeatedly:

}
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości