Spinac pro triaky pomoc!
Re: Spinac pro triaky pomoc!
zdravím,tak sem konečně odskoušel.Je tu malý problém,když neprojedu po zapnutí napájení všechny výstupi pomocí tlačítek,to jest od B0 až B6,tak na nesepnutých výstupech zůstává napětí cca 0,22mv.To zřejmě postačuje k sepnutí optočlenů MOC3021,které pak spínají výkonové triaky.Když program projedu je na výstupech 0voltů.Co stím prosím!!!!!
Re: Spinac pro triaky pomoc!
To je divné. Pokud jsi použil na začátek ten příkaz pins = %00000001měly by být výstupy kromě prvního v nule.
Stejně by měly fungovat na začátku programu příkazy low 0, low1 ...
Vlož sem ten tvůj kód.
Stejně by měly fungovat na začátku programu příkazy low 0, low1 ...
Vlož sem ten tvůj kód.
Re: Spinac pro triaky pomoc!
let b1=0
start:
pins = %00000001 ;zapne první led
tlacitka: ;vybe směr nahoru dolu
if pin0=0 then goto nahoru ;podle stisknutého tlačítka
if pin1=0 then goto dolu
goto tlacitka
nahoru:
if pin0=0 then goto nahoru ;ošetří tlačítko
if b1=6 then goto tlacitka ;ošetří přepnutí mimo rozsah
let b1=b1+1 ;zvýší hodnotu o 1
goto vystup
dolu:
if pin1=0 then goto dolu ;ošetří tlačítko
if b1=0 then goto tlacitka ;ošetří přepnutí mimo rozsah
let b1=b1-1 ;sníží hodnotu o 1
goto vystup
vystup:
pins = %00000000 ;zhasne všechny led
pause 200 ;pauza mezi přepnutím
if b1=0 then high 0 endif ;vybere výstupní led podle hodnoty
if b1=1 then high 1 endif ;vybere výstupní led podle hodnoty
if b1=2 then high 2 endif ;vybere výstupní led podle hodnoty
if b1=3 then high 3 endif ;vybere výstupní led podle hodnoty
if b1=4 then high 4 endif ;vybere výstupní led podle hodnoty
if b1=5 then high 5 endif ;vybere výstupní led podle hodnoty
if b1=6 then high 6 endif ;vybere výstupní led podle hodnoty
goto tlacitka:
start:
pins = %00000001 ;zapne první led
tlacitka: ;vybe směr nahoru dolu
if pin0=0 then goto nahoru ;podle stisknutého tlačítka
if pin1=0 then goto dolu
goto tlacitka
nahoru:
if pin0=0 then goto nahoru ;ošetří tlačítko
if b1=6 then goto tlacitka ;ošetří přepnutí mimo rozsah
let b1=b1+1 ;zvýší hodnotu o 1
goto vystup
dolu:
if pin1=0 then goto dolu ;ošetří tlačítko
if b1=0 then goto tlacitka ;ošetří přepnutí mimo rozsah
let b1=b1-1 ;sníží hodnotu o 1
goto vystup
vystup:
pins = %00000000 ;zhasne všechny led
pause 200 ;pauza mezi přepnutím
if b1=0 then high 0 endif ;vybere výstupní led podle hodnoty
if b1=1 then high 1 endif ;vybere výstupní led podle hodnoty
if b1=2 then high 2 endif ;vybere výstupní led podle hodnoty
if b1=3 then high 3 endif ;vybere výstupní led podle hodnoty
if b1=4 then high 4 endif ;vybere výstupní led podle hodnoty
if b1=5 then high 5 endif ;vybere výstupní led podle hodnoty
if b1=6 then high 6 endif ;vybere výstupní led podle hodnoty
goto tlacitka:
Re: Spinac pro triaky pomoc!
Osobně tam nevidím problém. Momentálně to nemám jak změřit a tak mě napadají dvě možnosti.
Zkus nahradit ten příkaz pins = %00000001
tímhle:
Mělo by to ty výstupy uvést do stejného stavu pouze jiným příkazem.
Další variantou by možná bylo vřazením před ty optrony buď svítící diody, nebo obyčejné diody. Obě by ty mV měly odfiltrovat. Na druhou stranu při těch mV by ten optron ještě neměl podle mého sepnout.
Zkus nahradit ten příkaz pins = %00000001
tímhle:
Kód: Vybrat vše
high 0
low 1
low 2
low 3
low 4
low 5
low 6
Další variantou by možná bylo vřazením před ty optrony buď svítící diody, nebo obyčejné diody. Obě by ty mV měly odfiltrovat. Na druhou stranu při těch mV by ten optron ještě neměl podle mého sepnout.
Re: Spinac pro triaky pomoc!
Tak to je přesně ono.Těmito příkazy se uvedou výstupi hned do 0 stavu.Děkuji!
Ještě doplnění na začátku programu sem změnil:
let b1=0 na let b1=-1.tím sem docílil,že program po zapnutí nastartuje hned od výstupu B0 a né od B1!!!!
Ještě doplnění na začátku programu sem změnil:
let b1=0 na let b1=-1.tím sem docílil,že program po zapnutí nastartuje hned od výstupu B0 a né od B1!!!!
Re: Spinac pro triaky pomoc!
Zajímavé, třeba nám to vysvětlí někdo rozumnější v čem se ty dva příkazy liší.Uranin píše:Tak to je přesně ono.Těmito příkazy se uvedou výstupi hned do 0 stavu.Děkuji!
Tomu se říká ladění programuUranin píše:Ještě doplnění na začátku programu sem změnil:
let b1=0 na let b1=-1.tím sem docílil,že program po zapnutí nastartuje hned od výstupu B0 a né od B1!!!!
Re: Spinac pro triaky pomoc!
V manuálu se píše:
LET pins / pinsA / pinsB / pinsC / pinsD = value
Při práci s vnějšími výstupními piny je třeba nastavit jejich funkci. Je možné je nastavovat pomocí high, low, apod. nebo je možné použít příkaz LET pins. Před jeho použitím je třeba nakonfigurovat pin jako výstupní.
LET dirs / dirsA / dirsB / dirsC / dirsD = value
Pro práci s vnějšími piny je třeba nastavit zda jde o pin vstupní, či výstupní. Je mnoho způsobu (input, output, high, low…) nebo je možné použít příkaz LET dirs. Platí, že při nastavení je 1 = vstupní pin a 0 = výstupní pin.
LET pins / pinsA / pinsB / pinsC / pinsD = value
Při práci s vnějšími výstupními piny je třeba nastavit jejich funkci. Je možné je nastavovat pomocí high, low, apod. nebo je možné použít příkaz LET pins. Před jeho použitím je třeba nakonfigurovat pin jako výstupní.
LET dirs / dirsA / dirsB / dirsC / dirsD = value
Pro práci s vnějšími piny je třeba nastavit zda jde o pin vstupní, či výstupní. Je mnoho způsobu (input, output, high, low…) nebo je možné použít příkaz LET dirs. Platí, že při nastavení je 1 = vstupní pin a 0 = výstupní pin.
jrt
Re: Spinac pro triaky pomoc!
Přátelé omlouvám se,abych to upřesnil,podle prvotního zapojení kde je nastaven _
start:
pins = %00000001 ;zapne první led
sem upravil příkaz - let b1=-1
Tak zapínání výstupů začíná už od B0!!!!!
Po upravě příkazu start: od jova,
high 0
low 1
low 2
low 3
low 4
low 5
low 6
Je pak tedy uplně jedno co je na - let b1=
Vše je ve svářečce a funguje to nádherně.Všem děkuji.
start:
pins = %00000001 ;zapne první led
sem upravil příkaz - let b1=-1
Tak zapínání výstupů začíná už od B0!!!!!
Po upravě příkazu start: od jova,
high 0
low 1
low 2
low 3
low 4
low 5
low 6
Je pak tedy uplně jedno co je na - let b1=
Vše je ve svářečce a funguje to nádherně.Všem děkuji.
Re: Spinac pro triaky pomoc!
Takže správně by to mělo vypadat takto?jrt píše:V manuálu se píše:
LET pins / pinsA / pinsB / pinsC / pinsD = value
Při práci s vnějšími výstupními piny je třeba nastavit jejich funkci. Je možné je nastavovat pomocí high, low, apod. nebo je možné použít příkaz LET pins. Před jeho použitím je třeba nakonfigurovat pin jako výstupní.
LET dirs / dirsA / dirsB / dirsC / dirsD = value
Pro práci s vnějšími piny je třeba nastavit zda jde o pin vstupní, či výstupní. Je mnoho způsobu (input, output, high, low…) nebo je možné použít příkaz LET dirs. Platí, že při nastavení je 1 = vstupní pin a 0 = výstupní pin.
Kód: Vybrat vše
start:
let dirsb= %01111111 ;nastaví piny 0-6 jako výstupní
let pinsb = %10000001 ;nastaví pin 0 na hodnotu 1
Já jsem původně vycházel z příručky http://www.hobbyrobot.cz/wp-content/upl ... axe-RR.pdf
Strana 24.
Tam jsou ty programy pro obvod 20M a nedošlo mi, že v obvodu 20M2 to může být i jinak a piny se musí nejprve nastavit