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

HDDClock - zegar z dysku twardego

mb1988 15 Lis 2009 16:10 248015 236
  • #91 15 Lis 2009 16:10
    mb1988
    Poziom 12  

    Odkryłem drobny błąd w kodzie, który jednak sprawiał ogromne problemy podczas pierwszego uruchomienia zegara. W pierwszym poście znajduje się już poprawione źródło i skompilowany plik.

    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • Relpol
  • #92 16 Lis 2009 21:28
    miszeli
    Poziom 10  

    Hi :D Może mnie zrozumiesz:P

    1)Voltage used in project is 5V :D
    2)You don't must think about it :)
    3) Yes yu can flash it by this connector :)


    Apropo jestem na ukończeniu zegarka :PP

  • #93 21 Lis 2009 02:27
    Sh44dow
    Poziom 16  

    Witam ponownie. Z braku czasu odłożyłem budowę tego zegarka i teraz postanowiłem do niego wrócić. Mam pytanie odnośnie ustawienia timera. Jaki ustawiłeś prescaler? Ustawiasz na szybkie przerwania i je zliczasz czy wpisujesz wartość do timera dokładnie taka, zeby wystąpiło 240 przerwań na obrót? Próbowałem z wpisaniem wartości ale niestety wyszło około 120% czasu na przerwanie ;-). Czy czas obrotu liczysz tym samym timerem?

  • Relpol
  • #94 21 Lis 2009 12:11
    mb1988
    Poziom 12  

    Witam.
    U mnie wygląda to tak (liczniki działają na preskalerze f/8 ):
    - w 16-bitowym timerze zliczam sobie liczbę cykli A na jeden obrót (między dwoma przejściami szczeliny przed czujnikiem)
    - następnie obliczam sobie czas potrzebny na jedno przerwanie B = A / 240 oraz resztę która z powodu działania na intach się pojawia: R = A - (B * 240)
    - i teraz pierwszych R przerwań wywołuję co B+1 cykli, a następne już co B cykli. Dzięki temu obraz sam się dopasowuje do prędkości silnika i dodatkowo nie drży z powodu tego wcześniejszego dzielenia.

  • #95 21 Lis 2009 12:49
    Sh44dow
    Poziom 16  

    Dzięki za podpowiedź.
    Chodziło mi głównie o rozdzielczość. Przy F=8MHz i prescalerze 1 przerwanie występuje co 8,192ms w przypadku 16-bitowego timera, natomiast u mnie obrót trwa około 8,3ms (7,2kRPM). Ja zastanawiałem się nad ustawieniem 8-bitowego na prescaler i co by dało przerwania co by dało przerwanie co 0,032ms i liczyłbym przerwania ignorując stan licznika timera.
    U Ciebie A jest to liczba przerwań (timera*8,192ms)+(aktualna wartość timera * 0,125us), prawda? Nie ma problemów z czasem obliczeń przy każdym obrocie? Jednak jest trochę mnożenia...
    Jak sobie wytnę szczelinę w nowym talerzu (to może nie być łatwy bo jest bardzo podobny do talerza z 40-stki) to pokombinuję.

  • #96 21 Lis 2009 13:24
    mb1988
    Poziom 12  

    Ja w swoim zegarku mam zamontowany kwarc 16MHz. Ponadto talerz kręci się z prędkością 3000rpm (nie ma sensu więcej, bo jakość obrazu się nie poprawia za to hałas i wibracje wzrastają znacznie).

    Może zacytuję siebie jeszcze raz:

    Cytat:
    U mnie wygląda to tak (liczniki działają na preskalerze f / 8 :
    - w 16-bitowym timerze zliczam sobie liczbę cykli A na jeden obrót (między dwoma przejściami szczeliny przed czujnikiem)

    Czyli chodzi mi o to, że gdy szczelina przechodzi przed czujnikiem to odczutuję wartość timera a następnie go zeruję. I tym sposobem, gdy szczelina przejdzie następny raz przed czujnikiem to będę już wiedział ile razy zegar sobie cyknie w ciągu jednego obrotu. Potem znowu kasuję, i znowu czekam na kolejne przejście, za każdym razem otrzymując aktualną liczbę cyknięć na obrót.

  • #97 08 Gru 2009 09:35
    ImPuLs
    Poziom 22  

    Przymierzając się swego czasu do budowy takiego zegara doszedłem do wniosku że:
    1 - nie trzeba szukać układu TDA5140A i najlepiej zostawić oryginalną płytkę elektroniki z dysku. Po podłączeniu zasilania do gniazda MOLEX silnik przecież startuje i kręci non stop z jednakową prędkością;

    lub

    2 - na niektórych płytach z dysków są sterowniki do silników które da się wykorzystać w identyczny sposób jak TDA5140A;


    Wadą rozwiązania [1] jest fakt że pozostawiona elektronika będzie pobierała jakiś prąd który będzie zużywany niepotrzebnie.
     

  • #98 08 Gru 2009 18:41
    whd
    Poziom 10  

    Mój Seagate po ok minucie sie wyłącza, więc [1] nie zawsze zadziała

  • #99 10 Gru 2009 12:24
    PanBo
    Poziom 16  

    Z tym TDA problem polega na tym, że czasem nie udaje mu się rozkręcić silnika, walczyłem z różnymi wielkościami kondensatorów ale na razie bez skutku. Bez obciążenia (talerza i tulejek) nie ma większego problemu, ale po ich założeniu dysk startuje np 5 razy pod rząd, a potem 10 razy nie chce ruszyć i zacina się w jednym położeniu, wydając przy okazji fajne dźwięki.

  • #100 11 Gru 2009 21:54
    miszeli
    Poziom 10  

    Czy ktoś poradził sobie z problemem opisanym post wyżej ??

  • #101 12 Gru 2009 13:45
    alien2
    Poziom 11  

    Może za mocno przykręciłeś talerz do silnika i ten ma problem z wystartowaniem?

  • #102 12 Gru 2009 15:43
    Legolas085
    Poziom 2  

    hello.
    i have a little problem.

    my clock is spinning, and i can take ist on and off. but the LED don't blink. why?

  • #103 13 Gru 2009 19:44
    miszeli
    Poziom 10  

    It's propably gauge , you must find best position for it !

  • #104 14 Gru 2009 00:20
    Legolas085
    Poziom 2  

    I do not understand what you mean by position.

    If I delete the ATMEGA, the LEDs light up.
    But when the source code is loaded, it will not work.
    It may be a broken circuit? or perhaps an error in the source code?

  • #105 15 Gru 2009 18:34
    alien2
    Poziom 11  

    Check the reflective sensor - maybe it's broken.

  • #106 17 Gru 2009 21:18
    miszeli
    Poziom 10  

    Kto pomoże ? Dysk się kręci nie wiem czy z należytą prędkością , diody się świecą ale nie wiem jak precyzyjnie wysterować czujnik ? ew jak podkręcić prędkość obracania się talerza ??

  • #107 17 Gru 2009 22:57
    PanBo
    Poziom 16  

    Zamiast na krawędź nakieruj czujnik na powierzchnię talerza, wtedy lepiej działa. Możesz np zapalać/gasić leda w przerwaniu od czujnika i ręcznie pokręcić talerzem, wyłapiesz wtedy czy przerwanie wywoływane jest dokładnie raz na obrót. Obroty zwiększysz dając wyższe napięcie na silnik. Mój hdd wyciąga 3700 rpm przy 5v i w sumie takie obroty są jeszcze nieco za duże.

  • #108 31 Mar 2010 10:02
    mlassota
    Poziom 18  

    Witam
    Powoli kończę budowę tego zegara - dziś mam dostać ostatnią część czyli diody :)

    W związku z powyższym mam pytanie dotyczące czujnika odbiciowego.
    1. Jaka jest odległość pomiędzy brzegiem talerza a czujnikiem?
    2. Czy płaszczyzna czujnika jest równoległa do brzegu talerza czy trzeba go ustawić pod jakimś kątem

    Jeszcze jedno spostrzeżenie dotyczące wyważenia talerza po przecięciu.
    Z uwagi na zawód mam dostęp do dość dokładnych wag i stwierdziłem ze rozcięcie talerza zmienia jego masę o 122-123 mg czyli "doważka" powinna mieć taką samą wartość. Dla zobrazowania 123 mg to pasek papieru (80g/m2) o wymiarach 30x9mm lub taśma dwustronna klejąca 14x8mm
    Jak skończę - zaprezentuje wyniki :)
    Pozdrawiam serdecznie
    M

  • #109 01 Kwi 2010 15:23
    mb1988
    Poziom 12  

    Witam zainteresowanych :).

    Sprawa z tym czujnikiem jest dość kłopotliwa i wymaga kilku prób i testów, tak aby ustalić odpowiednie dla swojego talerza położenie. U mnie odległość czujnika od krawędzi talerza jest zbliżona do zalecanej w datasheecie wartości i wynosi ok 1mm. Płaszczyzna - nazwijmy ją - detekcji jest zgodna z płaszczyzną talerza. W swoim zegarku testowałem dwa różne talerze i dla każdego z nich musiałem lekko korygować pozycję czujnika.

    Z tym ważeniem talerza przyznam pomysł bardzo dobry, nie wpadłem na to, żeby zastąpić ubytek w metalu czymś o znanej gramaturze. Ale to pewnie przez to, ze nie mam dostępu do aptekarskiej wagi, więc nie miałem odpowiedniej stymulacji :P. Jednak Twój rachunek wydaje się błędny bo skoro 1m^2 papieru ma masę 80g to 123mg odpowiada powierzchnia 0,123/80 = 1,537 * 10^-3 m2. A ponieważ w metrze kwadratowym milimetrów kwadratowych jest aż 10^6 to wynika, że ten kawałek papieru powinien mieć powierzchnię 1537 mm^2, a to bez mała kwadrat o boku 40mm. Chyba, że od razu uwzględniłeś masę jakiegoś kleju :)

  • #110 01 Kwi 2010 20:22
    mlassota
    Poziom 18  

    Szczerze - nie przeliczałem tego... tylko wziąłem pasek i ważyłem :)
    potem wpadłem na pomysł z taśmą dwustronną i ten właśnie zastosowałem (ważyłem oczywiście bez warstwy ochronnej :) ) Co do tej gramatury... to może jest tak ze jest to masa średnia a może faktycznie kartka była grubsza - nie wiem
    Dzięki za odpowiedz
    Pozdrawiam

  • #111 12 Kwi 2010 17:29
    Matt_x89
    Poziom 11  

    Witam.
    Skończyłem dzisiaj budowę zegara i niestety po wgraniu programu nie reaguje w ogóle. Ze strony elektroniki wszystko jest OK. Do układu wgrałem program załączony przez autora i ustawiłem fuse tak jak było na obrazku umieszczonym wcześniej. Do układu NIE wgrywałem bootloadera. Podkreślam że to moj pierwszy kontakt z programowaniem układów. Proszę o pomoc w rozwiązaniu problemu.
    Pozdrawiam.

  • #112 12 Kwi 2010 20:45
    mb1988
    Poziom 12  

    Matt_x89 napisał:
    Ze strony elektroniki wszystko jest OK
    A na jakiej podstawie tak stwierdzasz :P?

    Jeśli nie wgrałeś bootloadera to odznacz sobie bit BOOTRST. Jeśli chcesz otrzymać pomoc musisz niestety podać więcej szczegółów np. czy cokolwiek wgrane do tej atmegi działa (napisać szybciutko jakąś bardzo prostą aplikację testową, chociażby zapalenie wszystkich diod). Również fotki układu mogłyby coś podpowiedzieć. Obojętne co byle więcej niż powiedzenie "nie działa" :P.

  • #113 12 Kwi 2010 21:08
    Matt_x89
    Poziom 11  

    Do wgrania programu użyłem programu AVR Studio 4 i po wyborze modelu układu do programowania jest funkcja do weryfikacji czy to ten układ... Po weryfikacji zapaliły się wszystkie diody na niebiesko, jak sie dobrze przyjrzałem to troszkę widać było że czerwone i zielone świeciły ale niebieski kolor był intensywny. Po wgraniu pliku zgasły. Początkowo wydawało mi się że układ nie reaguje na instrukcję z pilota(uniwersalny) ale po sprawdzeniu miernikiem podczas przyciśnięcia przycisku są spadki napiec z około 5V do 3,5V.

  • #114 12 Kwi 2010 22:25
    mb1988
    Poziom 12  

    Diody świecą dlatego, że są sterowane przez tranzystory MOS. Podczas programowania atmegi jej linie są w stanie wysokiej impedancji i dlatego pojemność bramki tranzystorów się naładowywuje otwierając je tym samym. To, że te diody świecą nie ma raczej nic wspólnego z komunikacją między AVRStudio a prockiem. Natomiast mówisz, że po załadowaniu programu diody gasną i to jest już zdrowy objaw ponieważ zaraz na początku programu na portach nimi sterującymi ustawiany jest stan niski i wcześniej naładowana pojemność bramkowa się rozładowywuje. Pisząc wcześniej, że układ nie reaguje masz na myśli kompletną bezczynność? Silnik się nie kręci? Wklej zdjęcia układu proszę jak masz możliwość (obydwie strony).

  • #115 12 Kwi 2010 22:38
    mlassota
    Poziom 18  

    Witam Kolegów

    Dziś skończyłem obudowę do HDDCLOCK'a więc mogę zaprezentować zdjęcia.

    Dzięki pomocy Autora udało się uruchomić - nie bez małych problemów - zegarek.
    Problemem okazały się śmieci jakie dawał czujnik odbiciowy.
    Po ponownym "wycentrowaniu" talerza - jako, że w moim dysku jest on troszkę wyżej ok 1,5mm niż górna krawędź wirnika dysku - wszystko zaczęło działać jak należy.

    Zegar ukończyłem przed świętami i od tego czasu spóźnił się o ok 4-5 sek.. tj od 2-04-2010 więc jest dokładny
    Po przykryciu przodu słychać go minimalnie - bardzo minimalnie
    Kolory na zdjęciach są co nieco przekłamane - oświetlenie świetlówkami w moim pokoju- warsztacie i pora nocna :( ale co nieco widać Raz jeszcze podziękowania dla Autora projektu!
    Pozdrawiam
    M

    HDDClock - zegar z dysku twardego HDDClock - zegar z dysku twardego HDDClock - zegar z dysku twardego HDDClock - zegar z dysku twardego HDDClock - zegar z dysku twardego

    HDDClock - zegar z dysku twardego HDDClock - zegar z dysku twardego HDDClock - zegar z dysku twardego HDDClock - zegar z dysku twardego

  • #116 12 Kwi 2010 22:49
    Matt_x89
    Poziom 11  

    Tak... zegar jest bezczynny. Silnik wogóle nie reaguje, nie dostrzegam nawet drgań które wskazywałyby że układ próbuje go uruchomić. Wyczyściłem układ i wgrałem program ponownie przy tym odznaczyłem bit BOOTRST i nadal nic. Co do napisania aplikacji testowej to nie pisałem jeszcze nic pod mikroprocesory. Jutro umieszczę zdjęcia układu ponieważ dysponuje obecnie kiepskim aparatem i lepsze zdjęcia wychodzą przy dziennym świetle.

  • #117 12 Kwi 2010 22:54
    mlassota
    Poziom 18  

    Matt_x89 napisał:
    Tak... zegar jest bezczynny. Silnik wogóle nie reaguje, nie dostrzegam nawet drgań które wskazywałyby że układ próbuje go uruchomić. Wyczyściłem układ i wgrałem program ponownie przy tym odznaczyłem bit BOOTRST i nadal nic. Co do napisania aplikacji testowej to nie pisałem jeszcze nic pod mikroprocesory. Jutro umieszczę zdjęcia układu ponieważ dysponuje obecnie kiepskim aparatem i lepsze zdjęcia wychodzą przy dziennym świetle.


    Są dwie możliwości - albo nie ma programu w pamięci Megi albo coś jest nie tak elektroniką tudzież zimny lut na porcie procka komunikującym się z TDA5140

    Po podłączeniu napięcia zegar zaczyna się obracać - nie wymaga żadnej komendy z pilota.
    Co do pilota to MUSI być w standardzie RC5, inne też będą odczytywane przez czujnik podczerwieni ale nie będą rozpoznane przez procesor...

    Jakie masz napięcie na nodze 51 procesora?

    Pozdrawiam
    M

  • #118 12 Kwi 2010 23:07
    Matt_x89
    Poziom 11  

    Na 51 nodze procka miernik wskazuje napięcie 0.02V, czasem podskoczy na 0.03V. Sprawdzałem to napięcie po podłączeniu zasilania bez wydawania poleceń z pilota. Końcówkę miernika przykładam bezpośrednio na nóżkę więc wyklucza to zimny lut na niej. Pilot jest kieszonkowy uniwersalny do telewizorów.

    Pozdrawiam
    Mateusz

  • #119 12 Kwi 2010 23:12
    mb1988
    Poziom 12  

    No, no, no, kolego mlassota, wyszło Ci to całkiem nieźle :). No i gratuluje cierpliwości, bo jak wspomniałeś bez problemów się nie obyło ;).

    :arrow: Matt_x89
    Zanim jeszcze przyślesz fotki zapytam z ciekawości, czy aby na pewno zastosowałeś pod TDA5140A podstawkę precyzyjną? Z uwagi na brak metalizacji otworów taka podstawka jest wymagana i powinna być ona przylutowana z dwóch stron (łatwo to poznać po wzorze ścieżek). Podobnie sprawa ma się z gniazdem programującym, również wymagane są luty na warstwie TOP.

  • #120 12 Kwi 2010 23:17
    mlassota
    Poziom 18  

    Jeszcze jedno pytanie
    Czy procesor ma zasilanie czyli między nogami 52 lub 21 a 22 lub 53

    Brak napięcia na nodze 51 powoduje ze silnik się nie kręci - logika układu TDA5140 nie jest zasilana

    Może to świadczyć bądź o uszkodzeniu procka bądź o np braku połączenia z kwarcem lub zasilaniem...

    Wyjmij z podstawki układ TDA5140 i umieść go ponownie w podstawce wyjmując poza poza podstawkę nogę 8.
    Podłącz zasilanie zegara (5V) i na nogę 8 podaj przewodem +5V - Jeśli ze sterownikiem silnika wszystko jest OK powinien zacząć się kręcić

    Cytat:
    Zanim jeszcze przyślesz fotki zapytam z ciekawości, czy aby na pewno zastosowałeś pod TDA5140A podstawkę precyzyjną? Z uwagi na brak metalizacji otworów taka podstawka jest wymagana i powinna być ona przylutowana z dwóch stron (łatwo to poznać po wzorze ścieżek). Podobnie sprawa ma się z gniazdem programującym, również wymagane są luty na warstwie TOP.


    Tego nie wziąłem pod uwagę ale fakt... To jest rzecz pierwszoplanowa!

    Dzięki... Gdyby nie pomoc ... podobnie jak poprzedni zegarek Twojej konstrukcji i ten nie doczekałby się finalizacji
    PS Jak troszkę ogarnę "warsztat" chyba ponownie zabiorę sie za Propeller Clock - może tym razem dam rade :)

  Szukaj w 5mln produktów