Elektroda.pl
Elektroda.pl
X

Search our partners

Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Bascom] Sterownia pilotem - jaki odbiornik podczerwieni?

xamrex 14 Dec 2010 17:57 9008 40
  • #1
    xamrex
    Level 28  
    Witam,
    Chciałbym sobie zrobić układzik, który po naciśnięciu na pilocie klawisza 1, włączy jedną diodę.
    Naciśnięcie klawisza 2, oświeci dwie diody.

    Odbiór danych będzie w standardzie RC5

    Moje pytanie to jaki kupić odbiornik podczerwieni.
    Czytałem ebooka pana Marcin Wiazania, ale jak widać strona która mnie interesuje akurat się źle zeskanowała ;/

    [Bascom] Sterownia pilotem - jaki odbiornik podczerwieni?
  • Helpful post
    #2
    elektryk101
    Conditionally unlocked
    Według mnie procesor przyjmie sygnał z każdego odbiornika kodu RC5. Podejdzie ci jakiś TSOP1736 . Ja próbowałem z odbiornikami od TV(stare elemisy)i bardzo dobrze działało.
  • Helpful post
    #3
    landy13
    Level 31  
    Jakikolwiek. Np. TSOP1736 lub SFH5110-36. Do RC5 powinien być na 36kHz, ale nie jest to wartość krytyczna. Działać będzie i na 40kHz przy ewentualnie nieco mniejszym zasięgu.
  • #4
    xamrex
    Level 28  
    Mam procesor Attiny2313 z wewnętrznym zegarem 1Mhz.
    Będzie to działać, czy muszę kupić kwarc do tego?
  • #5
    elektryk101
    Conditionally unlocked
    Jeśli programujesz w bascom musisz przestawic fusebity na wewnętrzny generator 8Mhz. Po prostu na int RC osc 8Mhz. Chociaż z tym 1Mhz możesz spróbowac(nic się nie stanie). :)
  • Helpful post
    #6
    adi84_84
    Level 14  
    Pewnie że będzie działać na 1MHz.A i mniejszy pobór prądu będzie :)
  • #7
    elektryk101
    Conditionally unlocked
    adi84_84 wrote:
    Pewnie że będzie działać na 1MHz.A i mniejszy pobór prądu będzie :)

    Mi ATmega8 nie chciała RC5 sterowac bez taktowania 8Mhz. Mniejszy pobór prądu?
    Coś kręcisz. :wink:
  • #8
    landy13
    Level 31  
    adi84_84 wrote:
    A i mniejszy pobór prądu będzie :)

    Będzie. Tylko że to pewnie bez znaczenia. To odbiornik, nie pilot. Nic nie wiadomo, żeby miał być bateryjny.
  • #9
    xamrex
    Level 28  
    Kupiłem sobie taki odbiornik:
    TSOP31236 36kHz
    Mam procesor Attiny 2313 z wewnętrznym oscylatorem 1Mhz.

    Teraz podstawowe pytanie:
    Czy dostanę na wyświetlaczu komendę i adres ?

    Załóżmy napiszę taki program:
    Jest on w książce pana Marcina Wiazania:
    Code:

    $regfile = "attiny2313.dat"
    $crystal = 1000000

    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portd.3 , Rs = Portd.0


    Config Int0 = Low Level
    Config Rc5 = Pind.2
    On Int0 Pobr_rc5
    Dim Adress As Byte , Command As Byte
    Dim Odebr_kod As Bit
    Enable Interrupts
    Enable Int0
    Set Odebr_kod
    Do
    If Odebr_kod = 1 Then
    Cls
    Lcd "Adres:" ; Adress
    Lowerline
    Lcd "Komenda:" ; Command

    Reset Odebr_kod
    Enable Int0
    End If
    Loop
    End

    Pobr_rc5:
    Disable Int0
    Enable Interrupts
    Getrc5(adress , Command)
    Command = Command And &B01111111
    Set Odebr_kod
    Return


    Jaka jest różnica czy mój odbiornik podczerwieni pracuje w częstotliwości 36kHz, czy np 30kHz?
    Można stosować dowolne częstotliwości odbiornika podczerwieni?
    [/code]
  • Helpful post
    #10
    landy13
    Level 31  
    xamrex wrote:
    Kupiłem sobie taki odbiornik:
    TSOP31236 36kHz
    Mam procesor Attiny 2313 z wewnętrznym oscylatorem 1Mhz.

    Teraz podstawowe pytanie:
    Czy dostanę na wyświetlaczu komendę i adres ?
    A cóż Ci przeszkadza spróbować?

    xamrex wrote:
    Jaka jest różnica czy mój odbiornik podczerwieni pracuje w częstotliwości 36kHz, czy np 30kHz?

    Źle postawione pytanie. Odbiornik pracuje z taką częstotliwością z jaką nadaje pilot. Jeśli został przez producenta dostrojony do 36kHz tak jak Twój, to taką częstotliwość odbiera najlepiej o inne gorzej. Pisałem o tym już wczoraj.
  • #11
    xamrex
    Level 28  
    Ok, dzięki a w jaki sposób sprawdzić z jaką częstotliwością pracuje mój pilot (do telewizora)?
  • #12
    landy13
    Level 31  
    Oscyloskopem. Ale prościej sprawdzić na tej stronie.
  • #13
    xamrex
    Level 28  
    Oscyloskopu nie posiadam ;(
    Na tej stronie co podałeś, to chyba są tylko komendy odpowiednich przycisków, a z jaką częstotliwością pracuje pilot, to (chyba) nie jest napisane.
  • Helpful post
    #14
    mirekk36
    Level 42  
    xamrex --> posłuchaj, nie od dzisiaj zajmuję się zagadnieniami związanymi z podczeriwenią, dekodowaniem czy nadawaniem sygnałów jeśli chodzi o tzw piloty wszelkiej maści.

    Daj sobie totalnie spokój z pomiarami oscyloskopem częstotliwości nośnej swojego telewizora itp....

    Użyj typowego odbiornika ze środkową i najbardziej typową częstotliwością 36kHz. Zapewniam cię i daję swoją głowę obciąć ;) , że będzie ci to ładnie działać nawet wtedy gdyby się okazało że twój TV ma nośną np 41kHz. Różnica będzie najwyżej taka, że zasięg i to tylko "być może" zmniejszy się np z 16m na 12m .... a i tak w domciu zwykle wystarcza 5m MAX.

    Odbiorniki które są przeznaczone na daną częstotliwość mają i tak bardzo szeroką charakterystykę (zajrzyj sobie do noty PDF każdego z nich).... Zadaniem tych filtrów odcinających nie jest to aby uniemożliwić odbiór częstotliwości nośnej na paśmie o np 2kHz obok ;)

    Poza tym, jeśli myślisz o RC5 to w ogóle nie wiem skąd pomysł poszukiwania i pomiarów częstotliwości. Tutaj to już praktycznie standardowo jest używane 36kHz.

    Zamiast więc tracić cenny czas na takie rozważania zbuduj sobie odbiornik czy z tym TSOP na 36kHz i będzie ci ładnie śmigał.

    Jeszcze rozumiem, że mógłbyś mieć wątpliwości i dopatrywać się problemów z działaniem odbiornika, gdybyś sam zaczynał oprogramowywać i dekodować RC5. A ty korzystasz z GOTOWCA w Bascomie. A tak się też składa, że ten gotowiec zawsze dobrze działa więc tu nie jesteś narażony na pomyłkę w kodzie programu z własnej winy ;)
  • #15
    xamrex
    Level 28  
    Dzięki za wyczerpującą odpowiedź.
    Jutro zbuduję układ i powiem czy działa :)

    EDITED:

    Zrobiłem wszystko, ale program nie działa.
    Gdy podłącze zasilanie, to na wyświetlaczu mam
    Adres:0
    Komenda:0
    I gdy kliknę obojętnie jaki przycisk na pilocie, to za każdym razem pojawia mi się:
    Adres:255
    Komenda:127

    Czy może ten błąd wynikać z tego, że mój procek pracuje na kwarcu 1Mhz?

    EDITED:
    Pilot okazał się zły :)
    Użyłem innego i hula ;)
  • #16
    mirekk36
    Level 42  
    xamrex --> na kwarcu 1MHz ??? czy na wewnętrznym oscylatorze 1MHz bo to różnica ;) .... chociaż nie robi to różnicy dla odbioru kodów RC5.

    Nie mniej jednak bardzo się dziwię, dlaczego z takim uporem wielu ludzi męczy się z tym domyślnie ustawionym taktowaniem 1MHz ??? Co za problem przestawić fusebity na 8MHz ??? i nie patrzeć tam na jakiś niższy pobór prądu dopóki nie robi się jakiegoś układu zasilanego bateryjnie gdzie zaczyna mieć to dopiero jakieś uzasadnienie.

    A odnośnie twojego błędu to panie autor, weź się pan w garść ;) zajrzyj do HELP'a Bascoma..... toż masz tam jak na tacy podany przykładowy kod, który możesz zastosować żeby po raz pierwszy uruchomić i zapoznać się z tym jak to w ogóle działa. Zrób to a przekonasz się że nie będzie problemów. Potem możesz już zacząć własne modyfikacje wg potrzeb.

    Dodano po 1 [minuty]:

    aha ;) za późno napisałem , no ale początek mojej wypowiedzi weź pod uwagę - tzn zmianę taktowania na wewn. oscylator tyle że 8MHz, polecam.
  • #17
    Electrik_eye
    Level 13  
    Witam!
    Sorki że odgrzebuję stary temat, ale mam problem. Szukałem w helpie bascoma przykładowego programu ( mam atmega32 i płytkę testową evb 3.4 16Mhz ) i zmieniłem tam tylko nazwę Uc taktowanie na 16 Mhz i żeby wyświetlał to na lcd i nic. Mój program wygląda następująco:

    Code:



    '-----------------------------------------------------------------------------------------

    'name                     : rc5.bas

    'copyright                : (c) 1995-2005, MCS Electronics

    'purpose                  : based on Atmel AVR410 application note

    'micro                    : 90S2313

    'suited for demo          : yes

    'commercial addon needed  : no

    '-----------------------------------------------------------------------------------------



    $regfile = "m32def.dat"
    $crystal = 16000000                                          ' used crystal frequency

    $baud = 19200                                               ' use baud rate

    $hwstack = 32                                               ' default use 32 for the hardware stack

    $swstack = 10                                               ' default use 10 for the SW stack

    $framesize = 40                                             ' default use 40 for the frame space

     Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5

    'use byte library for smaller code

    $lib "mcsbyte.lbx"



    'This example shows how to decode RC5 remote control signals

    'with a SFH506-35 IR receiver.



    'Connect to input to PIND.2 for this example

    'The GETRC5 function uses TIMER0 and the TIMER0 interrupt.

    'The TIMER0 settings are restored however so only the interrupt can not

    'be used anymore for other tasks





    'tell the compiler which pin we want to use for the receiver input



    Config Rc5 = Pind.2



    'the interrupt routine is inserted automatic but we need to make it occur

    'so enable the interrupts

    Enable Interrupts



    'reserve space for variables

    Dim Address As Byte , Command As Byte

    Lcd "Waiting for RC5..."



    Do

    'now check if a key on the remote is pressed

    'Note that at startup all pins are set for INPUT

    'so we dont set the direction here

    'If the pins is used for other input just unremark the next line

    'Config Pind.2 = Input

    Getrc5(address , Command)



    'we check for the TV address and that is 0

    If Address = 0 Then

        'clear the toggle bit

        'the toggle bit toggles on each new received command

        'toggle bit is bit 7. Extended RC5 bit is in bit 6

        Command = Command And &B01111111
      cls
    Lcd "Adres:" ; Address
    Lowerline
    Lcd "Komenda:" ; Command
    End If

    Loop

    End

    Co jest źle ?

    Z góry dzięki za odpowiedź

    Dodano po 2 [minuty]:

    I przy tym programie z helpa nic się nie dzieje a przu tym:
    Code:

    $regfile = "m32def.dat"
    $crystal = 16000000

    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5


    Config Int0 = Low Level
    Config Rc5 = Pind.2
    On Int0 Pobr_rc5
    Dim Adress As Byte , Command As Byte
    Dim Odebr_kod As Bit
    Enable Interrupts
    Enable Int0
    Set Odebr_kod
    Do
    If Odebr_kod = 1 Then
    Cls
    Lcd "Adres:" ; Adress
    Lowerline
    Lcd "Komenda:" ; Command

    Reset Odebr_kod
    Enable Int0
    End If
    Loop
    End

    Pobr_rc5:
    Disable Int0
    Enable Interrupts
    Getrc5(adress , Command)
     Command = Command And &B01111111
    Set Odebr_kod
    Return

    Cały czas pisze 255 i 127 na wyświetlaczu ale chociaż jak kilkam coś to ekran miga czyli coś odbiera
  • #18
    xamrex
    Level 28  
    Może pilot nie pracuje w standardzie Rc5.
    Mi z telewizora pilot nie podszedł, musiałem zastosować pilot z magnetowidu.
    Masz odbiornik podczerwieni na 36khz?
  • #19
    sp3ots
    Level 38  
    Witam !
    Z tego fragmentu:
    Code:

    Do
    If Odebr_kod = 1 Then
    Cls
    Lcd "Adres:" ; Adress
    Lowerline
    Lcd "Komenda:" ; Command

    Reset Odebr_kod
    Enable Int0
    End If
    Loop

    usuń
    Code:

     CLS

    Pozdrawiam. Stefan
  • #20
    marthinek
    Level 10  
    Odgrzebuje, bo mam podobny problem ze swoim układem, jak koledzy:


    Schemat układu zamieszczam poniżej, układ zgodny z książką: "Programowanie mikrokontrolerów AVR w języku BASCOM". Program też zgodny z listingami z książki.
    [Bascom] Sterownia pilotem - jaki odbiornik podczerwieni?

    (Odnośnie schematu, jest dołączony zewnętrzny rezonator 8MHz -nie zaznaczone na rysunku

    Oraz przycisk S1, podłączony do Pin C.2,po którego naciśnięciu następuje skok do podprogramu obsługującego nadawanie przez diodę IR)


    Kod programu:
    Code:

    $regfile = "m8def.dat"                                      'plik dyrektywy mikrokontrolera
    $crystal = 8000000                                          'częstotliwość kwarcu
    $baud = 38400                                               'informuje kompilatoro prędkości transmisji  (UART)

    Config Pinc.2 = Input                                       'linia PC2 jako wejściowa [tu jest podłączony przycisk]
    Config Pinb.1 = Output                                      'linia PB1 (OC1A) jako wyjściowa  [tu jest podłaczona dioda IR]

    Config Portb.1 = Output                                     'Pin 2, jako wyjście na LED


    Config Int0 = Low Level                                     'konfigurowanie przerwania Int0, które będzie wywoływane niskim poziomem na wejściu INT0
    Config Rc5 = Pind.2                                         'konfiguracja linii, do której dołączono odbiornik podczerwieni



    Dim Togbit As Byte , Command As Byte , Address As Byte      'zmienne dla instrukcji wysyłających kod w standardzie RC5



    On Int0 Pobr_rc5                                            'po wystąpieniu przerwania Int0 nastąpi skok do podprogramu Pobr_rc5


    Dim Odebr_kod As Bit                                        'flaga wskazująca na odebranie kodu danych w kodzie RC5

    Enable Interrupts                                           'odblokowanie przerwań globalnych

    Enable Int0                                                 'odblokowanie przerwania Int0

    Set Odebr_kod                                               'ustawienie flagi Odebr_kod



    S1 Alias Pinc.2                                             'przypisanie nazwie Pinc.2 nazwy S1 [Przycisk]
    Led Alias Portb.1                                           'alias LED odnoszacy sie do diody LED, zielona na pin2

    Set Portc.2                                                 'dołączenie do PC2 wewnętrznego rezystora podciągającego





    Do                                                          'początek nieskończonej pętli (główna pętla programu)


       If Odebr_kod = 1 Then                                    'jeśli odebrano kod RC5, to
          Print "Adres: " ; Addresss                               'wyświetlenie w pierwszej linii otrzymanego adresu po napisie Adres:

          Print "Komenda:" ; Command                            'wyświetlenie w drugiej linii otrzymanego numeru kommendy po napisie Komenda:

         Reset Odebr_kod                                        'wyzerowanie flagi Odebr_kod
         Enable Int0                                            'odblokowanie przerwania Int0
       End If



      Debounce S1 , 0 , Nadaj_rc5 , Sub                         'jeśli naciśnięty S1, to wykonanie podprogramu Nadaj_rc5




     Loop                                                       'koniec pętli nieskończonej
    End                                                         'koniec programu




    Nadaj_rc5:                                                  'podprogram Rc5

     Command = 18                                               'numer komendy do wysłania - komenda włącz/wyłącz
     Togbit = 0                                                 'wpisanie do Togbit wartości 0
     Address = 66                                               'wpisanie do Address wartości 0
     Do                                                         'pętla wykonywana aż do puszczenia przycisku S1

      Print "z nad Adres: " ; Address                           'wyświetlenie w pierwszej linii otrzymanego adresu po napisie Adres:

     Print "z nad Komenda:" ; Command                           'wyświetlenie w drugiej linii otrzymanego numeru kommendy po napisie Komenda:





      Rc5send Togbit , Address , Command                        'wysłanie kodu RC5 zapisanego w zmiennych Address oraz Command

      Waitms 250                                                'opóźnienie 250 ms
     Loop Until S1 = 1                                          'jeśli S1 = 1, to opuszczenie pętli

    Return                                                      'powrót z podprogramu



    Pobr_rc5:                                                   'podprogram przerwania Int0
     Disable Int0                                               'zablokowanie przerwania Int0
     Enable Interrupts                                          'odblokowanie przerwań globalnych

     Getrc5(Address , Command)                                    'pobranie adresu oraz komendy nadanej z pilota podczerwieni



     Command = Command And &B01111111                           'wyzerowanie najbardziej znaczącego bitu otrzymanej komendy



     Set Odebr_kod                                              'ustawienie flagi odebrania kodu RC5
    Return           




    komendy "Print" służą do wysłania przez UART (nóżka TXD (PD.1)) na zewnętrznie dołączony układ oparty na FT 232 podłączony do komputera przez USB.

    I tak, odbieram przez terminal zmienne "Adress" i "Command"
    Niestety bez względu na wysłane wartości tych zmiennych przez diodę IR podłączoną do układu (oraz na próby użycia pilota od telewizora) zawsze wartościami odebranymi są : adress = 255 i Command= 127

    Gdzie może być błąd?
  • #22
    marthinek
    Level 10  
    mirekk36 nie, nie uważam, ale jakbyś spojrzał na mój schemat zauważyłbyś, że mam tam część odpowiedzialną za nadawanie właśnie w systemie RC5.

    Odbiór jakichś danych z pilota od TV jest raczej potwierdzeniem sprawności czujnika i działania przerwania.
  • #24
    marthinek
    Level 10  
    Ok, faktycznie niezręcznie to ująłem, więc dla ścisłości:

    schemat posiada część mającą na celu generację sygnału w podczerwieni przy pomocy diody IR.

    A program, załączony w tym samym poście, jest napisany w sposób umożliwiający nadawanie w/w diodą kodów w systemie RC5.

    Teraz już się nikt nie będzie czepiał nieistotnych rzeczy, a może spróbuje mi pomóc rozwiązać istotę problemu?

    PS. tak wiem, w listingu programu pojawiły się również nieścisłości dotyczące kodu programu i treści komentarzy, są też 2 literówki i pewnie parę błędów ortograficznych.
  • #25
    piotrva
    VIP Meritorious for electroda.pl
    A czy pilot działa na 100% w RC5?
    Czy masz inny procesor, żeby jednym nadawać w RC5, a drugim odbierać?
    Czy Fusebity są dobrze ustawione?
  • #26
    marthinek
    Level 10  
    Pilot nie wiem w jakim kodzie nadaje, ale to nie istotne.
    jako pilota chciałem użyć tą część modułu z diodą IR.

    nie da rady żeby na jednym procku poszedł i nadajnik i odbiornik?

    Hmm zakładam że fusebity ustawione dobrze, ale jak to sprawdzić?
  • #27
    mirekk36
    Level 42  
    Za dużo zakładasz na początek. Bo z marszu jesteś pewien, że:

    1. masz wszystko dobrze połączone
    2. masz poprawny kod
    3. można jednocześnie nadawać i odbierać z tego samego procka

    Zamiast sprawdzać sobie etapami:

    1. odpalić sam odbiornik
    2. sprawdzić czy masz jakiś pewny pilot RC5
    3. sprawdzić czy twój program odbiorczy działa poprawnie

    Jakby mi to wyszło to wtedy wziąłbym się za dalsze próby - czyli zbudowanie nadajnika (najlepiej na innym procku) i sprawdziłbym czy dobrze nadaje a odbiornik odbiera

    A na końcu próbowałbym dopiero odpalić nadajnik i odbiornik na jednym procku

    I wtedy na końcu byś się dopiero przekonał że w Bascomie to niemożliwe - żeby nadajnik i odbiornik działały na jednym procku - ale w C można to sobie tak napisać ;)

    Tak więc naucz się dzielić zadania na etapy i na drugi raz jaśniej i przejrzyściej zadawać pytania - wtedy wszystko pójdzie ci sprawniej.
  • #28
    piotrva
    VIP Meritorious for electroda.pl
    Cóż, ogólnie zasada jest taka, że jeśli pilot do telewizora działa w standardzie RC5 to telewizor też odbiera tylko i wyłącznie kody RC5. Czyli innymi słowy jeśli Twój pilot nie działa w standardzie RC5 to telewizor nie zrozumie kodów nadawanych w tym standardzie z procesora. Koniec i kropka - jeśli standardy nie są zgodne to nie ma możliwości transmisji, więc zacząłbym od zbadania w jakim kodzie porozumiewa się Twój pilot z telewizorem.
    Zerknij tu:
    http://www.sbprojects.com/knowledge/ir/index.php (opis wielu popularnych standardów pilotów)
    http://atnel.pl/elektronika/dekoder-ir (graficzny dekoder IR)
  • #29
    marthinek
    Level 10  
    piotrva Dziękuję Ci za powiedzenie oczywistej oczywistości. Nie wiem czemu traktujesz mnie jak totalnego idiotę, bo aż 3 razy musiałeś powtórzyć że systemy nadawania muszą być kompatybilne. doskonale o tym wiem.

    Nie wiem skąd wziąłeś jakiś pomysł, że chce nadawać do telewizora, bo nie chce i nigdy o tym nie wspominałem, chce nadawać, docelowo, miedzy dwoma prockami. Na początek myślałem, że uda się przetestować program wykorzystując jednego procka i o takim problemie w komunikacji pisałem.

    Pilot od telewizora mnie nie interesuje, wspomniałem o nim bardziej jako potwierdzeniu wykrycia przerwania i potwierdzeniu poprawności działania detektora. Tym bardziej nie interesuje mnie sam telewizor.


    mirekk36

    Dzięki, raczej po kolei uruchamiałem układ, połączenia sprawdziłem i wszystko się raczej zgadza.

    detektor wykrywa transmisje podczerwieni, wystawia wtedy stan niski na wyjściu
    dioda podczerwona nadaje (niestety nie mam oscyloskopu, więc nie mogę sprawdzić częstotliwości)

    kod jest raczej poprawny, zgodny z książką, zgodny z helpem bascoma, na tyle na ile umiem programować wydaje mi się, że jest logicznie poprawny.

    Zaraz spróbuje przełożyć detektor do drugiego mikroklocka i wtedy sprawdzić czy działa.
    Dzięki.
  • #30
    piotrva
    VIP Meritorious for electroda.pl
    Nie mam za totalnego idiotę, przepraszam jeśli to tak odebrałeś, myślałem, że Ci chodzi o sterowanie telewizorem; ale czasem wolę niektóre rzeczy potwierdzić - sam czasem miałem tego typu oczywistości których nie widziałem.
    No i potwierdzam, że w BASCOM się na jednym uC nadawania i odbioru (z użyciem gotowych funkcji) nie da zrobić, ale jeśli byś napisał własne funkcje to byłoby to możliwe - ale jeśli to ma być komunikacja między 2 układami a nie jakaś bariera lub układ obiciowy to bierz 2 uC i tak testuj.