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.

[Bascom]Program do przekaźników Problem

Popak 23 Paź 2009 17:49 987 3
  • #1 23 Paź 2009 17:49
    Popak
    Moderator na urlopie...

    Witam

    Mam problem z małym programem w bascom-ie, z którym nie mogę poradzić sobie.
    Program jest prosty ale ja jako początkujący nie mogę sobie poradzić z nim, i mam do was prośbę kto pomorze mi w napisaniu takiego programu.
    Program ma sterować dwoma przekaźnikami i ma działać następująco.
    Gdy na wejściu portu PB.0 pojawi się stan niski załącza się przekaźnik K1, a po upłynięciu ok 2-4 sekund załącza sie drugi przekaźnik K2. (oba naraz mają działać)
    Następnie gdy zniknie stan niski na porcie PB.0 przekaźnik K2 wyłącza się, a po upłynięciu 2-4 sekund włącza sie pierwszy przekaźnik K1.
    Mam nadzieję że wiecie o co mi chodzi ;)
    Jak będzie wyglądał program w bascom-ie?
    Poniżej schemat układu i mój programik który nie działa prawidłowo :|
    Bo na porcie Pb.4 jest cały czas stan wysoki i na ułamek sekundy znika. W efekcie przekaźnik klapie.
    Schemat Układu:
    [Bascom]Program do przekaźników Problem

    Kod programu:

    Code:
    '$tiny
    
    $regfile = "attiny13.dat"                                   'plik z definicjami procesora attiny13
    $crystal = 1000000                                          'częstotliwość taktowania procka 1Mhz
                                                               
    Config Portb.0 = Input                                      'Wejście REM
    Config Portb.4 = Output                                     'Przekaźnik GŁOŚNIK
    Config Portb.3 = Output                                     'Przekaźnik REM

    Set Portb.0
    Reset Portb.3
    Reset Portb.4

    Dim Znacznik As Iram Byte
    Znacznik = 0

    Do
     If Pinb.0 = 0 Then
     If Znacznik <> 1 Then
      Set Portb.4
     Wait 2
      Set Portb.3
      Znacznik = 1
     End If
      Else
     If Znacznik <> 2 Then
      Reset Portb.3
     Wait 2
      Reset Portb.4
      Znacznik = 2
     End If
     End If

    Loop
    End

    0 3
  • Pomocny post
    #2 23 Paź 2009 18:10
    gromleon
    Poziom 33  

    Kod programu:

    Code:
    '$tiny
    
    $regfile = "attiny13.dat"                                   'plik z definicjami procesora attiny13
    $crystal = 1000000                                          'częstotliwość taktowania procka 1Mhz
                                                               
    Config Portb.0 = Input                                      'Wejście REM
    Config Portb.4 = Output                                     'Przekaźnik GŁOŚNIK
    Config Portb.3 = Output                                     'Przekaźnik REM

    Set Portb.0
    Reset Portb.3
    Reset Portb.4

    Dim Znacznik As Iram Byte
    Znacznik = 1

    Do
    if znacznik = 1 then
     If Pinb.0 = 0 Then
      Set Portb.4
     Wait 2
      Set Portb.3
    znacznik = 2
     End If
    end if
    if znacznik = 2 then
     If pinb.0 = 1 Then
      Reset Portb.3
     Wait 2
      Reset Portb.4
    znacznik = 1
     End If
    end if

    Loop
    End


    kodu nie sprawdzałem ale powinien działać

    0
  • Pomocny post
    #3 23 Paź 2009 18:18
    Oineh
    Poziom 20  

    Na moje oko wygląda to tak, że może zanika zasilanie daj jakiś elektrolit przed stabilizator z jakieś 200uF lub więcej. Program wygląda na działający. Może to co włączasz przekaźnikami na chwilę mocno obciąża zasilanie. Zamiast przekaźników podłącz diody i zobacz czy świecą tak jak powinny... Na symulatorze oba programy chodzą jak powinny sprawdziłem.

    0
  • #4 23 Paź 2009 18:18
    Popak
    Moderator na urlopie...

    Witam
    Dzięki za szybką odpowiedź ale Program nie działa.
    Jest to samo co w moim programie na porcie PB.4 jest stan wysoki i dodatkowo od czasu do czasu pojawi się stan wysoki na sekundę na porcie PB.3

    Oineh
    Bingo :D Masz rację dałem kondensator 220uF i wszystko działa tak jak trzeba. Muszę tylko po testować dłuższą chwile aby czasem sam się nie załączał przekaźnik.

    Jeszcze raz dzięki :D
    Pozdrawiam

    0