Przełącznik źródeł/ przełącznik wejść


Witam. Mam pytanie: na pewno każdy z Was robił kiedyś wzmacniacz akustyczny, czy mieliście w nim przełącznik źródeł ? Wpadłem na pomysł żeby zrobić przełącznik wejść na Atmega8 oraz na lcd2x16, gdyż te elementy akurat mi zalegają. Wiem, że można dać po prostu isostaty lub przełącznik obrotowy, jednak chciałem coś, co będzie jakoś się prezentowało (wyświetlacz). Ogólny zarys mam w głowie, jeśli ktoś będzie chętny możemy wspólnymi siłami zrobić coś takiego. Potrzebna mi pomoc w napisaniu kodu do atmegi, z programowaniem sobie dam radę.




Portret użytkownika mirley

Re: Przełącznik źródeł sygnału

Można oczywiście użyć do tego ATMEGA i przekaźniki ale co chcesz pokazywać na tym wyświetlaczu? napisy w stylu "radio", "komputer" itp. Program do czegoś takiego jest banalny i nie ma się nad czym zastanawiać, można zrobić jedem uSw i ileś przekaźników do przełączania wejść.

Sam nie stosuje żadnego selektora wejść w swoich wzmacniaczach bo jeszczenigdy nie użyłem drugiego wejścia mimo że było zrobione.

Przedstaw swoją wizję takiego urządzenia, czy sterowanie na uSW jest zadowalające, czy może jeszcze dodatkowe funkcje ma pełnić takie urządzonko

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika tomciacki

Przełącznik źródeł do wzmacniacza

Na wyświetlaczu może być np: Konsola oraz Ipod, bo te dwa urządzenia są brane pod uwagę. Oczywiście mogą być inne jak TV, DVD i inne. Mnie właśnie chodzi o dwa pierwsze. Sam przełącznik może być 3-4 wejściowy. Fajnie by było tak zrobić, żeby jeden uSW przełączał wejścia. Każde oznaczone jedną diodą LED.

Portret użytkownika drowning_man

Witam, piszesz "Na

Witam,
piszesz "Na wyświetlaczu może być np: Konsola oraz Ipod,..." a później "Każde oznaczone jedną diodą LED. ". Wg mnie albo LCD albo LED'y, no chyba że ten mały przerost formy nad treścią miał byc celowy:-). Trochę szkoda wykorzystywac atmegę tylko do przełaczania źródeł, no chyba że chcesz dorobic do tego np pilota ... itp. Pozdrawiam.

Portret użytkownika tomciacki

Przełącznik źródeł sygnału

Z tymi diodami faktycznie coś namieszałem :), mogło być tak, że sama atmega bez wyświetlacza z diodami, lub z wyświetlaczem bez diod. Atmega, jak napisałem w pierwszym poście zalega mi w szufladzie razem z wyświetlaczem, stąd pomysł, bo wzmacniacz w drodze.. No więc nadal proszę o jakiś pomysł na wsad do tej kości.

Portret użytkownika mirley

Re: Przełącznik sygnału

Wyświetlacz to raczej trochę zbyt zaawansowany element jak na taki prosty projekt. tak samo ATMEGA8. Polecam kupić ATTINY2313, a ten zalegający ATMEGA8 wykorzystać później do bardziej złożonej konstrukcji (procesor sie nie psuje od siedzenia w szufladzie, a attiny jest tańszy). Do sygnalizacji wejść wystarczą diody. W roli elementów przełączających mogą być przekaźniki i dodatkowo jeden uSW do klikania i zmieniania wejść. Nad programem pomyslimy jak już zdecydujesz co dokładnie chcesz podłączyć (diody czy ten wyświetlacz) i ile tych wejść będzie oraz jaki mikrokontroler finalnie będzie pracował.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika tomciacki

Przełącznik sygnału

No dobra, niech będzie attiny2313, trzy wejścia stereo przełączane jednym uSW i trzy przekaźniczki. Trzy malutkie niebieskie diodki będą ok. Czyli naciskając guziczek przeskakują wejścia w pętli, czyli a,b,c,a,b,c itd.

Portret użytkownika mirley

Re: Wejścia

No to ok :) W takim razie to tylko kilka linijek, napiszę we wtorek lub środę bo na razie brak czasu :)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika drowning_man

Ale skoro maja to byc wejścia

Ale skoro maja to byc wejścia stereo to czy nie powinno byc 6 przekaźników? Po jednym na kanał, 3 wejścia po dwa kanały czyli wg mnie 6...i wtedy jek zapali sie dioda np "1" to załacza dwa przekaźniki, jak dioda "2" to poprzednia dwa wyłacza, a załacza dwa następne...chyba, że jest jakieś inne rozwiazanie o którym nie wiem:-)

Portret użytkownika mirley

Re: Przekaźniki

No jest rozwiązanie .... przekaźnik z podwójnym stykiem rozwiązuje problem i oszczędza energie :)

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika drowning_man

No chyba, ze tak:-)

No chyba, ze tak:-)

Portret użytkownika mirley

Re: Przekaźniki

Nawet gdyby dać pojedyńcze przekaźniki to tak zawsze można podłaczyć po dwa pod jeden tranzystor i nie komplikować układu :)

--------
Oto kod programu pod ATTiny2313:

'************* Konfiguracja uC *****************
'***********************************************
$regfile = "attiny2313.dat"
$crystal = 8000000
 
Config Portb = &B11111111 : Portb = &B11111111
Config Portd = &B11111110 : Portd = &B11111111
 
D1 Alias Portd.6
D2 Alias Portd.5
D3 Alias Portd.4
S1 Alias Pind.0
 
Config Timer0 = Timer , Prescale = 256
Enable Timer0 : On Timer0 Prztimer0
 
Enable Interrupts
'********** Konfiguracja uC Koniec  ************
 
'******************  Zmienne *******************
'***********************************************
Dim Licz_sw As Byte
Dim Wejscie As Byte
Dim F_8ms As Bit
'*************  Zmienne Koniec  ****************
Gosub Wej
'**************  Petla glowna ******************
'***********************************************
Do
 
If F_8ms = 1 Then
  F_8ms = 0
 
  If S1 = 0 Then
    Incr Licz_sw
    If Licz_sw = 225 Then
      Incr Wejscie
      If Wejscie = 3 Then Wejscie = 0
      Gosub Wej
    End If
  Else
    Licz_sw = 212
  End If
End If
 
Loop
End
'************ Petla glowna Koniec **************
'************ Przerwanie timer 0 ***************
'***********************************************
Prztimer0:
  Timer0 = 5
  Set F_8ms
Return
'******** Przerwanie timer 0 Koniec ************
Wej:
 Select Case Wejscie
   Case 0:
      D1 = 0
      D2 = 1
      D3 = 1
   Case 1:
      D1 = 1
      D2 = 0
      D3 = 1
   Case 2:
      D1 = 1
      D2 = 1
      D3 = 0
 End Select
Return

Na górze wypisane są nazwy wyprowadzeń (D1, D2, D3) do których należy podłączyć przekaźniki i diody sygnalizacyje (za pomocą tranzystora PNP BC556 i dwóch rezystorów 3,3k), przycisk jest oznaczony jako S1 i ma byc podłączony od pinu procesora do masy. Procesor nie wymaga rezonatora kwarcowego, jednynie wymaga przestawienia fusebitów a dokładnie wyłączenia dzielnika przez 8 (CKDIV ma być równe 1), tak aby pracował z częstotliwością 8MHz na wewnętrznym oscylatorze.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika tomciacki

Przełącznik sygnału

Dziękuję. A propo's fuse-bitów jaka jest kolejność ich ustawiania ? Najpierw wsadzam proc do programatora, programuję go, ustawiam fuse-bity i je zatwierdzam, czy wsadzam, zatwierdzam fuse-bity i dopiero programuję ?

Portret użytkownika mirley

Re: Fusebity

Nie ma to znaczenia w większości przypadków, gdybyś przestawiał np na zewnętrzny kwarc albo coś podobnego to wtedy dobrze jest najpierw podłączyć ten kwarc, przestawić fusebity i zobaczyć czy wszystko jest ok a potem programować. W twoim przypadku jedyne co musisz zrobić to przestawić CKDIV z 0 na 1 czyli go wyłączyć. Nie ma znaczenia czy pierwsze przestawisz a potem zaprogramujesz czy naodwrót. Ja zawsze na początku przestawiam fusy a potem programuje

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Szymon SQ3OPC

przełącznik

Mirku chciał bym wykorzystać przełączanie do mojego nowego projektu. Chciał bym zaprojektować i uruchomić przełącznik anten. Chodzi o to że naciskanie przycisku + powodował by załączanie przekaźników np 1,2,3,4 a naciśnięcie przycisku - 4,3,2 itd.Tu znalazłem kod jednak na jednym przycisku i działa tylko w jedną stronę co dodać do tego programu żeby liczył w drugą stronę??

Portret użytkownika mirley

Re: Przełącznik

Trzeba dodać drugi przycisk i podłączyć do portu, który zostanie na początku nazwany S2 (musi być wejściem więc konfiguracje tez trzeba zmienić), Fragment obsługi flagi trzeba zmienić na taki:

If F_8ms = 1 Then
  F_8ms = 0
 
  If S1 = 0 Then
    Incr Licz_sw
    If Licz_sw = 225 Then
      Incr Wejscie
      If Wejscie = 3 Then Wejscie = 0
      Gosub Wej
    End If
  Else
    Licz_sw = 212
  End If
 
    If S2 = 0 Then
    Incr Licz_sw2
    If Licz_sw2 = 225 Then
      decr Wejscie
      If Wejscie = 255 Then Wejscie = 2
      Gosub Wej
    End If
  Else
    Licz_sw2 = 212
  End If
 
 
End If

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika Szymon SQ3OPC

przełącznik- wyświetlacz lcd

No to juz teraz jestem na dobrej drodze. Chciał bym jeszcze żeby na wyświetlaczy lcd była wyświetlana informacja np antena nr 1 jak stan pierwszego wyjścia będzie "1" jak drugiego antena nr 2 itd.. trzeba by dodać case??? Całością będzie zarządzał atmega 8 dlatego że w przyszłości chciał bym jeszcze tam umieścić zegar.

Portret użytkownika mirley

Re: Przełącznik wejść

Nie trzeba dodawać wystarczy skorzystać z tego co jest, np tak:

Wej:
 Select Case Wejscie
   Case 0:
      D1 = 0
      D2 = 1
      D3 = 1
 
      'tutaj ewentualnie polecenia ustawiające położenie napisu na wyświetlaczu, itp
      Lcd "antena 1"
 
   Case 1:
    ....
 
 End Select
Return

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika matrix

Re: Przełącznik wejść

ja się trochę podepnę. pytanie zasadnicze:
po co tak komplikować kod do tak prostego układu? po co zaprzęganie timera? nie bardzo rozumiem. do samego przełączania wejść i zapalania diod wystarczy kilka linijek softu bez timerów itp. ja zrobił bym to tak, a do tego pokusił bym się o wsadzenie tego do czegoś mniejszego niż attiny 2313. na przykład do tiny13, tiny45.:

'************* Konfiguracja uC *****************
'***********************************************
$regfile = "attiny2313.dat"
$crystal = 8000000
 
Config Portb = &B11111111 : Portb = &B11111111
Config Portd = &B11111110 : Portd = &B11111111
 
D1 Alias Portd.6
D2 Alias Portd.5
D3 Alias Portd.4
S1 Alias Pind.0
 
'********** Konfiguracja uC Koniec  ************
 
'******************  Zmienne *******************
'***********************************************
Dim Licz_sw As Byte
'*************  Zmienne Koniec  ****************
Licz_sw = 0
Gosub Wej
'**************  Petla glowna ******************
'***********************************************
Do
 If S1 = 0 then
  incr Licz_sw
  waitms 150
 end if
  If Licz_sw = 3 Then
      Licz_sw = 0
  end if
  Gosub Wej
Loop
End
 
Wej:
 Select Case Licz_sw
   Case 0:
      D1 = 0
      D2 = 1
      D3 = 1
   Case 1:
      D1 = 1
      D2 = 0
      D3 = 1
   Case 2:
      D1 = 1
      D2 = 1
      D3 = 0
 End Select
Return

Portret użytkownika mirley

Re: Przełacznik wejść

na timerze jest bo tak jest elegancko i tak ma być. Co do mniejszego procesora to Tiny2313 i tak był zastosowany zamiast ATMEGA8 którego autor wątku chciał użyć. Poza tym tiny45 jest prawie niedostępny a na tiny13 niewiele się da zrobić, będzie problem nawet z kilkoma zmiennymi

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika matrix

Re: Przełacznik wejść

ale ja nie rozumiem po co timer? do czego on? bo jak dla mnie jest zupełnie zbędny. wyjaśnij mi bo lubię wiedzieć coś czego nie "ogarniam". jaką funkcję on pełni? bardzo proszę o wyjaśnienie, bo jestem strasznie ciekawy.

Portret użytkownika mirley

Re: Timer

W tym przypadku tylko precyzyjnie odmierza czas, można się bez niego obejść jak program robi tylko jedno zadanie i nic więcej. Możesz to napisac jak chcesz i nie będziemy się na ten temat rozwodzić. Wait i tym podobnych poleceń nie stosuję z kilku powodów (tylko w naprawdę prostych przypadkach i gdy nie mam czasu czegoś porządnie napisać): odcinki czasu odliczane zależą od tego co program wykonuje po drodze w pętli do loop a chęć dodania czegoś do programu i tak skutkuje uruchomieniem timera i napisaniem wszystkiego od nowa. Poza tym czemu mam coś robić w sposób nad którym nie mam potem kontroli jak timer dostępny jest "za darmo" w kupionym mikrokontrolerze.

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika matrix

Re: Timer

oczywiście rozumiem, tylko w tym przypadku pomyślalem, że timer nie jest potrzebny bo mimo że dyrektywy

wait

zajmują niepotrzebnie czas prockowi i sam tez ich nie stosuję, to jednak tu wystarczą, bo nie potrzeba nie wiadomo jakiej prędkości przełączania owych wejść źródła dźwięku, no i sam procesor w tym czasie nic innego robić nie musi. chyba się zgodzisz? pozdrawiam.

Portret użytkownika mirley

Re: Wait

No jasne... tutaj nie jest to wymagane, jednak zawsze staram się mysleć na przyszłość jakby za chwilę trzeba było dodać pomiar temperatury lub cos innego do tego procesora

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.

Portret użytkownika gosc

soft do atmega8

Witam

Zaglądam często na Pana stronę w poszukiwaniu fajnych projektów i tym razem znalazłem. Mianowicie wyczytałem wyżej odnośnie przełącznika anten. Chodzi o sterownik. Chciałem wykorzystać już istniejący projekt tylko problem jest z napisaniem softa do obsługi. Oczywiście odpłatnie bo nie widzę inaczej. Do tego projektu http://ihomebox.pl/www/sterownik_antenowy.htm pomijając ten zegarek i sterowanie z kompa. CHodzi mi jedynie o odslugę 4 przekaźników za pomocą 4 przycisków wraz z wyświetlaniem informacji na wyswieltaczu. Tak jak w pojekcie w linku powyżej.

Portret użytkownika EDC

Odp. soft do atmega 8

Jak szanowny autor strony nie będzie miał czasu to napisz do mnie na mail :D Bartek Ci to oprogramuje :D

-

BARTek
Moja strona