Elektroda.pl
Elektroda.pl
X
IGE-XAO
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Kostka ATmega8 - odczytywanie obrotów silnika benzynowego

16 Sty 2008 22:06 4564 34
  • Poziom 13  
    W jaki sposób zaadoptować kostkę ATmega8 do odczytywania obrotów silnika benzynowego (czterosuwowy V4)? Wynik pomiaru ma być przedstawiany za pomocą kolorów diody RGB (nieb -> ziel -> żółty -> czerw). Jak sobie z tym poradzić?
  • IGE-XAO
  • Poziom 34  
    Musisz wykonać pomiar częstotliwości lub okresu
    metoda dowolna...
  • Poziom 13  
    Znalazłem coś takiego:
    http://sklep.avt.pl/photo/_pdf/AVT2711.pdf
    W jaki sposób zaadoptować ten układ do ATmegi8 i zapłonu elektronicznego? Przydałoby się te zwiększyć maksymalne mierzone obroty do ok. 14 tys.

    Dodano po 5 [minuty]:

    Może mi ktoś sprawdzić czy płytka jest dobrze zrobiona? Chodzi mi również o wymiary AVR-a.
  • Poziom 13  
    Gniazdo PRG ma służyć do programowania i jako wejście obrotomierza.
  • IGE-XAO
  • Specjalista - Mikrokontrolery
    ogor_89 napisał:

    Może mi ktoś sprawdzić czy płytka jest dobrze zrobiona? Chodzi mi również o wymiary AVR-a.


    A gdzie schemat?
    Generalnie, od sprawdzania jest funkcja DRC (Design Rule Check) w programach do projektowania płytek. Tylko najpierw trzeba stworzyć schemat, na jego podstawie tzw. net-listę i dopiero na podstawie tej ostaniej układ ścieżek. Wtedy program sam ślicznie pokazuje wszystkie błędy (chyba obecnie wszystkie programy maja taką funkcję).

    Na oko widać, że za małe są odstępy pomiedzy ścieżkami. W warunkach amatorskich nie wciśniesz też dwóch ścieżek pomiędzy nogi scalaka.

    Sam chcesz robić płytkę czy dać do płytkarni?
  • Poziom 13  
    Sorry, zapomniałem dać schemat :D. Skoro Eagle ma opcję sprawdzania, to nie ma problemu. Możesz jeszcze rzucić okiem na rozmiary scalaka? To jest ATmega8, tylko nie jestem pewien czy nie jest czasem zbyt szeroka (sam robiłem bibliotekę). Płytki na pewno wykona jakaś firma, tylko pytanie jaka? Znalazłem taką www.prototypy.com.pl. Znacie może jakąś inną dość tanią firmę?
  • Poziom 13  
    Dzięki Piotrek.
    Jak jest sterowany obrotomierz? Impulsami?
  • Pomocny post
    Poziom 17  
    Zwyczajna makabra, ta plytke mozna na 1000 sposobow lepiej zaprojektowac, a gorzej sie chyba juz nie da...
  • Poziom 33  
    Cześć
    Miałem nie komentować płytki ale:
    - złącze programowania użyłbym jako sterowanie LED
    - jako wejście wygodnie jest użyć INT więc raczej nie jest to żaden z pinów do programowania, nie wyprowadzaj na złącze programowania nietypowych pinów i zachowaj układ typowego rozmieszczenia pinów programatora
    To wszystko da się zobić o ile pamiętam bez kręcenia ścieżkami pomiędzy nogami procesora.
    Piotr
  • Poziom 13  
    1.
    Pierwsza moja płytka. W eaglu nie mogłem się odnaleźć (elementy).
    Załączam schemat. Pijopic, jak możesz, to zrób mi wzór płytki. Jakbyś się już bawił, to dorzuć jeszcze kwarc, ok?

    2.
    Jabel J-91 wygląda dość ciekawie. Ten układ dostosowujący myślę, że będzie dobry. Dobrze myślę?

    Znalazłem taki kod:
    Code:
    $crystal = 4000000 
    

    $regfile "m8def.dat"
    Config Lcdbus = 4
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Pb.2 , Db5 = Pb.3 , Db6 = Pb.4 , Db7 = Pb.5 , E = Pb.1 , Rs = Pb.0
    Set Portd.2
    ' Miernik prędkości obrotowej
    'licznikiem 0...65535 jest Timer1
    Dim Wynik As Long
    Config Timer1 = Counter , Edge = Rising 'konfiguracja Timera do zliczania impulsów
    Cls : Lcd "Obrotomierz" :
    Wait 1

    Do
    Timer1 = 0
    Start Timer1
    Wait 1
    Stop Timer1

    Wynik = Timer1 / 4

    Cls
    Lcd "+ Obrotomierz +"
    Lowerline

    Lcd "P: " ; Wynik ; " obr/min"
    Cursor Off
    Loop
    End

    Interesuje mnie tylko zmienna "Wynik", więc sterowanie LCD wyrzucę. Mam inny problem. AVR nie będzie odpowiadał tylko za mierzenie obrotów, więc "Wait 1" muszę zastąpić czymś w taki sposób, żeby nie wstrzymywać całego programu. Poza tym silnik w motorze dość szybko wkręca się na obroty, więc zmiana wartości zmiennej "Wynik" co sekundę odpada. Czy mierzenie co 1/4 sek. jest realne?
  • Poziom 13  
    Trochę za bardzo się napaliłem. To trzeba na spokojnie. Najpierw muszę posprawdzać poszczególne części programu, potem spiąć to w całość i dopiero projektować płytkę.
    Mam jeszcze jedno pytanie przed testami: jak to wszystko podpiąć do uC? Chodzi mi o to gdzie podłączyć wyjścia, a gdzie wejścia?
  • Pomocny post
    Poziom 28  
    Przydałby się jakiś kondensator na zasilaniu do odfiltrowania śmieci
  • Poziom 13  
    Moduł zasilania będzie na osobnej płytce (stabilizator + kondensatory), więc tutaj już chyba nie trzeba odfiltrowywać
  • Poziom 17  
    Trzeba odfiltrowac to po pierwsze, po drugie to skad ma ktos wiedziec gdzie co podpiac jak nie wie co podpiac, po trzecie to wpierw sie robi prototyp na ktorym sie testuje program a nie odwrotnie.
  • Poziom 13  
    Podpiąć pasuje to o czym jest mowa wyżej, czyli 10 diod LED, 2 diody RGB i wejście do pomiaru obrotów.
  • Poziom 17  
    A gdzie rezystory ograniczajace, gdzie wyjscia zasilania dla diod ?
  • Poziom 13  
    O to się nie martw. Rezystory będą przy diodach (jakieś 20 cm od uC), a zasilanie pociągnę ze stabilizatora. Od razu mam pytanie. Czy do ATmegi8, 10-ciu LED i 2 diod RGB wystarczy 7805, czy lepiej dać 2A (78S05 czy jakoś tak)?
  • Poziom 28  
    Jak tak czytam i czytam to mam coraz większe obawy (szczególnie przy tak niechlujne wykonanej płytce) że wszelkie zakłócenia będą ci skutecznie utrudniać pracę tego urządzenia. Długie przewody, zero filtrowania zakłóceń na płytce. Podejrzewam że to ma pracować w jakimś samochodzie a nie w laboratorium
  • Poziom 13  
    Dokładniej w motocyklu. Pisałem, że tej płytki nie będę robił, a projekt zrobię od nowa jak już się uporam ze stroną programową. Jakie filtrowanie zakłóceń masz na myśli? Chyba nie na zasilaniu? Stabilizator z kondensatorami będzie na osobnej płytce, ale w tej samej obudowie. Odległość na kablu może 3 cm.
  • Pomocny post
    Specjalista - Mikrokontrolery
    po prostu nie bedzie dzialac [;

    1. filtrowanie daje sie PRZY ukladzie scalonym, na KAZDEJ nozce zasilania, przy uzyciu kondensatora 100n. bez wyjatkow - zadnych. 'przy' oznacza, ze daje sie to JAK NAJBLIZEJ, a nie na osobnej plytce z wiszacym kablem. nie mowiac juz o tym, ze po jaka cholere to ma byc na osobnej plytce?
    2. rezystory ograniczajace prad diody na kablach przy diodzie? przeciez to BEZ SENSU, skoro mozna je dac na plytce...
    3. ta plytka jest tak zaprojektowana, ze to sie do niczego nie nadaje. nie mowiac juz o tym, ze jesli nie masz doswiadczenia w robieniu plytek (a raczej nie masz, skoro nie mogles sie odnalezc w eagle), to po prostu ci nie wyjdzie taka plytka za pierwszym razem - za cienkie sciezki, za duzo nawciskane sciezek miedzy padami, ogolnie slabo.... nawet jesli ktos inny ci to zrobi, to po jaka cholere ma robic takie cienkie sciezki, skoro to przy uzyciu zwor (3-4) mozna zrobic 100x lepiej ze sciezkami grubymi na 30milsow... plytek sie nie robi w 5 minut, tylko w 5 godzin, po to sie marnuje ten czas, aby potem wszystko ladnie dzialalo od pierwszego razu (hehe [; ), bez poprawek, zwarc, podtrawien, zaklocen i tym podobnych rewelacji. popatrz np tutaj - gdybym robil to twoja metoda byloby wieksze conajmniej 3x, a przelotek byloby ze 300.
    4. ty chcesz zasilac 10 ledow i 2 rgb (czyli w sumie 16 diod) z uC na raz? czyli tu tez zakladasz ze wszystko jest spoko i ze kontroler to wytrzyma? pozatym, ze uC ma ograniczenie pradu z jednej nozki, ma tez ograniczenie calkowitego pradu. zblizasz sie do niebezpiecznej granicy, za ktora twoj procek pojdzie z dymem. i jeszcze pytasz czy podlaczyc do kontrolera stabilizator 2A... jesli zamierzasz z tego kontrolera ciagnac wiecej niz 100-200mA to dobrze sie nad tym zastanow. tego sie tak nie robi, tylko sie daje tranzystory jako wzmocnienie pradu.

    moze na razie tyle... polecalbym troche pracy wlasnej, bo od postow w tym temacie nie zacznie dzialac. w obecnym ksztalcie zreszta tez nie bedzie dzialac.

    0x41 0x56 0x45!!
  • Poziom 13  
    Maksymalnie miały się świecić 2 diody RGB i do 3 LED. Jako laik nie pomyślałem o tranzystorach... Tak mnie zjechałeś (nie dziwię się), że już niczego nie jestem pewien... Skontroluj moje myślenie, ok?
    Stabilizator z trzema kondensatorami plus jeszcze jeden na VCC uC. Do każdego wyjścia LED i RGB rezystor (tylko jaki?) i baza tranzystora (BC547?), emiter do masy, a kolektorem do LED i rezystora. Co jest źle?
  • Specjalista - Mikrokontrolery
    2 diody RGB to w zasadzie 6 diod zwyklych. nie traktuj tego jako zjechanie, tylko po prostu policz sobie - na kazda z diod trzeba te 20mA przeznaczyc, razy 9 diod to jest 180mA, wiec teraz mykaj do datasheeta i znajdz jaka jest obciazalnosc sumaryczna portow. jesli stosownie wieksza, to luz, jesli nie bardzo, to trzymajmy sie tranzystorow [; musisz po prostu oszacowac prad jaki beda te diody pobieraly, a to juz zalezy od twojej aplikacji, bo jesli swiecisz w diodzie RGB wszystkimi 3 czesciami na raz, to nalezy ja traktowac jako 3 zwykle. jesli zas nie... to trzeba sobie oszacowac [;

    co do stabilizatora to zwyklo sie tak robic, ze na jego wejscie i wyjscie daje sie po 2 kondensatory - jeden duzy (w uF, od 1 - 1000uF [; ) i jeden maly (zwykle 100n) - jesli twoj stabilizator niczego innego delikatnego nie zasila poza prockiem, to z tego malego na wyjsciu mozna zrezygnowac na rzecz 100n przy samym procku.

    0x41 0x56 0x45!!
  • Poziom 13  
    RGB liczyłem jako 3 zwykłe.
    Obciążalnośc sumaryczna... DC Current VCC and GND Pins... To to? 300mA.

    Dodano po 16 [minuty]:

    Chciałbym wykożystać Timery do zliczania przez 1/4 lub 1/2 sekundy impulsów na wejściu, a później do sterowania jasnością diod RGB (Timery jako PWM). Jeśli wykożystam tranzystory to na RGB będę potrzebował 3 wyjścia, z wejściem to będzie razem 4. Jak to podłączcyć do ATmegi8?
  • Specjalista - Mikrokontrolery
    dc current vcc and gnd pins - wystarczy przetlumaczyc (prad staly na pinach zasilania i masy), zeby wiedziec, ze to nie to.

    bez uzycia tranzystorow tez musialbys uzyc 3 wyjsc zeby robic to przez PWM, no chyba ze sciemniasz wszystkie 3 czesci na raz, wtedy wystarczy ci jedno.

    0x41 0x56 0x45!!
  • Poziom 13  
    Nie jestem pewny, ale chyba znalazłem.
    The sum of all IOL, for all ports, should not exeed 300mA
    .(..) for ports C0 - C5 (...) not exeed 100 mA
    (...) for ports B0 - B7, C6, D0 - D7 and XTAL2, (...) not exeed 200 mA
  • Poziom 13  
    W takim razie wytrzyma, ale w sumie lepiej sie zabezpieczyć.
    Czy to jest dobre podłączenie?
    Cytat:
    Do każdego wyjścia LED i RGB rezystor (tylko jaki?) i baza tranzystora (BC547?), emiter do masy, a kolektorem do LED i rezystora. Co jest źle?