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

Kodowanie "manchester" w bascom ATMEGA8

lenny35 20 Wrz 2010 13:00 3687 6
REKLAMA
  • #1 8530681
    lenny35
    Poziom 13  
    Witam!

    Pewien czas temu popełniłem sobie układ do zdalnego przesyłania temperatury na układach HM-T oraz HM-R 868Mhz. Układ po dzień dzisiejszy działa OK, ale chciałbym wprowadzić sobie kodowanie transmisji. Z tego co doczytałem, dobrym rozwiązaniem jest kodowanie "manchester" i tu moje pytanie...
    Jak to rozwiązać sprzętowo, czy programowo? Przeszukując elektrodę nie znalazłem zbyt wielu postów na ten temat. Dlatego jeśli ktoś ma jakieś informacje lub przykłady jak takie kodowanie można by wykonać ( o ile to możliwe w tym przypadku) bardzo proszę o podpowiedzi.

    Z góry dziękuje!!!
  • REKLAMA
  • #2 8531039
    krzysiek_p
    Poziom 14  
    W bascomie możesz użyć po prostu send rc5. Rc5 to manchester. Komenda od wysyłania rc5 w bascomie nie generuje dodatkowo nośnej typu 36kHz, więc możesz to wykorzystać bez problemu.
  • REKLAMA
  • REKLAMA
  • #4 8531519
    lenny35
    Poziom 13  
    Dzięki Xury. Spróbuję coś pokombinować z tym kodem. Jak się uda napiszę co i jak.
  • #5 8561145
    1906
    Poziom 11  
    Witam, równiez posiadam zestaw HM-T oraz HM-R 868 Mhz. Moje urządzenie działa w ten sposób, że po wciśnięciu i przytrzymaniu przycisku w ukladzie z nadajnikiem, na ukladzie z odbiornikiem jest slyszalny dzwiek buzzera. urzadzenie działa w domu bezbłędnie.

    Czytałem jednak że kodowanie eliminuje błędy na wiekszym obszarze działania i polepsza zasięg, a tego bedzie mi potrzebne mozliwie najwiecej jak sie da :)

    Wsad jest pisany w C, kod poza konfiguracja ukladow wyglada nastepująco:

    Nadajnik:
    
    unsigned char dana, dana1, dana2, dana3;
    
      dana=0xA4; 
      dana1=0xB5;
    
      while(1) 
          { 
     
     
     if(!(PIND & 0x80))  // jeśli wciśnięty przycisk 
     {
    						
    						    UDR=dana1;
    						_delay_ms(10);
    						    UDR=dana1;
      }						
      
      else // jeśli niewcisniety przycisk
     {
    						
    						   UDR=dana2;
    						_delay_ms(10);
    						    UDR=dana2;
      }		
    


    Odbiornik

    
     while(1) 
       { 
        
          dana = USART_receive(); 
           
             if(dana==0xA4)
    			PORTD = 0xFF;
    	    
            else if(dana==0xB5)
    			 PORTD= 0x00;
    	}		 
    			 


    Czyli po prostu w nadajniku na pin UDR cyklicznie wysyłam słowo "0xA4", które na odbiorniku oznacza właczenie buzzera (podpietego do jednego z nozek portu D) , a wysłanie słowa "0xB5" oznacza cykliczne wysylanie kodu ktory nie ukatywnia buzzera.

    Moje pytanie: czy w tego typu urządzeniu kodowanie faktycznie moze zwiekszyc zasieg/wyeliminowac jakies bledy?

    Jesli tak to w jaki sposob mialo by ono wygladac ?
  • #6 8564659
    1906
    Poziom 11  
    Czy nikt nie jest w stanie mnie oświecić, czy dla urządzenia włącz/wyłącz (a konkretniej włącz-wstrzymaj włączone jak przycisk wcisnięty-wyłącz) kodowanie danych ma sens ?

    Moze to proste pytanie ale mimo wszystko prosilbym o odpowiedz
  • REKLAMA
  • #7 8581774
    lenny35
    Poziom 13  
    "1906" kodowanie sygnału powinno zwiększyć Ci zasięg i uodpornić urządzenie na zakłócenia podczas transmisji. Ja mój układ będę dopiero testował. Chcę porównać działanie z kodowaniem i bez. Na razie nie potrafię nic więcej powiedzieć. Tobie też radziłbym przetestować różne podejścia i wtedy przekonasz się czy warto zastosować kodowanie czy nie.
REKLAMA