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

Sterowanie modułem nadawczym RF z wykorzystaniem attiny13

15 Lip 2011 11:06 1337 4
  • Poziom 22  
    Witam,

    posiadam moduł nadawczy RF jak tutaj: http://www.hestore.hu/files/HM-T_EN.pdf moim zadaniem jest włączenie tego modułu w momencie wciśnięcia przycisku, który wywołuje procedurę wysyłania danych przez RS'a (w przypadku attiny13 programowy RS). Takie rozwiązanie pozwoli na obniżenie poboru energii z baterii, którą zasilany będzie cały układ. Minus modułu podłączony jest do kolektora tranzystora BC546, emiter do minusa zasilania, a baza przez rezystor 10k do portu PB0. W momencie podania stanu niskiego na pin PB4, który wywołuje transmisję danych, na pinie PB0 ma się pojawić stan wysoki, który wysteruje tranzystor i na moduł podany zostanie minus. I tak się dzieje z tym, że moduł nie zostaje włączony. Układ w takiej konfiguracji działa dopiero po podaniu plusa na bazę bezpośrednio ze źródła zasilania, a nie z portu mikroprocesora. Może coś robię źle, albo o czymś zapomniałem. W jaki sposób to rozwiązać, aby moduł załączany był po podaniu stanu wysokiego na danym pinie uP?
  • Sklep HeluKabel
  • Poziom 25  
    Witam

    Pokaż schemat.
    Jakim napięciem zasilasz układ - 3v, 5v?

    pierwszym co można wywnioskować z opisu to to że po podaniu stanu wysokiego na bezie jest za mały prąd aby wysterować tranzystor.
    Mień rezystor pomiędzy uK a bazą tranzystora na mniejszy np 1k? Powinno pomóc.
  • Sklep HeluKabel
  • Poziom 22  
    Udało mi się rozwiązać ten problem i już działa tak, jak chciałem. Zamieszanie wprowadziła instrukcja otwarcia portu COM, którą umieściłem przed pętlą główną programu, po przeniesieniu jej do pętli do..loop o dziwo program działa prawidłowo. Dodałem jeszcze kondensator 10uF na zasilanie. Program w prosty sposób pozawala nadawać znaki przez RS'a.
    Code:

    $crystal = 9600000
    $hwstack = 20
    $swstack = 10
    $framesize = 40
    Dim R As Byte

    Config Pinb.4 = Input
    Set Portb.4
    Config Pinb.0 = Output
    Reset Portb.0

    Do
    Open "comb.3:9600,8,n,1" For Output As #1
    If pinb.4 = 0 Then
    Gosub Wyslij
    End If
    Loop

    wyslij:
    Set Portb.0
    Waitms 400
    Print #1 , "abc";
    Waitms 1
    For R = 1 To 3
    Print #1 , "uvw";
    Waitms 1
    Next R
    Reset Portb.0
    Return