Witam. Od dłuższego już czasu klepię mały wyświetlacz LCD do auta (Chrysler Stratus - w oryginale nie ma nawet zegarka). Ma on pełnić takie funkcje: Pierwszy ekran: - wyświetlanie temperatury zewnętrznej, wewnętrznej (pierwszy ekran) - datę, godzinę
Drugi: - ilość paliw w zbiornikach w postaci pasków typu bar / litry (LPG i PB, Pomiar z ADC)
Trzeci: - napięcie instalacji - pokazywać spalanie średnie i chwilowe (z tego rezygnuje bo nie mam już pod co podpiąć), przebytą drogę i czas trwania podróży (Trip Info) - automatyka świateł (bądź przypominajka w postaci powiadomienia na LCD + 5x buzer - zależnie od ustawień w menu) - automatyka jasności LCD poprzez fotorezystor (+ manualne ustawienia) - automatyka podświetlania małego schowka na szpargały przy lewarku zmiany biegów (TCRT5000) - ostrzeżenie o gołoledzi (miganie wskazania temp. zewnętrznej + 5x buzer) To takie jedne z ważniejszych funkcji.
I tu się zaczynają schody bo do wykorzystania mam INT1 którym mógłbym mierzyć impulsy z czujnika skrzyni i wyliczać przejechaną drogę i prędkość. Skonfigurowałem przerwanie na zbocze opadające i inkrementuję zmienną, ale nie wiem co dalej. Jak mam to mierzyć żeby było dobrze np za pomocą Timera2?
Dołączył(a): 17 mar 2014 Posty: 334 Lokalizacja: Rybnik
Pomógł: 55
W moim projekcie http://forum.atnel.pl/topic9827.html wykonuję to w taki sposób. Jeden timer odmierzający interwał równy 1 sekundę. Wykorzystuję go zarówno do pomiaru spalania, odświeżania danych na wyświetlaczu, jak i pomiaru prędkości. W moim samochodzie tak dobrze się składa, że 1 imp/sek = 1km/h Więc z przeliczaniem tego nie ma problemu. Więc jak to robię? W procedurze obsługi przerwania od INTx zwiększam zmienną powiedzmy impvss o 1. W procedurze obsługi przerwania od timera x (co 1 sekundę) przepisuję tę wartość do zmiennej speed -to jest już moja prędkość w hm/h. Ustawiam też flagę przechwycenia danych.
W programie głównym gdy flaga jest ustawiona dodaję wartość zmiennej speed (czyli ilość impulsów z ostatniej sekundy i jednocześnie prędkość w hm/h) do zmiennej calydystans i dystanstrasy -ta druga zmienna jest zerowana po każdym wyłączeniu silnika.
Teraz przeliczenie tego na drogę w km jest banalne. Nasz interwał to 1 sekunda. 1 godzina to 3600 sekund. Dzieląc naszą zmienną calydystans i dystanstrasy przez 3600 otrzymujemy drogę.
Cytuj:
Przykład: Wiedząc, że droga = prędkość*czas
Jedziemy przez 18 sekund prędkością 55hm/h i 36 sekund prędkością 80km/h. Obliczamy więc drogę: s1 = 55hm/h*0,005h = 0.275km s2= 80km/h*0,01h =0.8km
Tak więc całkowita droga: s=0.8+0.275=1.075km
Nasz komputerek obliczy to tak (przyjmuję tak jak u mnie 1imp/sek = 1km/h): impvss1=18*55=990 impvss2=36*80=2880 calydystans = 990+2880=3870
Obliczamy drogę: s = 3870/3600 = 1.075km
Zgadza się? Tak, więc jak widać proste w realizacji. Wartość drogi, paliwa itp przetrzymuję w postaci impulsów, więc są to wartości całkowite. Przeliczania wykonuję bez użycia liczb zmiennoprzecinkowych -wystarczy trochę pomyśleć.
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Podejrzewam że taki kod nie będzie powodował dużego przekłamania, ale i tak na tą chwilę jest do testów ale i tak działa znakomicie jak dla mnie
Jeszcze mam jedno pytanie. Jeśli klikam sobie paluchem na mikro switcha to nie otrzymuje idealnych odczytów na wyświetlaczu (drgania styków). Jak to mogę potestować na biurku? Widziałem 2 rozwiązania albo silniczek z drukarki z enkoderem optycznym, albo mały generator przebiegu prostokątnego na NE555. Jakie jeszcze są inne sposoby na przetestowanie?
I chyba złożę sobie taki testowy generator. Muszę jeszcze sprawdzić ile impulsów na obrót koła jest z czujnika w skrzyni, ale to już mniejszy problem.
Zastanawia mnie jeszcze to:
Cytuj:
The Vehicle Speed Sensor (VSS) is located on the transaxle near the left engine mount (see illustration). This sensor is a permanent magnetic variable reluctance sensor that produces a pulsing voltage whenever vehicle speed is over 3 mph. These pulses are translated by the PCM to determine vehicle speed, distance traveled and, on models equipped with cruise control, it governs the speed control servo.
Czyli jeśli auto przekroczy 3mph czyli niecałe 5km z czujnika wychodzą impulsy o zmiennej częstotliwości. No nic z tym już dam sobie radę
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości
Nie możesz rozpoczynać nowych wątków Nie możesz odpowiadać w wątkach Nie możesz edytować swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników