logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[BASCOM] Jak wyliczyć 36kHz--- bariera optyczna

ShEvU_elektro 14 Lip 2011 20:19 3728 21
  • #1 9718692
    ShEvU_elektro
    Poziom 25  
    Witam,
    Tematów jakich przeczytałem to setki lecz nadal mam problem.
    Timer wygląda tak:
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 32
    $swstack = 32
    $framesize = 32
    
    
    Config Timer0 = Timer , Prescale = 1
    
    
    On Timer0 Ir
    'On Int0 Pierwsza Nosave
    'On Int1 Druga Nosave
    
    
    Enable Interrupts
    Enable Timer0
    Load Timer0 , 53


    Obsługa przerwania tak:
    Ir:
    Load Timer0 , 53
    Toggle Dioda
    
    Return


    Czy wartość 53 to dobra wartość, która wpisuję do timera?
    Może ktoś mi to dokładnie pokazać jak liczyć?
    Bariera działa, zasięg około 1,5m lecz potrzebuje większy. Wydaje mi się że nie wstrzeliłem się w 36kHz....
    Pilotem od TV zasięg jest niesamowity, a elektronikę zaadaptowałem z pilota....
  • #2 9718726
    tadzik85
    Poziom 38  
    A skąd mamy wiedzieć jakie taktowanie procka jest?
  • #3 9718781
    gaskoin
    Poziom 38  
    ShEvU_elektro napisał:

    Bariera działa, zasięg około 1,5m lecz potrzebuje większy. Wydaje mi się że nie wstrzeliłem się w 36kHz....
    Pilotem od TV zasięg jest niesamowity, a elektronikę zaadaptowałem z pilota....


    Jakbyś się nie wstrzelił w te rejony to nic by nie działało, może za mały prąd przez diode przepuszczasz stąd taki słaby zasięg ?
  • #4 9718822
    ShEvU_elektro
    Poziom 25  
    Przepraszam juz poprawione.
    Jeśli jest daleko i nie widać reakcji na odbiorniku, szybko poruszając diodą raz w strefe "widzenia" odbiornika raz w strefie "bez widzenia" widać reakcje odbiornika.
    Więc na pewno jest to problem częstotliwości, bynajmniej tak mi się wydaje
  • #5 9718863
    piotrva
    VIP Zasłużony dla elektroda
    A myślisz, że ruszasz nią z częstotliwością zbliżoną do 36 kHz?
    Bo mnie się wydaje, że nie.
    Swoją drogą, moim zdaniem powinieneś załadować do timera wartość 111, wtedy na wyjściu osiągniesz 8000kHz/111=~72 kHz, i jak będziesz stosował Toggle to na wyjściu osiągniesz f=~36kHz
  • #7 9718910
    ShEvU_elektro
    Poziom 25  
    I też tak myślałem......niestety wartość 111 i obok niej nie działają w ogóle :/
    Fuse-y na pewno ustawione są ok

    Dodano po 36 [minuty]:

    Nadal to samo, zastanawia mnie czemu jak szybko ruszam diodą nadawczą to i z 3 metrów widać impulsy diody....
  • #9 9719750
    ShEvU_elektro
    Poziom 25  
    No właśnie jeszcze nie :-( Coś czuje że niedługo zakupię...
  • #10 9720030
    manekinen
    Poziom 29  
    Ciekawi mnie czym taktujesz ten układ. Jeśli z kwarcu to ok. Jeśli z wewnętrznego oscylatora to nie licz na to że będzie tak jak podałeś 8,000000. Często ta fabryczna częstotliwość daleko odbiega od 8MHz i trzeba sobie w domu skalibrować.
  • #11 9720398
    ShEvU_elektro
    Poziom 25  
    Taktowanie ustawione jest ustawione na 8MHz z wewnętrznego oscylatora...
    Jakoś nie potrafię sobie wytłumaczyć co jest źle.

    Wycinek schematu poniżej.
    [BASCOM] Jak wyliczyć 36kHz--- bariera optyczna
  • #12 9720696
    manekinen
    Poziom 29  
    Masz jeszcze jedno (chyba najprostsze) rozwiązanie. Widzę że używasz uarta. Zrób sobie pętelkę która będzie zwiększała zmienną , wpisywała ją w rejestr timera, wysyłała ją przez uart, i czekała np 500ms. Patrz kiedy układ będzie miał największy zasięg i spisz sobie wartość timera, lub kilka wartości i średnią wylicz.
  • #13 9720786
    pepson
    Poziom 18  
    Witam.

    Cytat:

    Jeśli jest daleko i nie widać reakcji na odbiorniku, szybko poruszając diodą raz w strefe "widzenia" odbiornika raz w strefie "bez widzenia" widać reakcje odbiornika.

    Nie wiem czym to odbierasz, ale na postawie powyższego zdania
    wnioskuję, że oprócz nośnej 36kHz sygnał musi być zmodulowany
    Tak więc trzeba dodać jakieś kluczowanie tego przebiegu 36kHz.
  • #15 9721003
    ShEvU_elektro
    Poziom 25  
    Cytat:

    Nie wiem czym to odbierasz, ale na postawie powyższego zdania
    wnioskuję, że oprócz nośnej 36kHz sygnał musi być zmodulowany
    Tak więc trzeba dodać jakieś kluczowanie tego przebiegu 36kHz.


    Wykorzystuję scalony odbiornik, kiedy "zobaczy" nośną ~36kHz na jego wyjściu jest stan niski
  • #16 9721046
    pepson
    Poziom 18  
    Cytat:

    Wykorzystuję scalony odbiornik, kiedy "zobaczy" nośną ~36kHz na jego wyjściu jest stan niski

    No właśnie, kiedy "zobaczy" ale jak dłużej popatrzy, to jego
    układy automatycznej regulacji wzmocnienia przyzwyczają się do tego
    i odbiornik stwierdzi, ze to poziom szumów tła.
    Z bliskiej odległości to działa, bo automatyka jest przesterowana
    i nie jest w stanie się dostosować.
    Zmoduluj sygnał i napisz o efektach.
  • #17 9721147
    ShEvU_elektro
    Poziom 25  
    Ok, postaram się coś wykombinować :) Napiszę o efektach
  • #18 9722257
    piotr5000
    Poziom 21  
    Wartość dla timera0 = 34 , przerwanie co 27,75usek f = 36036 Hz
  • #21 9744326
    ShEvU_elektro
    Poziom 25  
    Panowie, czy możecie napisać jakiś przykład modulacji podczerwieni?
    Męczę się z tym i nie mam już pomysłów.
    Wykorzystałem drugi timer do odmierzania krótkiej chwili (doświadczalnie).
    Działa to tak że jeden timer co okolo 100ms wysyła nośną 36kHz, gdzie ta generowana jest drugim timerem.
    Nie zadowala mnie to ponieważ musi być to tak jakby ciągły sygnał.....
    Czy można coś takiego w ogóle osiągnąć?
  • #22 9747898
    pepson
    Poziom 18  
    Okres 100ms może nie być najlepszym rozwiązaniem.
    Ja proponuję kluczowanie sygnału 36kHz z trochę większą częstotliwością
    Programowo to chyba nie jest dla Ciebie problemem.
    Wystarczy przez 3..5ms generować sygnał 36kHz,
    po tym czasie zablokować przerwanie od timera który tą częstotliwość wypracowuje
    (przy okazji stan wyjścia tak ustawić, żeby dioda IRED była wyłączona).
    Odczekać ponownie 3..5ms i odblokować przerwanie.
    Cykl zacząć od początku.
    Przerwy można zrobić większe co spowoduje zmniejszenie średniego poboru prądu
    przez nadajnik.

    Oczywiście po demodulacji na wyjściu odbiornika otrzymamy przebieg prostokątny
    zgodny z okresem jakim modulujemy sygnał w nadajniku.

    Jeżeli dobrze rozumiem, chcesz mieć ciągły sygnał na wyjściu odbiornika
    do czasu aż wiązka podczerwieni nie zostanie przerwana.

    Można to robić programowo w odbiorniku (np. zliczanie impulsów w jednostce czasu)
    lub mniej elegancko przy pomocy filtru dolnoprzepustowego RC.



    [BASCOM] Jak wyliczyć 36kHz--- bariera optyczna

    [BASCOM] Jak wyliczyć 36kHz--- bariera optyczna

    Najlepiej jednak zastosować jakiś kod do transmisji (nawet jeden z kodów RC5)
    wtedy można poprawić odporność bariery na obce źródła promieniowania podczerwieni.
REKLAMA