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

Jak dodać sterowanie pilotem do selektora na przekaźnikach?

cudny90 01 Sty 2009 16:44 2139 5
  • #1 5933216
    cudny90
    Poziom 14  
    Posty: 182
    Ocena: 9
    Witam wszystkich userów.

    Zbudowałem sobie selektor na przekaźnikach - o taki:

    Jak dodać sterowanie pilotem do selektora na przekaźnikach?

    I chciałbym teraz dodać do niego sterowanie na pilota. Niestety nie umiem programować, ale może ktoś już zrobił taki układzik?

    Ma wyglądać tak, że procek po odebraniu sygnału od odbiornika podczerwieni na moment łączy obwód i rozłącza - wtedy następuje pstryk :)

    Nie wiem, może zrobić by to na atmega8 .. ?

    Proszę o pomoc i pozdrawiam :)
  • #2 5941467
    Mariusz Ch.
    VIP Zasłużony dla elektroda
    Posty: 6181
    Pomógł: 866
    Ocena: 462
    Witam.


    Na wstępie zadam pytanie retoryczne: "Ile tematów o zdalnym sterowaniu przeczytałeś na forum?". Znalazłem około 2500.

    Jeśli potrzebujesz tylko jednej funkcji, to zbędne jest stosowanie mikroprocesora. Można zastosować bardzo proste rozwiązania.

    W przypadku podczerwieni można zastosować MC1024 i 1025. Jeśli wybierzesz sterowanie radiowe, to najprostszym rozwiązaniem jest ...... zakup dzwonka bezprzewodowego i dostosowanie do potrzeb. Nadajnik masz gotowy. Z dzwonka usuwasz niepotrzebne elementy. Zostaje tylko odbiornik i dekoder.

    Pzdr.

    Zobacz.
  • #3 5941543
    prezeswal
    VIP Zasłużony dla elektroda
    Posty: 3869
    Pomógł: 517
    Ocena: 177
    Można także zastosować dowolny odbiornik podczerwieni (np. TSOPxxxx), odebrane z dowolnego "pilota" zdalnego sterowania (np. OTV) impulsy - wyprostować (scałkować) i utworzyć jeden impuls, którego narastające lub opadające (po "odwróceniu") zbocze będzie wyzwalać 4017.
    Pozdrawiam.

    ps. jeśli koniecznie chcesz "skomputeryzować" swoje urządzenie, to 4017 jest zbędny - "procek" i odpowiedni program poradzą sobie bez licznika :D

    ps. 2, no tak, ale mam wrażenie, że prawdopodobnie powtórzyłem któryś z pomysłów z linków "zobacz" kol. Mariusza :|
  • #4 5941567
    cudny90
    Poziom 14  
    Posty: 182
    Ocena: 9
    No tylko problem jest w tym, że w przedwzmacniaczu mam już jeden układ do włączania ... na attiny2313 i do tego pilot, tak więc chciałbym, aby układ przełączania selektora na pilot był zdolny zapamiętać kod z pilota, żebym jednym pilotem mógł włączać przedwzmacniacz i tym samym pilotem zmieniać źródła ...

    Układ włącznika ma zdolność zapamiętywania ...
  • #5 5941818
    januss73
    Poziom 32  
    Posty: 1618
    Pomógł: 193
    Ocena: 56
    Tiny2313 który już masz jest na pewno niewykorzystany i po dostosowaniu układu na pewno poradziłby sobie też z selektorem. Praktycznie skoro masz już selektor na przerzutniku wystarczy jeden wolny pin. Przerobienie kodu to też nie wielka filozofia. Zamieść może kod do tego włżcznika.
  • #6 5942026
    cudny90
    Poziom 14  
    Posty: 182
    Ocena: 9
    'Moduł zdalnego sterowania
    'Marcin Połomski
    'marcin1326@tlen.pl
    
    $prog &HFF , &H64 , &HDF , &H00                             ' generated. Take care that the chip supports all fuse bytes.
    
    Dim Licznik0 As Byte , Licznik1 As Byte , Tab(50) As Byte , X As Byte , Flaga As Bit , Dlugosc As Byte , Tryb As Bit
    Dim Zmienna As Byte , Czydobre As Bit , Stanpoprzedni As Bit , Stanaktualny As Byte
    
    Config Portd.2 = Output
    Config Portd.5 = Input
    Config Portb.5 = Input
    Config Portb.6 = Input
    
    Wyjscie Alias Portd.2
    Podczerwien Alias Pind.5
    Przycisk1 Alias Pinb.5
    Przycisk2 Alias Pinb.6
    
    Enable Interrupts
    
    Config Timer0 = Timer , Prescale = 64 : On Timer0 Co48us
    
    Disable Timer0
    
    Licznik0 = 0 : Licznik1 = 0
    Flaga = 1 : X = 1
    
    Timer0 = 244
    
    Stanpoprzedni = Przycisk1
    Readeeprom Stanaktualny , 100
    Wyjscie = Stanaktualny.0
    
    Waitms 500
    Do
       If Podczerwien = 0 Then Enable Timer0
       If Przycisk2 = 0 Then Tryb = 1
       If Przycisk1 <> Stanpoprzedni Then
          Toggle Wyjscie
             Stanaktualny.0 = Wyjscie
             Writeeeprom Stanaktualny , 100
          Stanpoprzedni = Przycisk1
          Wait 1
             End If
    Loop : End
    
    
    Co48us:
    Timer0 = 250
    '==========Jeżeli pind.2 = 0===========================
    If Podczerwien = 0 Then
       If Flaga = 1 Then
          Licznik0 = 0
           If Licznik1 <> 0 Then
             Tab(x) = Licznik1
             Incr X
          End If
       End If
       Incr Licznik0
       Flaga = 0
    End If
    '==========Jeżeli pind.2 = 1===========================
    If Podczerwien = 1 Then
       If Flaga = 0 Then
          Licznik1 = 0
          If Licznik0 <> 0 Then
             Tab(x) = Licznik0
             Incr X
          End If
       End If
       Incr Licznik1
       Flaga = 1
    End If
    '==========Jeżeli licznik1 = 255========================
    If Licznik1 = 255 Then
       Dlugosc = X
       X = 1
       Czydobre = 0
    '==========Zapisywanie jeśli tryb = 1====================
       Do
       If Tryb = 1 Then
          Writeeeprom Tab(x) , X
       End If
    '==========Sprawdzanie poprawności jeśli tryb = 0========
       If Tryb = 0 Then
          Readeeprom Zmienna , X                                'odczytywanie z pamięci EEPROM
          Zmienna = Zmienna - 3                                 'tolerancja 150us  (trzy przerwania od timera0
          If Zmienna <> Tab(x) Then
             Incr Zmienna
             If Zmienna <> Tab(x) Then
                Incr Zmienna
                If Zmienna <> Tab(x) Then
                   Incr Zmienna
                   If Zmienna <> Tab(x) Then
                      Incr Zmienna
                      If Zmienna <> Tab(x) Then
                         Incr Zmienna
                         If Zmienna <> Tab(x) Then
                            Incr Zmienna
                               If Zmienna <> Tab(x) Then
                                  Czydobre = 1
                      End If : End If : End If : End If : End If : End If : End If
       End If
          Incr X
             Loop Until X > Dlugosc
    
       If Czydobre = 0 Then                                     'jeżeli czasy się zgadzają
          Toggle Wyjscie                                        'to zmień stan wyjścia
          Stanaktualny.0 = Wyjscie                              'zapisz aktualny stan wyjścia
          Writeeeprom Stanaktualny , 100                        'odczekaj sekundę
          Wait 1
             End If
       Tryb = 0                                                 'zmień tryb na 0
    
       Licznik1 = 0
       Disable Timer0
       X = 1
    
    End If
    
    Return


    Jest to włącznik avt-2851.
REKLAMA