Skocz do zawartości

Obsługa obrotomierza z samochodu


kellyq

Pomocna odpowiedź

Siema 

Taki temat jak obrotomierz samochodowy z dwoma cewkami. Pierwsza cewka odpowiada za niskie wartości obrotów dokładnie połowa obrotów maksymalnych a druga cewka za wysokie obroty, od połowy w górę. Zasilanie sygnałem pwm 3,3V. Takie problemy jak nieproporcjonalność zmiany wypełnienia w początkowej fazie czyli zmiana wypełnienia od 0 do 400 przy rozdzielczości 10bit wiąże się ze znacznym skokiem wskazówki w porównaniu ze zmianą np z 800 na 900. Drugi problem że druga cewka ciężko ma utrzymać wskazówkę na swoim położeniu przy niskim wypełnieniu.

A może zasugerujecie inaczej to zrobić

int obroty = 0; // Wartość obrotów

const int coil1Pin = 13; // Pin dla pierwszej cewki
const int coil2Pin = 12; // Pin dla drugiej cewki
const int pwmChannel1 = 0; // Kanał PWM dla pierwszej cewki
const int pwmChannel2 = 1; // Kanał PWM dla drugiej cewki
const int pwmResolution = 10; // Rozdzielczość PWM (10 bitów)
const int frequency = 1000; // Częstotliwość PWM w Hz
const int maxRPM = 2800; // Maksymalne obroty na minutę

void setup() {
  // Ustawienie kanałów PWM
  ledcSetup(pwmChannel1, frequency, pwmResolution);
  ledcSetup(pwmChannel2, frequency, pwmResolution);
  
  // Przypisanie pinów do kanałów PWM
  ledcAttachPin(coil1Pin, pwmChannel1);
  ledcAttachPin(coil2Pin, pwmChannel2);

  // Inicjalizacja komunikacji szeregowej
  Serial.begin(9600);
}

void loop() {
  // Odczytaj dane z komputera, jeśli są dostępne
  if (Serial.available() > 0) {
    String data = Serial.readStringUntil('\n'); // Odczytaj dane do napotkania znaku nowej linii
    obroty = data.toInt(); // Konwertuj ciąg znaków na liczbę całkowitą
    Serial.print("Odczytane obroty: ");
    Serial.println(obroty);
  }
  
  // Obliczamy wypełnienie PWM na podstawie wartości obrotów
  int dutyCycle1 = 0;
  int dutyCycle2 = 0;

  if (obroty <= maxRPM / 2) {
    dutyCycle1 = map(obroty, 0, maxRPM / 2, 0, 1023);
  } else {
    dutyCycle2 = map(obroty, maxRPM / 2, maxRPM, 0, 1023);
  }

  // Ustawiamy wypełnienie PWM dla odpowiednich kanałów PWM dla każdej cewki
  ledcWrite(pwmChannel1, dutyCycle1);
  ledcWrite(pwmChannel2, dutyCycle2);

  // Poczekajmy chwilę przed kolejną iteracją
  delay(10);
}

 

Link do komentarza
Share on other sites

Przede wszystkim zweryfikowałbym przyjęte milcząco założenie, że wychylenie wskazówki jest proporcjonalne do współczynnika wypełnienie przebiegu PWM.

Aby to zweryfikować trzeba zdjąć charakterystykę wskaźnika - zrób wykres wychylenia wskazówki w zależności od wypełnienia przebiegu. Coś czuję, że nie wyjdzie linia prosta.

Link do komentarza
Share on other sites

Na pewno nie wyjdzie prosta😄

Tylko że teraz tak sobie myślę że najważniejsze jest w ogóle uruchomienie tego obrotomierza. Nie mam wiedzy jak to w oryginale powinno być sterowane. Podejrzewam że na przejściu z sterowania pierwszą i drugą cewką powinien być moment kiedy obie cewki są załączone. 

Przerabiałem kiedyś tak obrotomierz ze stara ciężarowego to tam wypełnienie pwm chyba było w liniowości z obrotami👌 

Link do komentarza
Share on other sites

Nie bardzo potrafię sobie wyobrazić, po co w obrotomierzu potrzebne są dwie cewki. Jedna powinna wystarczyć, by pokryć cały zakres.

Może chodzi o to, że jedna jest dwa razy czulsza od drugiej (jedna dla silników 2-cylindrowych, druga dla 4-cylindrowych)???

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

A jakby ręcznie wyznaczyć charakterystykę, tzn. przy jakim wypełnieniu pwm każdej cewki jakie obroty pokazuje wskaźnik. Dało by się to jakoś wykorzystać?

Link do komentarza
Share on other sites

W samochodzie obrotomierz tak naprawdę to mierzy częstotliwość, a nie współczynnik wypełnienia, choć na wypełnienie też może jakoś reagować. Trzeba poeksperymentować.

A wyskalować go można przy pomocy innego, wzorcowego obrotomierza.

Link do komentarza
Share on other sites

Mi chodzi tylko o wysterowanie, obroty zczytuję czujnikiem halotronowym. 

Tutaj przykład jaki zrobiłem obrotomierz jakieś 2 lata temu, dawcą był obrotomierz ze stara, lumel. Tylko tam była jedna cewka i bardzo łatwo było go wysterować. Zrobił bym to samo ale te lumele przy próbie rozebrania potrafi się wskazówka urwać i jest wtedy klapa.

Tamten obrotomierz chodzi do tej pory

 

Link do komentarza
Share on other sites

5 godzin temu, kellyq napisał:

A jakby ręcznie wyznaczyć charakterystykę, tzn. przy jakim wypełnieniu pwm każdej cewki jakie obroty pokazuje wskaźnik. Dało by się to jakoś wykorzystać?

Dało by się. Musiałbyś zbudować jakąś "lookup table" która dopasowuje charakterystykę ustroju do rzeczywistości.

A w tym obrotomierzu nie było jakiejś elektroniki? Powinien być jakiś przetwornik f/U, bo normalnie obrotomierz steruje się częstotliwością (z cewki zapłonowej albo z komputera sterującego zapłonem)

Link do komentarza
Share on other sites

Oryginalnie był sterowany przez drugi zegar prędkościomierz, tam jest jakiś mikrokontroler ale ciężko odczytać jaki. Z kolei tamten chyba ze skrzyni biegów otrzymywał impulsy

Link do komentarza
Share on other sites

Francuska elekronika. Obrotomierz sterowany z prędkościomierza...

Możesz przecież jechać 100km/h przy zerowych obrotach silnika.

Nie lepiej wziąć ze szrotu jakiś uczciwy obrotomierz, zamiast walczyć z "oryginalnością twórców"?

 

Link do komentarza
Share on other sites

Taki obrotomierz to po prostu miliwoltomierz z filtrem. Póki jest sprawny, to nie ma znaczenia jak i gdzie był przedtem wykorzystywany. Wystarczy jego kalibracja w nowym środowisku i ew. (w razie potrzeby) dodanie jakiegoś wzmacniacza.

 

Link do komentarza
Share on other sites

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.