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

ATmega8 - odbiornik RC5 nie odpala

cziken08 22 Lut 2013 21:04 1515 9
  • #1 22 Lut 2013 21:04
    cziken08
    Poziom 9  

    Witam, wykonałem sobie odbiornik RC5 na procku ATmega8, zmontowałem sobie i testowałem lecz nie działa. Dodatkowo dioda świeci cały czas po załączeniu układu a powinna tylko mrugnąć gdy wcisnę guzik na pilocie. Proszę o przejrzenie schematu i programu co może być nie tak? Z góry dzięki za każdą podpowiedź:)
    Przedstawiam schemat:
    ATmega8 - odbiornik RC5 nie odpala

    A to wsad:

    Code:
    '************* Konfiguracja uC *****************
    
    '***********************************************
    $regfile = "m8def.dat"
    $crystal = 12000000

    Config Portb = &B11111111 : Portb = &B11111111
    Config Portd = &B11111011 : Portd = &B11111111
    Config Portc = &B11111111 : Portc = &B11111111

    Config Rc5 = Pind.2
    Dioda Alias Portb.0

    Enable Interrupts
    '********** Konfiguracja uC Koniec  ************

    '******************  Zmienne *******************
    '***********************************************
    Dim Komenda As Byte , Adres As Byte
    Dim Odebrano As Bit , Volg As Bit , Volc As Bit
    '*************  Zmienne Koniec  ****************

    '**************  Petla glowna ******************
    '***********************************************
    Do
      Getrc5(adres , Komenda)
      Komenda = Komenda And &B01111111
      Volg = 1
      Volc = 1
      If Adres = 0 Then
        Reset Dioda

        Select Case Komenda
          Case 1:
              Reset Portc.0
          Case 2:
              Reset Portc.1
          Case 3:
              Toggle Portc.2
          Case 4:
              Toggle Portc.3
          Case 5:
              Toggle Portc.4
          Case 6:
              Toggle Portc.5
          Case 7:
              Toggle Portb.5
          Case 8:
              Toggle Portb.4
          Case 9:
              Toggle Portb.3

        End Select


         Portc.0 = Volg
         Portc.1 = Volc

        Waitms 100
        Set Dioda
         Portc = Portc Or &B00000011
         Portb = Portb Or &B00000000
        Waitms 100
      End If

    Loop
    End
    '************ Petla glowna Koniec **************

    0 9
  • Arrow Multisolution Day
  • #2 22 Lut 2013 21:16
    BlueDraco
    Specjalista - Mikrokontrolery

    To co prawda nie jest przyczyną błędu, ale wyrzuć te 100R przy tranzystorze MOS - tam ma być nie mniej niż 20k, to po pierwsze. Po drugie, BUZ11 nie jest specyfikowany na napięcie braki 4.5V, tylko na 10V i nie nadaje się do sterowania przez mikrokontroler.

    0
  • Arrow Multisolution Day
  • #3 22 Lut 2013 22:17
    cziken08
    Poziom 9  

    To jeśli chce podłączyć taśmę LED to na jakim tranzystorze najlepiej zrobić układ wykonawczy?

    0
  • #4 22 Lut 2013 22:29
    tmf
    Moderator Mikrokontrolery Projektowanie
  • #5 24 Lut 2013 15:38
    cziken08
    Poziom 9  

    Ale jakiego użyć dokładnie? Jaki MOSFET jest sterowany 4-5V?

    0
  • #6 24 Lut 2013 16:18
    BlueDraco
    Specjalista - Mikrokontrolery

    Każdy, w którego karcie katalogowej wyspecyfikowano RDSon dla VGS równego 4.5 V.

    0
  • #7 25 Lut 2013 16:58
    yokoon
    Poziom 28  

    Na porcie Pb0 masz ustawiony stan wysoki więc dioda świeci.
    Włącz diodę odwrotnie , katoda do portu.

    0
  • #8 26 Lut 2013 04:04
    McMonster
    Poziom 32  

    BlueDraco napisał:
    Każdy, w którego karcie katalogowej wyspecyfikowano RDSon dla VGS równego 4.5 V.


    Lub opisany wprost jako "logic level".

    0
  • #9 28 Lut 2013 16:57
    cziken08
    Poziom 9  

    podłączyłem katodą do portu i rezystorem do vcc. Teraz wogóle dioda nie świeci nawet jak przycisne guzik na pilocie.

    0
  • #10 02 Mar 2013 10:32
    yokoon
    Poziom 28  

    cziken08 napisał:
    podłączyłem katodą do portu i rezystorem do vcc. Teraz wogóle dioda nie świeci nawet jak przycisne guzik na pilocie.


    W konfiguracji masz ustawiony stan wysoki (1) i w programie nie zmieniasz stanu na pinie Pb0.

    0