Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 23 lut 2025, o 18:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 2 sty 2016, o 01:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 sie 2013
Posty: 165
Lokalizacja: Sycyna Południowa
Pomógł: 4

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?

2 miesiące temu wyglądało to tak:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2016, o 12:37 
Offline
Użytkownik
Avatar użytkownika

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ć.


Autor postu otrzymał pochwałę

_________________
Amatorska stacje meteorologiczna



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2016, o 22:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 sie 2013
Posty: 165
Lokalizacja: Sycyna Południowa
Pomógł: 4

I jak zwykle wykładam się na tak banalnych rzeczach, aż mi głupio było pisać post w dziale "Język C dla AVR" że wolałem to zrobić tutaj :)

U mnie to wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
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?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2016, o 22:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 mar 2014
Posty: 334
Lokalizacja: Rybnik
Pomógł: 55

hopek napisał(a):
Jakie jeszcze są inne sposoby na przetestowanie?

Drugi AVR jako generator np. na płytce stykowej lub testowej.

_________________
Amatorska stacje meteorologiczna



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2016, o 23:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 sie 2013
Posty: 165
Lokalizacja: Sycyna Południowa
Pomógł: 4

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ę



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO