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

Nowy projekt i problem z zgarkim, zliczaniem impulsów z portu czyli zmiany biegó

Mimitron 07 Gru 2011 18:09 7176 85
  • #31 07 Gru 2011 18:09
    emarcus
    Poziom 35  

    Mimitron napisał:
    Mam tak jak pisałem wcześniej

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Mam nadzieje że dzisiaj dojdą te kwarce 32768Hz
    Skoro interesuje mnie tylko data to linia "Config Date = Mdy , Separator = /" i "Date$ = "11/11/00" jest mi zbędna ?


    Skoro interesje cię "tylko DATA" to linie konfiguracji i wartości początkowej daty sa konieczne. Zdaje sie że miałeś na myśli "TIME" -czas; odnosząc się do "DATE" - data.
    Zauważ że: wpis
    Time$ = "02:20:00" (podobnie jest dla daty)
    - jest wartością początkową zmiennej czasu (w momemncie włączenia zasilania do procesora) , która jest incrementowana co sekundę. W twoim projekcie będzie wymagane uzupełnić software i hardware umożliwiające na dowolne uaktualnienie tej zmienmnej w "Run time" (w czasie pracy programu).

    e marcus

  • #32 08 Gru 2011 00:42
    Mimitron
    Poziom 20  

    Miałem na myśli TIME$ oczywiście.
    Wiem że czas zacznie być zliczany od godziny wpisanej przed główną pętlą.
    Ustawienie poprawnej godziny mam już zrobione:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Zauważyłem ze na tym kwarcu o nieznanej wartości który wydłubałem z zegarka sekunda trwa 3 minuty. Co ok 3 minuty sekundy są zwiększane.

    Poniżej podaje cały program:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Dodano po 2 [godziny] 7 [minuty]:

    Dałem jeszcze inny kwarc i zegarek zasuwa tak że na oko 10 sekund odpowiada 1 sekundzie w rzeczywistości. Czyli wina kwarcu. Pozostało czekać na przesyłkę z 32768Hz

    Dodano po 1 [godziny] 14 [minuty]:

    Zacząłem se bawić zliczaniem przejechanego dystansu. W jaki sposób dobrać odpowiedni kondensator w układzie "dopasowującym" Nowy projekt i problem z zgarkim, zliczaniem impulsów z portu czyli zmiany biegó

    Zakładając że maksymalna prędkość o 190km/h a obwód koła ma 1,9m.
    190km/h = 52,8m/s
    52,8 /1,9 = około 27 impulsów na sekundę.
    To daje impuls co 37 ms

    W tej chwili mam kondensator 100n, jak obliczyć prawidłową wartość kondensatora. A może poza przerwaniem na zboczu sprawdzać stan a portu i dać opóźnienie waitms.
    W tej chwili realizuje to poprzez inkrementacje zmiennej w przerwaniu.

  • #34 08 Gru 2011 01:08
    Mimitron
    Poziom 20  

    Zamierzam użyć takiego jak są przy licznikach rowerowych. Często robi się tak że dla motocykli z licznikami wyskalowanymi w milach zakłada się licznik rowerowy właśnie między innym do pomiaru dystansu. 190km/h to maksymalna prędkość, w motocyklach typu naked bike jakim jest moja Honda CB 500 ( bez owiewek ) prędkość podróżna mieści się gdzieś maksymalnie przy 120km/h, powyżej tej prędkość robi się już trochę nie przyjemnie na dłuższym dystansie ;) no chyba że chce się zaszaleć, wtedy to co innego ;)

  • #35 09 Gru 2011 10:30
    Mimitron
    Poziom 20  

    Pobawiłem się trochę z zamontowaniem tych kontaktronów i doszedłem do wniosku że zamienię je na hallotrony. Niestety nie miałem nigdy do czynienia z nimi. Wiem że powinienem zastosować czujnik Halla unipolarny np. TLE49353L. Obawiam się jednak że taki czujnik będzie bardzo wrażliwy na zakłócenia z silnika.

    Nowy projekt i problem z zgarkim, zliczaniem impulsów z portu czyli zmiany biegó

  • #36 09 Gru 2011 14:32
    emarcus
    Poziom 35  

    [quote="Mimitron"] Wiem że powinienem zastosować czujnik Halla unipolarny np. TLE49353L. Obawiam się jednak że taki czujnik będzie bardzo wrażliwy na zakłócenia z silnika.

    Więc podłącz go zgodnie z Datasheet (Figure 8. Application Circuit).
    Do podłączenia możesz użyć ekranowaną skrętke.

    e marcus

  • #37 09 Gru 2011 23:41
    Mimitron
    Poziom 20  

    Wydłubałem hallotron 276 z wentylatorka. Jest on bipolarny o 2 wyjściach. Biegun N włącza jedno wejście a po przyłożeniu bieguna S następuje przełączenie na drugie wejściu i na odwrót. Miałem pomysł zastosowania jednego takiego hallotronu i 2 magnesów, teoretycznie leprze rozwiązanie bo ograniczył bym ilość hallotronów do jednego ale czy idzie zrobić tak zęby wyłączyć oba wyjścia ?

    http://html.alldatasheet.com/html-pdf/94227/ANACHIP/ATS276/245/1/ATS276.html



    Już wiem że nie :) ( driver w silniku bez szczotkowym)

  • #38 10 Gru 2011 18:07
    emarcus
    Poziom 35  

    Mimitron napisał:


    Poniżej podaje cały program:


    Przeglądnąłem go....., -bez urazy; - nie zbyt dobrze (!!!)
    Odnośnie czasu:
    Masz tam podwójną deklaracje tych samych zmiennych, a już procedura ustawiania aktualnego czasu jest jakąś całkowicie zbyteczną kombinacją; - bardziej tego nie da się skomplikować.
    W skrócie:
    Korzystasz z wbudowanej w Bascom procedury obsługi zegara;
    "Config Clock = Soft "
    -tu Bascom robi wszystko za ciebie co jest potrzebne w tej procedurze, t.zn.
    konfiguruje Timer2 (dlatego nie możesz go używać w programie), wymiaruje i deklaruje wszystkie zmienne.
    Twoim (programisty) zadaniem jest tylko odblokować globalnie interrupty,
    wyświetlić gotowy wynik sformatowany w 'Time$' i odpowiednio ustawić aktualny czas. Bardzo nie wiele!!!
    <Config Clock> używa wewnętrznych zmiennych: (Znajdż w HELP w Bascom i przykładach).

    _day , _month, _year , _sec, _hour, _min ; tu chyba jest jasna reprezentacja odpowiednich zmiennych.
    Wszystkie sa zwymiarowane jako bytes

    Aby ustawić aktualny czas, wystarczy wyedytować odpowiednie (niektóre tylko z powyżej) zmienne. Możesz to zrobić na jednym przycisku i kilka (4-5) linijek kodu warunkowego, bądź to w programie głównym, albo w oddzielnej subrutynie.

    e marcus

  • #39 10 Gru 2011 18:20
    Mimitron
    Poziom 20  

    e marcus moja znajomość bascom-a i uC jest bardzo znikoma, jestem początkującym. Większość rzeczy jakie robię to robię bardziej na wyczucie niż z wiedzy :) Każda uwaga i wytkniecie błędu jest dla mnie na wagę złota :)

  • #40 14 Gru 2011 19:44
    Mimitron
    Poziom 20  

    Przyszły mi te rezonatory kwarcowe 32768 Hz, wlutowałem i zonk bo sekunda trwa 5 minut :/

  • #42 14 Gru 2011 20:22
    Mimitron
    Poziom 20  

    Na 4 kwarce jest to samo. Po podłączaniu zasilanie nie chodzi, ale po dotknięciu palcem jednej z nóżek zegarek rusza normalnie. Czy nie powinien tam być jeszcze jakiś kondensator ?

    Dodano po 1 [minuty]:

    xtal1/tosc1 PB6 i xtal2/tosc2 PB7

    Dodano po 2 [minuty]:

    Podłączyłem xtal2/tosc2 PB7 poprzez kondensator 27p do masy i rusza za każdym razem po podłączeniu zasilania :D

  • #44 14 Gru 2011 21:18
    Mimitron
    Poziom 20  

    Datasheet nie oglądałem, sugerowałem się wszystkimi schematami jakie udało mi się znaleźć na temat tego rodzaju układu czyli wewnętrzny rezonator do pracy uC i kwarc 32768Hz do taktowania timer2 i na żadnym ni było kondensatora :)

  • #45 14 Gru 2011 21:22
    dondu
    Moderator Mikrokontrolery Projektowanie

    Mimitron napisał:
    Datasheet nie oglądałem, sugerowałem się wszystkimi schematami jakie udało mi się znaleźć na temat tego rodzaju układu czyli wewnętrzny rezonator do pracy uC i kwarc 32768Hz do taktowania timer2 :)

    To błąd - w datasheet wszystko pięknie i ładnie napisane z obrazkami i tabelkami.
    Zmień podejście - na prawdę warto zaczynać od datasheet, a dopiero później szukać info w sieci.
    Jak pisałem są dwie możliwości - szukaj w datasheet.

  • #46 14 Gru 2011 21:28
    Mimitron
    Poziom 20  

    Rozumiem że w datasheet jest wszystko ale moja znajomość angielskiego nie pozwala mi na czytanie datasheet ze zrozumieniem. Dla tego szukam informacji w sieci a nie zaglądam do datasheet

  • #47 14 Gru 2011 21:39
    dondu
    Moderator Mikrokontrolery Projektowanie

    Obrazki i tabelki nie wymagają znajomości angielskiego. Możesz także korzystać z podwójnego tłumacza, którego przygotowałem oraz polskiej dokumentacji do Atmega16 i 128 - to także AVRy i wiele spraw jest dokładnie takich samych.

    Ten kwarc 32,768 używasz do Timera2 w trybie asynchronicznym, czy do napędzania mikrokontrolera?

  • #48 14 Gru 2011 23:33
    Mimitron
    Poziom 20  

    Timer2 w trybie asynchronicznym a uC idzie na wewnętrznym oscylatorze 8MHz

    Dodano po 7 [minuty]:

    Po 3 godzinach pracy już się spieszy o 3 sekundy :|

    Dodano po 12 [minuty]:

    Z tego co zrozumiałem z opisu przy problemie z asynchroniczną pracą timera2 należy poprzez kondensatory 20 - 36pF połączyć tosc1 i tosc2 z masą. Czy te śpieszenie się zegarka to wina tego że mam jeden kondensator na tosc2 czy wina kwarcu ?

  • #50 14 Gru 2011 23:46
    Mimitron
    Poziom 20  

    Czyli mam mieć ustawiony fusebit na 1001 i dolutować kondensatoray 36pF ?

  • #52 14 Gru 2011 23:51
    Mimitron
    Poziom 20  

    mam ustawione 1: CKOPT1 więc chyba są włączone

  • #54 14 Gru 2011 23:56
    Mimitron
    Poziom 20  

    Sprawdzałem CKOPT. Bez kondensatora i z ustawieniem 1:CKOPT 1 timer nie ruszał. Cały czas miałem ustawione 1:CKOPT 1 i dopiero po dolutowaniu kondensatora zegarek rusza.

  • #56 14 Gru 2011 23:59
    Mimitron
    Poziom 20  

    Przecież bez kondensatora i ustawianiem CkOPT 1 nie ruszał. Ale Odlutuje i sprawdzę jeszcze raz.

  • #58 15 Gru 2011 00:04
    Mimitron
    Poziom 20  

    No podłączem atmege do programatora, uruchomiłem bascom i sprawdziłem ustawienie fusebitów i CKOPT jest ustawione na 1:CKOPT1. Po odlutowaniu kondensatora zegarek znów nie rusza.

  • #60 15 Gru 2011 00:11
    Mimitron
    Poziom 20  

    Zaraz sprawdzę.
    Daje moje ustawienie fusebitów:


    Nowy projekt i problem z zgarkim, zliczaniem impulsów z portu czyli zmiany biegó

    Dodano po 1 [minuty]:

    Ruszyło na ustawieniach 0: CKOPT 0