Zdravím všechny a obzvlášť picaxeodborníky...
Vymyslel jsem si takovej nesmysl a začínám ho realizovat.
Prostě potřebuju servo, kupodivu na dálkový ovládání, ale jelikož je to na malou vzdálenost, tak IR.
To IR jsou HT12A vysílač (hotová krabička kterou chci použít a nechci jí předělávat) a HT12D přijímač. Výstupy z HT12D jdou na PICAXE 20M2. Aby to bylo trochu jednodušší, tak mi stačí 10 poloh serva (0 až 9), ale aby to zase bylo trochu složitější, tak ty polohy potřebuju vidět na LED displeji (společná anoda nízkopříkonový). Vymyslel jsem tenhle rádobyprogram, ale má nějaký mouchy... teda hodně much... a možná jdu úplně blbou cestou... Tak kdyby někdo z vás byl ochotnej mně nakopnout správným směrem, tak mu budu velice zavázán.
Má to fungovat takto:
Po zapnutí se procesor vynuluje = nastaví na displej 0, servo dá do polohy 0 a potom servo vypne.
Pokud zmačknu swplus (tlačítko na hlavním panelu, na stejném vstupu je i výstup HT12D) - nastaví na displej 1...servo dá do polohy 1 ... vypne servo.
Pokud zmačknu opět swplus - nastaví na displej 2...servo dá do polohy 2 ... vypne servo.
Takhle to pokračuje až do polohy 9.
Pokud zmačknu swminus - vrátí kdykoli o jednu polohu zpět.
Dále by tam mělo bejt tlačítko sw0 (ještě nemám naimplementováno) a to by mělo dělat to, že z kterékoliv polohy:
1)při aktivaci - na displej nastaví 0...nastaví servo do polohy 0
2)při deaktivaci - vrátí displej i servo do polohy před aktivací.
Teď ty mouchy toho mýho skoroprogramu...
1) Servo občas "ujede" ze správné polohy (mám celý dvě a dělaj to obě...)
2) Při zmačknutí tlačítka swplus i swminus by se mi líbilo, kdyby to umělo tak, že bych si na displeji během xx sekund "namačkal" jakékoliv číslo 0 až 9 a servo by už mohlo "dojet " do téhle polohy až po posledním stisku + 2 s. Momentálně to skáče...
3) Tlačítko sw17 je vstup od HT a na funkci zvěrolékaře nemá vliv
4) Kdysi jsem se chvíli kamarádil s PICama a moc nám to nešlo, tak teď jsem objevil PICAXE, snad to bude lepší
5) Je to můj první picaxí program, tak mě moc nemlaťte
6) Kdyby se vám to zdálo moc dlouhý, tak je to vlastně 10x skoro to samý za sebou

Předem děkuji všem zúčastněným za připomínky.
A tady je ten zázrak

' PICAXE 20M2 + 7 segment CA + HT12D - counter 0-9/ IR servocontroller
' JP 31.01.2014
' servo = B.1
symbol swplus = pinB.5 'switch is on input pin B.5 = +od vystupu a HT12D
symbol swminus = pinB.4 'switch is on input pin B.4 = +od vystupu b HT12D
symbol sw17 = pinB.3 'switch is on input pin B.3 = +od vystupu 17 HT12D
symbol LEDa = C.5 'LED a is on output pin C.5
symbol LEDb = C.7 'LED b is on output pin C.7
symbol LEDc = C.0 'LED c is on output pin C.0
symbol LEDd = C.2 'LED d is on output pin C.2
symbol LEDe = C.4 'LED e is on output pin C.4
symbol LEDf = C.3 'LED f is on output pin C.3
symbol LEDg = C.1 'LED g is on output pin C.1
symbol poloha0 = 180
symbol poloha1 = 169
symbol poloha2 = 158
symbol poloha3 = 147
symbol poloha4 = 138
symbol poloha5 = 128
symbol poloha6 = 118
symbol poloha7 = 107
symbol poloha8 = 96
symbol poloha9 = 85
' START
pause 1000
svit0:
high LEDa
high LEDb
high LEDc
high LEDd
high LEDe
high LEDf
high LEDg
pause 50
low LEDa
low LEDb
low LEDc
low LEDd
low LEDe
low LEDf
pause 100
servo B.1,poloha0 ; inicializace serva
pause 1400
servo B.1,off
pause 100
svit00:
pause 2
if sw17=0 then svit00:
pause 2
if swminus=0 then svit00:
pause 2
if swplus=1 then svit00: 'cekej na tlacitko plus
pause 2
svit1:
high LEDa
high LEDb
high LEDc
high LEDd
high LEDe
high LEDf
high LEDg
pause 50
low LEDb
low LEDc
pause 100
servo B.1,poloha1 ; inicializace serva
pause 1400
servo B.1,off
pause 100
svit10:
pause 2
if sw17=0 then svit10:
pause 2
if swminus=0 then svit0: 'cekej na tlacitko minus
pause 2
if swplus=1 then svit10: 'cekej na tlacitko plus
pause 2
svit2:
high LEDa
high LEDb
high LEDc
high LEDd
high LEDe
high LEDf
high LEDg
pause 50
low LEDa
low LEDb
low LEDd
low LEDe
low LEDg
pause 100
servo B.1,poloha2 ; inicializace serva
pause 1400
servo B.1,off
pause 100
svit20:
pause 2
if sw17=0 then svit20:
pause 2
if swminus=0 then svit1: 'cekej na tlacitko minus
pause 100
if swplus=1 then svit20: 'cekej na tlacitko plus
pause 2
svit3:
high LEDa
high LEDb
high LEDc
high LEDd
high LEDe
high LEDf
high LEDg
pause 50
low LEDa
low LEDb
low LEDc
low LEDd
low LEDg
pause 100
servo B.1,poloha3 ; inicializace serva
pause 1400
servo B.1,off
pause 100
svit30:
pause 2
if sw17=0 then svit30:
pause 2
if swminus=0 then svit2: 'cekej na tlacitko minus
pause 2
if swplus=1 then svit30: 'cekej na tlacitko plus
pause 2
svit4:
high LEDa
high LEDb
high LEDc
high LEDd
high LEDe
high LEDf
high LEDg
pause 50
low LEDb
low LEDc
low LEDf
low LEDg
pause 100
servo B.1,poloha4 ; inicializace serva
pause 1400
servo B.1,off
pause 100
svit40:
pause 2
if sw17=0 then svit40:
pause 2
if swminus=0 then svit3: 'cekej na tlacitko minus
pause 2
if swplus=1 then svit40: 'cekej na tlacitko plus
pause 2
svit5:
high LEDa
high LEDb
high LEDc
high LEDd
high LEDe
high LEDf
high LEDg
pause 50
low LEDa
low LEDc
low LEDd
low LEDf
low LEDg
pause 100
servo B.1,poloha5 ; inicializace serva
pause 1400
servo B.1,off
pause 100
svit50:
pause 2
if sw17=0 then svit50:
pause 2
if swminus=0 then svit4: 'cekej na tlacitko minus
pause 2
if swplus=1 then svit50: 'cekej na tlacitko plus
pause 2
svit6:
high LEDa
high LEDb
high LEDc
high LEDd
high LEDe
high LEDf
high LEDg
pause 50
low LEDa
low LEDc
low LEDd
low LEDe
low LEDf
low LEDg
pause 100
servo B.1,poloha6 ; inicializace serva
pause 1400
servo B.1,off
pause 100
svit60:
pause 2
if sw17=0 then svit60:
pause 2
if swminus=0 then svit5: 'cekej na tlacitko minus
pause 2
if swplus=1 then svit60: 'cekej na tlacitko plus
pause 2
svit7:
high LEDa
high LEDb
high LEDc
high LEDd
high LEDe
high LEDf
high LEDg
pause 50
low LEDa
low LEDb
low LEDc
pause 100
servo B.1,poloha7 ; inicializace serva
pause 1400
servo B.1,off
pause 100
svit70:
pause 2
if sw17=0 then svit70:
pause 2
if swminus=0 then svit6: 'cekej na tlacitko minus
pause 2
if swplus=1 then svit70: 'cekej na tlacitko plus
pause 2
svit8:
high LEDa
high LEDb
high LEDc
high LEDd
high LEDe
high LEDf
high LEDg
pause 50
low LEDa
low LEDb
low LEDc
low LEDd
low LEDe
low LEDf
low LEDg
pause 100
servo B.1,poloha8 ; inicializace serva
pause 1400
servo B.1,off
pause 100
svit80:
pause 2
if sw17=0 then svit80:
pause 2
if swminus=0 then svit7: 'cekej na tlacitko minus
pause 2
if swplus=1 then svit80: 'cekej na tlacitko plus
pause 2
svit9:
high LEDa
high LEDb
high LEDc
high LEDd
high LEDe
high LEDf
high LEDg
pause 50
low LEDa
low LEDb
low LEDc
low LEDd
low LEDf
low LEDg
pause 100
servo B.1,poloha9 ; inicializace serva
pause 1400
servo B.1,off
pause 100
svit90:
pause 2
if sw17=0 then svit90:
pause 2
if swminus=0 then svit8: 'cekej na tlacitko minus
pause 100
if swplus=1 then svit90: 'cekej na tlacitko plus
pause 2
goto svit90
end