Skocz do zawartości

Skok w bok - DAF 95/400 AXi


Rekomendowane odpowiedzi

  • Odpowiedzi 74
  • Dodano
  • Ostatniej odpowiedzi
To ja odpowiem za Romka. Serwa HS-81 :wink:

 

Taka prawda. A żeby nie było, że się obijam i nie uaktualniam tematu, to napiszę parę słów co sie dzieje. Zacząłem kombinować światła. Odpowiednie diody zostały zakupione w TME (wymiar diod 1,6x0,8x0,8 mm) i dość szybko porobiłem z nich 4 tylne lampy zespolone (2 dla ciężarówki, 2 dla przyczepy). Kolejnym wyzwaniem okazało się sterowanie tychże świateł. I tu wymysliłem, że zrobię to na mikrokontrolerach. Jeden z nich zbierze sygnały z odbiornika radiowego, zinterpretuje co się dzieje z modelem, przygoruje 8-bitowy bajt danych i wyśle go do mikrokontrolera odbiorczego. Odbiorczy rozkoduje i zapali LEDy. W ubiegłą sobotę (27.01) poprzychodziły: PICe, programator, dwie płytki uruchomieniowe, literatura i jakieśtam inne duperelki. Za mna więc tydzień intensywnej nauki, ćwiczeń, prób, błędów i przekleństw, ale większość podprogramów działa. Aktualnie siedzę nad transmisją danych z PICa do PICa. Mam nadzieję, że 2 - 3 tygodnie będzie wszystko zapiete na ostatni guzik - wówczas przedstawię listingi gotowych i sprawdzonych programów. Acha, kontrolery to: PIC12F675.

 

Edit: Te pierwsze lampy powędrowały do kosza - nie byłem z nich do końca zadowolony. Druga i docelowa wersja lamp - w dalszej części.

Odnośnik do komentarza
Udostępnij na innych stronach

Panowie, mam pytanie. Kończę pomału oprogramowywać odbiorczego PICa. Czy wogóle kogoś zainteresuje temat? Czy przedstawić listing programu i opisać co on robi?

 

O programowaniu PIC-a i o wszystkim co z tym związane jak najbardziej interesuje np. mnie {jestem w tym temacie bardzo zielony} więc proszę żebyś to opisał i pokazał może wtedy i ja coś sobie zaprogramuję i wykorzystam np. PIC-a jako spowalniacza serwa ?

Odnośnik do komentarza
Udostępnij na innych stronach

To może tak: zacząłem nowy temat w elektronice ogólnie o picach, a tu zostawię tylko to co dotyczy DAFa. No to zaczynamy!

 

Filozofia działania układu (PiS... przepraszam) jest następująca: jeden z kontrolerów odbiera sygnały z trzech kanałów odbiornika RC, na tej podstawie określa ogólny stan modelu. Na podstawie stanu określa, które światła mają być w danej chwili załączone. Stan świateł zostaje zapisany w postaci 8 bitowego bajtu i przesłany do mikrokontrolera odbiorczego.

Bity w bajcie RX_IN:

7 - bit początku transmisji - zawsze 1

6 - światła główne,

5 - światła cofania,

4 - pusty

3 - światła STOP

2 - prawy kierunkowskaz

1 - lewy kierunkowskaz

0 - bit końca transmisji - zawsze 0

bity 1...6 = 1 - światło załączone, 0 - światło wyłączone

 

Początek ptogramu to pełna konfiguracja mikrokontrolera, deklaracja wejćś, wyjść, deklaracja rejestrów, synchronizacja oscylatora, wyłączenie komparatora i przetwornika A/C.

Główny program pracuje w pętli >glowna - GOTO glowna< skąd wywoływane są podprogramy: czytanie bajtu RX_IN oraz przerywacz kierunkowskazów. Wysłanie bajtu do portów do których podłączone są diody następuje w programie głównym.

 

Odbiornik

 

 

; konfiguracja procesora

list p=12F675 ;typ procesora

__config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _WDT_OFF

#include p12f675.inc

;---------------------kalibracja oscylatora-------------------

bsf STATUS, RP0

movlw b'10000000'

movwf OSCCAL

bcf STATUS, RP0

;------------------------- deklaracje IO----------------------------

#define left GPIO, 0 ;lewy kierunkowskaz

#define right GPIO, 1 ;prawy kierunkowskaz

#define stop GPIO, 2 ;swiatla stop

#define in GPIO, 3 ;wejscie danych

#define r GPIO, 4 ;swiatla cofania

#define light GPIO, 5 ;swiatla glowne

;----------------------deklaracje rejestrow------------------------

cblock h'20'

RX_IN, PRZERW

L_OUT, K_H

K_L, K_OLD

endc

;----------------------ustawienia portów--------------------------

movlw .7 ;wylacz komparator

movwf CMCON

clrf GPIO ;wyzerowanie wyjsc

bsf STATUS, RP0

movlw b'00001000' ;ustaw I/O

movwf TRISIO

bcf OPTION_REG, .7 ;wylaczenie rezystorow

clrf WPU ;podciagajacych

clrf ANSEL ;wylacz przetwornik A/C

bcf STATUS, RP0

;==================PROGRAM======================

call zer_klicz

glowna

call rx_start ;czytanie bajtu sterujacego z transmisji

call przer ;wywolanie przerywacza kierunkowskazow

rrf RX_IN, 1 ;przesuniecie o bit w prawo

movf RX_IN, w ;przeslanie do rejestru wyjscia

movwf GPIO

clrf RX_IN

goto glowna

;---------------------czytanie RX_IN----------------------------

rx_start

btfss in ;sprawdz linie in

goto $-1 ;czekaj na bit startu

movlw .8

movwf L_OUT

odbior ;osmiu bitow w bajcie

call p0_5

bcf STATUS, C

btfsc in

bsf STATUS, C

rlf RX_IN, F

call p0_5

decfsz L_OUT

goto odbior

return

;--------------polowa dlugosci impulsu----------------

p0_5

movlw .10

movwf PRZERW

decfsz PRZERW

goto $-1

return

;-----------przerywacz kierunkowskazow--------------

przer

spr_prawy

call ustaw

btfss RX_IN, .2 ;prawy zalaczony

goto spr_lewy

btfsc K_OLD, .0

bsf RX_IN, .2

btfss K_OLD, .0

bcf RX_IN, .2

spr_lewy

btfss RX_IN, .1 ;lewy zalaczony

goto powrot

btfsc K_OLD, .0

bsf RX_IN, .1

btfss K_OLD, .0

bcf RX_IN, .1

;------------------------------------------------------

powrot

return

;-----------------------------------------------------------------

zer_klicz

movlw .8

movwf K_L

return

;----------------------------------------------------------------

ustaw

movlw .4

movwf K_H

movf K_L, .0

subwf K_H

btfsc STATUS, C

bcf K_OLD, .0

btfss STATUS, C

bsf K_OLD, .0

decfsz K_L

return

goto zer_klicz

;============================================

end

 

 

Edit: Uprościłem trochę program w stosunku do poprzedniego listingu.

Odnośnik do komentarza
Udostępnij na innych stronach

No, to na tym razem koniec z PICami. Koniec! Skończyłem pisać program nadajnika :-)

 

Jak to podłączyć: do portu GP0 podłączamy 1 kanał odbiornika radiowego, do GP1 kanał 2, do GP2 kanał 3, a do GP5 - wyjście do odbiornika, który opisałem piętro wyżej. Nadajnik spełnia następujące funkcje:

1. wychylenie kanału pierwszego załącza odpowiedni kierunkowskaz.

2. wychylenie kanału 2 do tyłu zapala światła cofania.

3. zmniejszanie się wychylenia drążka kanału 2 zapala światła stop zarówno w jeździe do przodu jak i do tyłu.

4. Kanał 3 (drążek gazu) ustawiony na minimum wyłącza światła główne i światła awaryjne.

5. Gaz na 1/4 świecą się światła główne.

6. Gaz na 1/2 świecą się światła główne i awaryjne.

7. Gaz na 3/4 świecą się tylko światła awaryjne.

8. Gaz na max i trymer gazu na max - nadajnik zapamiętuje aktualne położenia drążka kanału 1 i kanału 2 i od tej pory traktuje je jako położenia zerowe.

 

Kolego Olo (i inni zainteresowani koledzy) kawę w łapkę, powieki podeprzeć zapałkami i jedziemy z koksem :-)

 

; konfiguracja procesora

list p=12F675 ;typ procesora

__config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF & _WDT_OFF

#include p12f675.inc

;---------------------kalibracja oscylatora---------------------------

bsf STATUS, RP0

movlw b'10000000'

movwf OSCCAL

bcf STATUS, RP0

;-------------------------deklaracja I/O------------------------------

#define in1 GPIO, 0 ;wejscie kanalu #1

#define in2 GPIO, 1 ;wejscie kanalu #2

#define in3 GPIO, 2 ;wejscie kanalu #3

#define txout GPIO, 5 ;linia z sygnalem do RX

;-----------------------deklaracja rejestrow-----------------------

cblock h'20'

TX_OUT, L_OUT

TX_ZAD, PRZERW

T1_L, T1_H

T2_H, T2_L

T3_H, T3_L

EE_ADR

EE_DATA, LICZ

LH, LL

RH, RL,

WH, WL

WYNIK

endc

;-----------------------ustawienia rejestrów-------------------------

movlw .07 ;wylaczenie komparatora i A/C

movwf CMCON

bsf STATUS, RP0

clrf ANSEL

bcf STATUS, RP0

clrf GPIO

bsf STATUS, RP0

bcf INTCON, GIE

movlw b'00001111'

movwf TRISIO

clrf OPTION_REG

clrf WPU

bcf STATUS, RP0

;===wstepna kalibracja - wyslij ustawienia do EEPROM====

;okreslenie progow w ktorych nastepuje zmiana stanu swiatel

;adresy h'0x' - kanal #1 (kierunek)

;adresy h'1x' - kanal #2 (przod/tyl)

;adresy h'2x' - kanal #3 (swiatla/awaryjne/kalibracja0

movlw h'00'

movwf EE_ADR

movlw h'05'

movwf EE_DATA

call ee_write ;#1LH

movlw h'01'

movwf EE_ADR

movlw h'74'

movwf EE_DATA

call ee_write ;#1LL

movlw h'02'

movwf EE_ADR

movlw h'05'

movwf EE_DATA

call ee_write ;#10H

movlw h'03'

movwf EE_ADR

movlw h'A6'

movwf EE_DATA

call ee_write ;#10L

movlw h'04'

movwf EE_ADR

movlw h'08'

movwf EE_DATA

call ee_write ;#1RH

movlw h'05'

movwf EE_ADR

movlw h'02'

movwf EE_DATA

call ee_write ;#1RL

movlw h'10'

movwf EE_ADR

movlw h'05'

movwf EE_DATA

call ee_write ;#2FH

movlw h'11'

movwf EE_ADR

movlw h'E9'

movwf EE_DATA

call ee_write ;#2FL

movlw h'12'

movwf EE_ADR

movlw h'06'

movwf EE_DATA

call ee_write ;#20H

movlw h'13'

movwf EE_ADR

movlw h'1B'

movwf EE_DATA

call ee_write ;#20L

movlw h'14'

movwf EE_ADR

movlw h'08'

movwf EE_DATA

call ee_write ;#2RH

movlw h'15'

movwf EE_ADR

movlw h'02'

movwf EE_DATA

call ee_write ;#2RL

movlw h'20'

movwf EE_ADR

movlw h'05'

movwf EE_DATA

call ee_write ;#31H

movlw h'21'

movwf EE_ADR

movlw h'46'

movwf EE_DATA

call ee_write ;#31L

movlw h'22'

movwf EE_ADR

movlw h'06'

movwf EE_DATA

call ee_write ;#32H

movlw h'23'

movwf EE_ADR

movlw h'27'

movwf EE_DATA

call ee_write ;#32L

movlw h'24'

movwf EE_ADR

movlw h'07'

movwf EE_DATA

call ee_write ;#33H

movlw h'25'

movwf EE_ADR

movlw h'08'

movwf EE_DATA

call ee_write ;#33L

movlw h'26'

movwf EE_ADR

movlw h'08'

movwf EE_DATA

call ee_write ;#34H

movlw h'27'

movwf EE_ADR

movlw h'10'

movwf EE_DATA

call ee_write ;#34L

movlw h'7F'

movwf EE_ADR

movlw h'FF'

movwf EE_DATA

call ee_write ;bo nie wiadomo czemu

movlw h'28'

movwf EE_ADR

movlw h'08'

movwf EE_DATA

call ee_write ;#3KAH

movlw h'29'

movwf EE_ADR

movlw h'CA'

movwf EE_DATA

call ee_write ;#3KAL

;===============PROGRAM========================

;-------czytaj wejscia in1, in2 i in3, przeslij fo EEPROM--------

start

clrf TX_ZAD

bsf TX_ZAD, .7

call pomiar ;czytaj dlugosc impulsu kanalu #1, #2, #3

bcf STATUS, RP0

movlw h'40'

movwf EE_ADR

movf T1_H, w ;aktualny stan kanalu #1

movwf EE_DATA ;przeslanie starszego bajtu do komórki o adresie 40

call ee_write ;wyslanie do EE

incf EE_ADR ;nastepny adres EEPROM

movf T1_L, w

movwf EE_DATA ;przeslanie mlodszego bajtu do komorki o adresie 41

call ee_write ;wyslanie do EE

movlw h'50'

movwf EE_ADR

movf T2_H, w ;aktualny stan kanalu #2

movwf EE_DATA ;przeslanie starszego bajtu do komórki o adresie 50

call ee_write ;wyslanie do EE

incf EE_ADR ;nastepny adres EEPROM

movf T2_L, w

movwf EE_DATA ;przeslanie mlodszego bajtu do komorki o adresie 51

call ee_write ;wyslanie do EE

movlw h'60'

movwf EE_ADR

movf T3_H, w ;aktualny stan kanalu #3

movwf EE_DATA ;przeslanie starszego bajtu do komórki o adresie 60

call ee_write ;wyslanie do EE

incf EE_ADR ;nastepny adres EEPROM

movf T3_L, w

movwf EE_DATA ;przeslanie mlodszego bajtu do komorki o adresie 61

call ee_write ;wyslanie do EE

;------------zinterpretuj wynik #1-----------------------

int_#1

movlw h'40'

call ee_read

movwf LH

movlw h'41'

call ee_read

movwf LL

movlw h'00'

call ee_read

movwf RH

movlw h'01'

call ee_read

movwf RL

call porown

btfss WYNIK, .0

goto nie_lewy

bsf TX_ZAD, .1 ;wlacz lewy kierunkowskaz

bcf TX_ZAD, .2 ;wylacz prawy kierunkowskaz

goto int_#2

nie_lewy

movlw h'40'

call ee_read

movwf LH

movlw h'41'

call ee_read

movwf LL

movlw h'02'

call ee_read

movwf RH

movlw h'03'

call ee_read

movwf RL

call porown

btfss WYNIK, .0

goto nie_zero

bcf TX_ZAD, .1 ;wylacz lewy kierunkowskaz

bcf TX_ZAD, .2 ;wylacz prawy kierunkowskaz

goto int_#2

nie_zero

bcf TX_ZAD, .1 ;wylacz lewy kierunkowskaz

bsf TX_ZAD, .2 ;wlacz prawy kierunkowskaz

 

;----------------zinterpretuj wynik #2------------------------------

int_#2

movlw h'50'

call ee_read

movwf LH

movlw h'51'

call ee_read

movwf LL

movlw h'10'

call ee_read

movwf RH

movlw h'11'

call ee_read

movwf RL

call porown

btfss WYNIK, .0

goto nie_tyl

bsf TX_ZAD, .5 ;wlacz swiatla cofania

movlw h'50'

call ee_read

movwf LH

movlw h'51'

call ee_read

movwf LL

movlw h'52'

call ee_read

movwf RH

movlw h'53'

call ee_read

movwf RL

call porown

btfss WYNIK, .0

bsf TX_ZAD, .3 ;wlacz swiatla STOP

movlw h'50'

call ee_read

movwf EE_DATA

movlw h'52'

movwf EE_ADR

call ee_write ;#2WH

movlw h'51'

call ee_read

movwf EE_DATA

incf EE_DATA ;histereza

incf EE_DATA

incf EE_DATA

incf EE_DATA

movlw h'53'

movwf EE_ADR

call ee_write ;#2WL

goto int_#3

nie_tyl

movlw h'50'

call ee_read

movwf LH

movlw h'51'

call ee_read

movwf LL

movlw h'12'

call ee_read

movwf RH

movlw h'13'

call ee_read

movwf RL

call porown

btfss WYNIK, .0

goto nie_zero1

bcf TX_ZAD, .3 ;wylacz swiatla STOP

bcf TX_ZAD, .5 ;wylacz swiatla cofania

goto int_#3

nie_zero1

bcf TX_ZAD, .5 ;wylacz swiatla cofania

movlw h'52'

call ee_read

movwf LH

movlw h'53'

call ee_read

movwf LL

movlw h'50'

call ee_read

movwf RH

movlw h'51'

call ee_read

movwf RL

call porown

btfss WYNIK, .0

bsf TX_ZAD, .3 ;wlacz swiatla stop

movlw h'50'

call ee_read

movwf EE_DATA

movlw h'52'

movwf EE_ADR

call ee_write ;#2WH

movlw h'51'

call ee_read

movwf EE_DATA

decf EE_DATA ;histereza

decf EE_DATA

decf EE_DATA

decf EE_DATA

movlw h'53'

movwf EE_ADR

call ee_write ;#2WL

 

;------------zinterpretuj wynik #3--------------------

int_#3

movlw h'60'

call ee_read

movwf LH

movlw h'61'

call ee_read

movwf LL

movlw h'20'

call ee_read

movwf RH

movlw h'21'

call ee_read

movwf RL

call porown

btfss WYNIK, .0

goto nie_nop

bcf TX_ZAD, .6 ;wylacz swiatla glowne

goto wyslij_TX

nie_nop

movlw h'60'

call ee_read

movwf LH

movlw h'61'

call ee_read

movwf LL

movlw h'22'

call ee_read

movwf RH

movlw h'23'

call ee_read

movwf RL

call porown

btfss WYNIK, .0

goto nie_swia

bsf TX_ZAD, .6 ;wlacz swiatla glowne

goto wyslij_TX

nie_swia

movlw h'60'

call ee_read

movwf LH

movlw h'61'

call ee_read

movwf LL

movlw h'24'

call ee_read

movwf RH

movlw h'25'

call ee_read

movwf RL

call porown

btfss WYNIK, .0

goto nie_all

bsf TX_ZAD, .1 ;wlacz oba kierunkowskazy jako

bsf TX_ZAD, .2 ;swiatla awaryjne

bsf TX_ZAD, .6 ;wlacz swiatla glowne

goto wyslij_TX

nie_all

movlw h'60'

call ee_read

movwf LH

movlw h'61'

call ee_read

movwf LL

movlw h'26'

call ee_read

movwf RH

movlw h'27'

call ee_read

movwf RL

call porown

btfss WYNIK, .0

goto kalibracja

bsf TX_ZAD, .1 ;wlacz oba kierunkowskazy jako

bsf TX_ZAD, .2 ;swiatla awaryjne

bcf TX_ZAD, .6 ;wylacz swiatla glowne

goto wyslij_TX

kalibracja ;kalibracja kanalu #1 i #2

movlw h'40' ;czyta aktualne wartosci kanalu #1 i #2

call ee_read ;i zapisuje do EEPROM

movwf LH ;jako nowe przedzialy zadzialania swiatel

movlw h'41'

call ee_read

movwf LL

movlw h'00'

call ee_read

movlw .25

movwf RL

movf LH, w

movwf WH

movf RL, w

subwf LL

movf LL, w

movwf WL

btfsc STATUS, C

goto kona

decf WH

kona

movlw h'00'

movwf EE_ADR

movf WH, w

movwf EE_DATA

call ee_write ;#1LH

movlw h'01'

movwf EE_ADR

movf WL, w

movwf EE_DATA

call ee_write ;#1LL

movlw h'40'

call ee_read

movwf LH

movlw h'41'

call ee_read

movwf LL

movlw h'00'

call ee_read

movlw .25

movf LH, w

movwf WH

movf RL, w

addwf LL

movf LL, w

movwf WL

btfss STATUS, C

goto konb

incf WH

konb

movlw h'02'

movwf EE_ADR

movf WH, w

movwf EE_DATA

call ee_write ;#10H

movlw h'03'

movwf EE_ADR

movf WL, w

movwf EE_DATA

call ee_write ;#10L

movlw h'50'

call ee_read

movwf LH

movlw h'51'

call ee_read

movwf LL

movlw h'00'

call ee_read

movlw .25

movwf RL

movf LH, w

movwf WH

movf RL, w

subwf LL

movf LL, w

movwf WL

btfsc STATUS, C

goto konc

decf WH

konc

movlw h'10'

movwf EE_ADR

movf WH, w

movwf EE_DATA

call ee_write ;#1FH

movlw h'11'

movwf EE_ADR

movf WL, w

movwf EE_DATA

call ee_write ;#1FL

movlw h'50'

call ee_read

movwf LH

movlw h'51'

call ee_read

movwf LL

movlw h'00'

call ee_read

movlw .25

movf LH, w

movwf WH

movf RL, w

addwf LL

movf LL, w

movwf WL

btfss STATUS, C

goto kond

incf WH

kond

movlw h'12'

movwf EE_ADR

movf WH, w

movwf EE_DATA

call ee_write ;#20H

movlw h'13'

movwf EE_ADR

movf WL, w

movwf EE_DATA

call ee_write ;#20L

;-----------------wyslij bajt do odbiornika------------------------

wyslij_TX

movlw .8

movwf L_OUT

movf TX_ZAD, 0

movwf TX_OUT

wysyl

rlf TX_OUT

btfsc STATUS, C

call nadaj_HI

btfss STATUS, C

call nadaj_LO

decfsz L_OUT

goto wysyl

goto start

;==================================================

;------wysylanie do EEPROM-----------

ee_write

movf EE_ADR, w

bsf STATUS, RP0

movwf EEADR

bcf STATUS, RP0

movf EE_DATA, w

bsf STATUS, RP0

movwf EEDATA

bsf EECON1, WREN ;zezwolenie na zapis

movlw h'55'

movwf EECON2

movlw h'aa'

movwf EECON2

bsf EECON1, WR ;rozpoczecie zapisu

btfsc EECON1, WR ;czy zakonczono zapis

goto $-1

bcf EECON1, WREN ;wylaczenie zezwolenia na zapis

bcf STATUS, RP0

return

;------------czytanie z EEPROM---------------

ee_read

bsf STATUS, RP0

movwf EEADR

bsf EECON1, RD

movf EEDATA, W

bcf STATUS, RP0

return

;------pomiar dlugosci impulsu RC#1,2 i 3------------

pomiar

bcf STATUS, RP0

bcf T1CON, TMR1ON ;wylacz licznik1

clrf TMR1L ;zeruj bajt mlodszy licznika

clrf TMR1H ;zeruj bajt starszy licznika

btfsc in1 ;czekaj na 0

goto $-1

btfss in1 ;czeka na zbocze +

goto $-1

bsf T1CON, TMR1ON ;odpal licznik

btfsc in1 ;czeka na zbocze -

goto $-1

bcf T1CON, TMR1ON ;zatrzymaj licznik

movf TMR1L, w

movwf T1_L

movf TMR1H, w

movwf T1_H

clrf TMR1L ;zeruj bajt mlodszy licznika

clrf TMR1H ;zeruj bajt starszy licznika

btfsc in2 ;czekaj na 0

goto $-1

btfss in2 ;czeka na zbocze +

goto $-1

bsf T1CON, TMR1ON ;odpal licznik

btfsc in2 ;czeka na zbocze -

goto $-1

bcf T1CON, TMR1ON ;zatrzymaj licznik

movf TMR1L, w

movwf T2_L

movf TMR1H, w

movwf T2_H

clrf TMR1L ;zeruj bajt mlodszy licznika

clrf TMR1H ;zeruj bajt starszy licznika

btfsc in3 ;czekaj na 0

goto $-1

btfss in3 ;czeka na zbocze +

goto $-1

bsf T1CON, TMR1ON ;odpal licznik

btfsc in3 ;czeka na zbocze -

goto $-1

bcf T1CON, TMR1ON ;zatrzymaj licznik

movf TMR1L, w

movwf T3_L

movf TMR1H, w

movwf T3_H

return

;----- porownanie 2 liczb 2 bajtowych------

porown

movf RH, .0

subwf LH

btfss STATUS, C

goto ujemny

btfss STATUS, Z

goto dodatni

movf RL, .0

subwf LL

btfss STATUS, C

goto ujemny

btfss STATUS, Z

goto dodatni

goto zero

dodatni

bcf WYNIK, .0

goto koniec

zero

bcf WYNIK, .0

goto koniec

ujemny

bsf WYNIK, .0

goto koniec

koniec

return

;---------wysylanie TX_OUT----------

nadaj_LO

bcf txout

call p1

return

;---------------------------------------------

nadaj_HI

bsf txout

call p1

return

;-------------------------------------------

p1

movlw .20

movwf PRZERW

decfsz PRZERW

goto $-1

return

;====================================

end

Odnośnik do komentarza
Udostępnij na innych stronach

Zassałem i zainstalowłem MPLAB poskakałem po internecie w poszukiwaniu wiedzy której nie posiadam :D i stwierdziłem chwilowo że: im dalej w las tym więcej drzew .

Czekam na książkę z tej księgarni i zastanawiam czy jeszcze nie kupić sobie czegoś do poczytania co ma w tytule ,,Dla początkujących....."

Oczywiście gratuluję wyników w PIC-owaniu. :D:D:D

Odnośnik do komentarza
Udostępnij na innych stronach

Dziś w sumie niewiele - płytka i schemat układu w przyczepie:

 

daf_przy_pl.gif

 

Na tej płytce znajduje się również akumulator zasilający:

http://www.tme.com.pl/akumulator-ni-mh-4-8v-140mah-owalny-23mm-3pin/arts/pl/razem/bate25.html

 

A wieczorem powstało jeszcze to:

 

lampa.jpg

 

Narazie "surowa" ale już działa. 4 diody LED: biała, dwie czerwone i żółta (pomarańczowa) o wymiarach 1,6 x 0,8 x 0,8 mm.

Odnośnik do komentarza
Udostępnij na innych stronach

Zapewne wielokrotnie to widzieliście, ale pewnie nikt nie zwrócił uwagi. Ciężarówka z dwoma osiami tylnymi podjeżdza pod krawężnik. Najpierw podjeżdza pierwsze koło, które stoi wyżej, drugie jeszcze nie podjechało i stoi niżej, ale obydwa koła stoją na ziemi (żadne z nich nie jest w powietrzu). Podobnie wygląda zjazd z krawężnika.

Model, jakby na to nie spojrzeć, musi się zachować tak samo i... tak też się zachowuje :-)

W odróżnieniu od prawdziwego samochodu osiągnąłem ten sam efekt poprzez zamocowanie całej przekładni z silnikiem na pojedynczej osi obrotu. Na szczęście firma Kibri dostarczyła odpowiednie detale. Oś obrotu całego układu napędowego znajduje się pomiędzy 1 a 2 kołem tylnym. Zobaczycie o na zdjęciach.

 

Pierwsza rzecz, to wycięcie odpowiednio większego otworu w dnie kontenera:

 

 

31.jpg

 

 

Widok przekładni w kontenerze:

 

26.jpg

 

I z trzech ujęć widok przekłądni od spodu:

 

27.jpg

 

28.jpg

 

29.jpg

 

Na zakończenie tej serii fotek warto kilka słów poświęcić regulatorowi. Wspaniały regulator dwukierunkowy ( a wspaniałość dotyczy i rozmiarów i tego, że jest dedykowany do zastosowanego silnika) dostarcza nam producent serwa HS-81, z którego pozyskano silnik i zębatki do przekładni. Wystarczy tylko wylutować trzy przewody biegnące do potencjometru serwa i w to miejsce przylutować dwa rezystory 2k7.

 

30.jpg

 

Nie byłbym sobą, gdybym nie sprawdził, czy toto jeździ. Jeździ, koślawo i nieporadnie (brak jeszcze podłączenia układu kierowniczego) nie ma zbyt dużej siły (jeszcze jest za lekki), ciągnie za sobą kabelki zasilania i odbiornika, brak kabiny, etc. Także narazie filmu nie będzie.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.