LusoRobótica - Robótica em Português
Sistemas específicos => Picaxe => Tópico iniciado por: johnny__08 em 14 de Dezembro de 2010, 16:29
-
boas estou construir um cofre digital com picaxe 28x e estou com problemas e duvidas em como funcionar o teclado , do genero como faço ele enviar um sinal para o picaxe nivel logico 1 ? o programa ja ta feito mas na pratica nao esta a funcionar! alguem me podia ajudar urgente!
PRECISO DE ENTREGAR O PROJECTO EM BREVE HORAS
-
main:
if b8= 0 then digito1
if b8= 1 then digito2
if b8= 2 then digito3
if b8= 3 then digito4
goto ole
'««----------------------------»» fixo
ole:
if b9= 0 then numero1
if b9= 1 then numero2
if b9= 2 then numero3
if b9= 3 then numero4
goto saida
digito1:
if pin2=1 and pin4=1 then zero1
if pin3=1 and pin7=1 then um1
if pin2=1 and pin7=1 then dois1
if pin1=1 and pin7=1 then tres1
if pin3=1 and pin6=1 then quatro1
if pin2=1 and pin6=1 then cinco1
if pin1=1 and pin6=1 then seis1
if pin3=1 and pin5=1 then sete1
if pin2=1 and pin5=1 then oito1
if pin1=1 and pin5=1 then nove1
goto digito1
zero1:
b8=b8 +1
b4=0
goto main
um1:
b8=b8 +1
b4=1
goto main
dois1:
b8=b8 +1
b4=2
goto main
tres1:
b8=b8 +1
b4=3
goto main
quatro1:
b8=b8 +1
b4=4
goto main
cinco1:
b8=b8 +1
b4=5
goto main
seis1:
b8=b8 +1
b4=6
goto main
sete1:
b8=b8 +1
b4=7
goto main
oito1:
b8=b8 +1
b4=8
goto main
nove1:
b8=b8 +1
b4=9
goto main
digito2:
if pin2=1 and pin4=1 then zero2
if pin3=1 and pin7=1 then um2
if pin2=1 and pin7=1 then dois2
if pin1=1 and pin7=1 then tres2
if pin3=1 and pin6=1 then quatro2
if pin2=1 and pin6=1 then cinco2
if pin1=1 and pin6=1 then seis2
if pin3=1 and pin5=1 then sete2
if pin2=1 and pin5=1 then oito2
if pin1=1 and pin5=1 then nove2
goto digito2
zero2:
b8=b8 +1
b5=0
goto main
um2:
b8=b8 +1
b5=1
goto main
dois2:
b8=b8 +1
b5=2
goto main
tres2:
b8=b8 +1
b5=3
goto main
quatro2:
b8=b8 +1
b5=4
goto main
cinco2:
b8=b8 +1
b5=5
goto main
seis2:
b8=b8 +1
b5=6
goto main
sete2:
b8=b8 +1
b5=7
goto main
oito2:
b8=b8 +1
b5=8
goto main
nove2:
b8=b8 +1
b5=9
goto main
digito3:
if pin2=1 and pin4=1 then zero3
if pin3=1 and pin7=1 then um3
if pin2=1 and pin7=1 then dois3
if pin1=1 and pin7=1 then tres3
if pin3=1 and pin6=1 then quatro3
if pin2=1 and pin6=1 then cinco3
if pin1=1 and pin6=1 then seis3
if pin3=1 and pin5=1 then sete3
if pin2=1 and pin5=1 then oito3
if pin1=1 and pin5=1 then nove3
zero3:
b8=b8 +1
b6=0
goto main
um3:
b8=b8 +1
b6=1
goto main
dois3:
b8=b8 +1
b6=2
goto main
tres3:
b8=b8 +1
b6=3
goto main
quatro3:
b8=b8 +1
b6=4
goto main
cinco3:
b8=b8 +1
b6=5
goto main
seis3:
b8=b8 +1
b6=6
goto main
sete3:
b8=b8 +1
b6=7
goto main
oito3:
b8=b8 +1
b6=8
goto main
nove3:
b8=b8 +1
b6=9
goto main
digito4:
if pin2=1 and pin4=1 then zero4
if pin3=1 and pin7=1 then um4
if pin2=1 and pin7=1 then dois4
if pin1=1 and pin7=1 then tres4
if pin3=1 and pin6=1 then quatro4
if pin2=1 and pin6=1 then cinco4
if pin1=1 and pin6=1 then seis4
if pin3=1 and pin5=1 then sete4
if pin2=1 and pin5=1 then oito4
if pin1=1 and pin5=1 then nove4
goto digito4
zero4:
b8=b8 +1
b7=0
goto main
um4:
b8=b8 +1
b7=1
goto main
dois4:
b8=b8 +1
b7=2
goto main
tres4:
b8=b8 +1
b7=3
goto main
quatro4:
b8=b8 +1
b7=4
goto main
cinco4:
b8=b8 +1
b7=5
goto main
seis4:
b8=b8 +1
b7=6
goto main
sete4:
b8=b8 +1
b7=7
goto main
oito4:
b8=b8 +1
b7=8
goto main
nove4:
b8=b8 +1
b7=9
goto main
'------------------------------------------------------------- numero fixo
numero1:
if pin2=1 and pin4=1 then zero1n
if pin3=1 and pin7=1 then um1n
if pin2=1 and pin7=1 then dois1n
if pin1=1 and pin7=1 then tres1n
if pin3=1 and pin6=1 then quatro1n
if pin2=1 and pin6=1 then cinco1n
if pin1=1 and pin6=1 then seis1n
if pin3=1 and pin5=1 then sete1n
if pin2=1 and pin5=1 then oito1n
if pin1=1 and pin5=1 then nove1n
goto numero1
zero1n:
b9=b9 +1
b0=0
goto main
um1n:
b9=b9 +1
b0=1
goto main
dois1n:
b9=b9 +1
b0=2
goto main
tres1n:
b9=b9 +1
b0=3
goto main
quatro1n:
b9=b9 +1
b0=4
goto main
cinco1n:
b9=b9 +1
b0=5
goto main
seis1n:
b9=b9 +1
b0=6
goto main
sete1n:
b9=b9 +1
b0=7
goto main
oito1n:
b9=b9 +1
b0=8
goto main
nove1n:
b9=b9 +1
b0=9
goto main
numero2:
if pin2=1 and pin4=1 then zero2n
if pin3=1 and pin7=1 then um2n
if pin2=1 and pin7=1 then dois2n
if pin1=1 and pin7=1 then tres2n
if pin3=1 and pin6=1 then quatro2n
if pin2=1 and pin6=1 then cinco2n
if pin1=1 and pin6=1 then seis2n
if pin3=1 and pin5=1 then sete2n
if pin2=1 and pin5=1 then oito2n
if pin1=1 and pin5=1 then nove2n
goto numero2
zero2n:
b9=b9 +1
b1=0
goto main
um2n:
b9=b9 +1
b1=1
goto main
dois2n:
b9=b9 +1
b1=2
goto main
tres2n:
b9=b9 +1
b1=3
goto main
quatro2n:
b9=b9 +1
b1=4
goto main
cinco2n:
b9=b9 +1
b1=5
goto main
seis2n:
b9=b9 +1
b1=6
goto main
sete2n:
b9=b9 +1
b1=7
goto main
oito2n:
b9=b9 +1
b1=8
goto main
nove2n:
b9=b9 +1
b1=9
goto main
numero3:
if pin2=1 and pin4=1 then zero3n
if pin3=1 and pin7=1 then um3n
if pin2=1 and pin7=1 then dois3n
if pin1=1 and pin7=1 then tres3n
if pin3=1 and pin6=1 then quatro3n
if pin2=1 and pin6=1 then cinco3n
if pin1=1 and pin6=1 then seis3n
if pin3=1 and pin5=1 then sete3n
if pin2=1 and pin5=1 then oito3n
if pin1=1 and pin5=1 then nove3n
goto numero3
zero3n:
b9=b9 +1
b2=0
goto main
um3n:
b9=b9 +1
b2=1
goto main
dois3n:
b9=b9 +1
b2=2
goto main
tres3n:
b9=b9 +1
b2=3
goto main
quatro3n:
b9=b9 +1
b2=4
goto main
cinco3n:
b9=b9 +1
b2=5
goto main
seis3n:
b9=b9 +1
b2=6
goto main
sete3n:
b9=b9 +1
b2=7
goto main
oito3n:
b9=b9 +1
b2=8
goto main
nove3n:
b9=b9 +1
b2=9
goto main
numero4:
if pin2=1 and pin4=1 then zero4n
if pin3=1 and pin7=1 then um4n
if pin2=1 and pin7=1 then dois4n
if pin1=1 and pin7=1 then tres4n
if pin3=1 and pin6=1 then quatro4n
if pin2=1 and pin6=1 then cinco4n
if pin1=1 and pin6=1 then seis4n
if pin3=1 and pin5=1 then sete4n
if pin2=1 and pin5=1 then oito4n
if pin1=1 and pin5=1 then nove4n
goto numero4
zero4n:
b9=b9 +1
b3=0
goto main
um4n:
b9=b9 +1
b3=1
goto main
dois4n:
b9=b9 +1
b3=2
goto main
tres4n:
b9=b9 +1
b3=3
goto main
quatro4n:
b9=b9 +1
b3=4
goto main
cinco4n:
b9=b9 +1
b3=5
goto main
seis4n:
b9=b9 +1
b3=6
goto main
sete4n:
b9=b9 +1
b3=7
goto main
oito4n:
b9=b9 +1
b3=8
goto main
nove4n:
b9=b9 +1
b3=9
goto main
saida:
if b0=b4 and b1=b5 and b2=b6 and b3=b7 then liga
if b0<>b4 then erro
if b1<>b5 then erro1
if b2<>b6 then erro2
if b3<>b7 then erro3
liga:
high 2
pause 3000
low 1
b9=0
b8=0
goto main
erro:
b9=0
goto bloqueio
erro1:
b9=0
goto bloqueio
erro2:
b9=0
goto bloqueio
erro3:
b9=0
goto bloqueio
bloqueio:
b10= b10 +1
if b10=1 then led1
if b10=2 then led2
if b10=3 then tranca
goto ole
tranca:
let pins=%00000111
if pin3=1 and pin4=1 then abre
goto tranca
abre:
b9=0
b8=0
b10=0
high 3
pause 1500
low 3
goto main
led1:
high 7
pause 2000
low 7
goto ole
led2:
high 6
pause 2000
low 6
goto ole
-
consiste basicamente em primeira vex k se liga vai pedir um codigo, ai marcamos o codigo de 4 digitos e vai ficar guardado na memoria B , de seguida vai sempre pedir o codigo guardado , tem se 3 tentativas de acertar o codigo , se estiver certo da um sinal pr um rele que vai destrancar o trinco electico, senao estiver certo vai enviar um sinal para um led vermelho e uma sirene
-
Qual teclado?
Fotos do teclado, que imagino ser uma grelha de botões, sabes ler o valor de um botão usando uma entrada digital?
-
Qual teclado?
Fotos do teclado, que imagino ser uma grelha de botões, sabes ler o valor de um botão usando uma entrada digital?
nao sei ler isso dos valores sou msm mt iniciante nesta area , como podem ver,é este http://www.rapidonline.com/productinfo.aspx?&tier1=Electronic+Components&tier2=Switches&tier3=Keypads&tier4=Waterproof+data+entry+keypad&moduleno=73487&catRef=78-0206&utm_source=AffWin&utm_medium=Affiliate&awc=1799_1292344648_629a5bd12c97b77ea1402fc15f9f293b (http://www.rapidonline.com/productinfo.aspx?&tier1=Electronic+Components&tier2=Switches&tier3=Keypads&tier4=Waterproof+data+entry+keypad&moduleno=73487&catRef=78-0206&utm_source=AffWin&utm_medium=Affiliate&awc=1799_1292344648_629a5bd12c97b77ea1402fc15f9f293b)
agradecia imenso a vossa ajuda msm mttt
basicamento tenho de apresentar isto para poder acabar o curso
-
Foste mesmo tu que fizeste o código que postas-te em cima?
É que se foste, não estou a perceber como é que fazes isso tudo antes de saberes sequer ler o teclado numérico que tens ao teu dispor, e dificilmente alguem te vai dar o código para o fazeres, isso é um teclado que está ligado em matriz, existem bibliotecas para fazer isso com arduino, mas terás de as passar para Basic se as quiseres usar.
Metendo keypad picaxe no google fui logo ter a uma página do forum da Picaxe que diz para ires ver o programa Keypad Lock que está nos exemplos/Programming Editor help.
-
Foste mesmo tu que fizeste o código que postas-te em cima?
É que se foste, não estou a perceber como é que fazes isso tudo antes de saberes sequer ler o teclado numérico que tens ao teu dispor, e dificilmente alguem te vai dar o código para o fazeres, isso é um teclado que está ligado em matriz, existem bibliotecas para fazer isso com arduino, mas terás de as passar para Basic se as quiseres usar.
Metendo keypad picaxe no google fui logo ter a uma página do forum da Picaxe que diz para ires ver o programa Keypad Lock que está nos exemplos/Programming Editor help.
sim fiz com um amigo na aula, mas foi feito com outro teclado um cebek c-5235 , so que pensei que este tambem funcionava, sera k podia falar ctg atraves de msn? isto se puders claro , necessito msm de ajuda! eu tb tenho o outro teclado aki em casa
-
Então, provavelmente as diferenças são ao nivel das ligações que diferem de teclado para teclado, e se tens o outro teclado usa o outro.
Não uso msn.
-
Então, provavelmente as diferenças são ao nivel das ligações que diferem de teclado para teclado, e se tens o outro teclado usa o outro.
Não uso msn.
relativamento akela parte
if pin2=1 and pin4=1 then zero1
if pin3=1 and pin7=1 then um1
if pin2=1 and pin7=1 then dois1
if pin1=1 and pin7=1 then tres1
if pin3=1 and pin6=1 then quatro1
if pin2=1 and pin6=1 then cinco1
if pin1=1 and pin6=1 then seis1
if pin3=1 and pin5=1 then sete1
if pin2=1 and pin5=1 then oito1
if pin1=1 and pin5=1 then nove1
utilizei um multimetro para ver os pins que funcionam para cada numero atraves dakele apito do multimetro
-
Então, mas se tens o teclado em que isso funcionava em casa porque não o usas?
Digo-te desde já que não percebo nada de Basic, mas sei que isto é daquelas coisas que usar C transformava esse meio quilometro em código em 30 ou 40 linhas.
-
Então, mas se tens o teclado em que isso funcionava em casa porque não o usas?
Digo-te desde já que não percebo nada de Basic, mas sei que isto é daquelas coisas que usar C transformava esse meio quilometro em código em 30 ou 40 linhas.
porque preferia o outro teclado pois esse e k encaixe no cofre a medida certa e tem todos os preparos para ele , so que n esta a funcionar ! e eu trokei alguma ligaçoes mas nao tenho a certexa k estao a funcionar bem vou mandar o eskema!
mas nao meu caso terei k usar so msm este programa picaxe nao posso usar outro
-
Consulta o datasheet de cada um dos teclados, e faz as devidas modificações.
-
Consulta o datasheet de cada um dos teclados, e faz as devidas modificações.
foi atraves desta imagem k alterei o programa
http://img34.imageshack.us/i/tecladomudado.jpg/ (http://img34.imageshack.us/i/tecladomudado.jpg/)
-
Consulta o datasheet de cada um dos teclados, e faz as devidas modificações.
foi atraves desta imagem k alterei o programa
http://img34.imageshack.us/i/tecladomudado.jpg/ (http://img34.imageshack.us/i/tecladomudado.jpg/)
a ligaçao do teclado esta assim cada pin liga directament ao picaxe , as entradas do picaxe 0 ate 3 tem resistencias de 10k omhs ligados a 0V
http://img80.imageshack.us/i/picaxeteclado.png/ (http://img80.imageshack.us/i/picaxeteclado.png/)
-
Consulta o datasheet de cada um dos teclados, e faz as devidas modificações.
foi atraves desta imagem k alterei o programa
http://img34.imageshack.us/i/tecladomudado.jpg/ (http://img34.imageshack.us/i/tecladomudado.jpg/)
a ligaçao do teclado esta assim cada pin liga directament ao picaxe , as entradas do picaxe 0 ate 3 tem resistencias de 10k omhs ligados a 0V
http://img80.imageshack.us/i/picaxeteclado.png/ (http://img80.imageshack.us/i/picaxeteclado.png/)
uma das minhas duvidas é no teclado , se tenho de ligar algo coisa com energia 5v em algum pin do teclado ou se funciona tudo assim , so com as resistencias no massa e outros ligados directament no picaxe
-
Mas tu não tinhas isso a funcionar com o outro teclado?
Imagino que se fores ler o Programming help tem lá um esquema sobre como ligar isso, assim como se usares o google vais encontrar o que precisas, eu nunca usei um teclado desses, mas existe muita gente que já o fez por essa internet fora.
-
Mas tu não tinhas isso a funcionar com o outro teclado?
Imagino que se fores ler o Programming help tem lá um esquema sobre como ligar isso, assim como se usares o google vais encontrar o que precisas, eu nunca usei um teclado desses, mas existe muita gente que já o fez por essa internet fora.
sim mas isto ja vai a alguns meses atras, depois fui alterando tudo! ja procurei na net e nao encontro nada relativamento igual ou parecido , dai o meu pedido de ajuda aki no forum! de seguida vou enviar o primeira programaçao feito no picaxe com akele primeiro teclado a funcionar!
-
Mas tu não tinhas isso a funcionar com o outro teclado?
Imagino que se fores ler o Programming help tem lá um esquema sobre como ligar isso, assim como se usares o google vais encontrar o que precisas, eu nunca usei um teclado desses, mas existe muita gente que já o fez por essa internet fora.
sim mas isto ja vai a alguns meses atras, depois fui alterando tudo! ja procurei na net e nao encontro nada relativamento igual ou parecido , dai o meu pedido de ajuda aki no forum! de seguida vou enviar o primeira programaçao feito no picaxe com akele primeiro teclado a funcionar!
main: if pin3 = 1 and pin4 = 1 then novo
if b0 = 0 then primeiro
if b0 = 1 then segundo
if b0 = 2 then terceiro
if b0 = 3 then quarto
if pin3 = 1 and pin6 = 1 then okb
goto main
primeiro:if pin3 = 1 and pin5 = 1 then b_0
if pin0 = 1 and pin4 = 1 then b_1
if pin0 = 1 and pin5 = 1 then b_2
if pin0 = 1 and pin6 = 1 then b_3
if pin1 = 1 and pin4 = 1 then b_4
if pin1 = 1 and pin5 = 1 then b_5
if pin1 = 1 and pin6 = 1 then b_6
if pin2 = 1 and pin4 = 1 then b_7
if pin2 = 1 and pin5 = 1 then b_8
if pin2 = 1 and pin6 = 1 then b_9
goto main
segundo:if pin3 = 1 and pin5 = 1 then b_0a
if pin0 = 1 and pin4 = 1 then b_1a
if pin0 = 1 and pin5 = 1 then b_2a
if pin0 = 1 and pin6 = 1 then b_3a
if pin1 = 1 and pin4 = 1 then b_4a
if pin1 = 1 and pin5 = 1 then b_5a
if pin1 = 1 and pin6 = 1 then b_6a
if pin2 = 1 and pin4 = 1 then b_7a
if pin2 = 1 and pin5 = 1 then b_8a
if pin2 = 1 and pin6 = 1 then b_9a
goto segundo
terceiro:if pin3 = 1 and pin5 = 1 then b_0aa
if pin0 = 1 and pin4 = 1 then b_1aa
if pin0 = 1 and pin5 = 1 then b_2aa
if pin0 = 1 and pin6 = 1 then b_3aa
if pin1 = 1 and pin4 = 1 then b_4aa
if pin1 = 1 and pin5 = 1 then b_5aa
if pin1 = 1 and pin6 = 1 then b_6aa
if pin2 = 1 and pin4 = 1 then b_7aa
if pin2 = 1 and pin5 = 1 then b_8aa
if pin2 = 1 and pin6 = 1 then b_9aa
goto terceiro
quarto:if pin3 = 1 and pin5 = 1 then b_0aaa
if pin0 = 1 and pin4 = 1 then b_1aaa
if pin0 = 1 and pin5 = 1 then b_2aaa
if pin0 = 1 and pin6 = 1 then b_3aaa
if pin1 = 1 and pin4 = 1 then b_4aaa
if pin1 = 1 and pin5 = 1 then b_5aaa
if pin1 = 1 and pin6 = 1 then b_6aaa
if pin2 = 1 and pin4 = 1 then b_7aaa
if pin2 = 1 and pin5 = 1 then b_8aaa
if pin2 = 1 and pin6 = 1 then b_9aaa
goto quarto
b_0: b1 = %00000000
b0 = b0 + 1
goto main
b_1: b1 = %00000001
b0 = b0 + 1
goto main
b_2: b1 = %00000010
b0 = b0 + 1
goto main
b_3: b1 = %00000011
b0 = b0 + 1
goto main
b_4: b1 = %00000100
b0 = b0 + 1
goto main
b_5: b1 = %00000101
b0 = b0 + 1
goto main
b_6: b1 = %00000110
b0 = b0 + 1
goto main
b_7: b1 = %00000111
b0 = b0 + 1
goto main
b_8: b1 = %00001000
b0 = b0 + 1
goto main
b_9: b1 = %00001001
b0 = b0 + 1
goto main
b_0a: b2 = %00000000
b0 = b0 + 1
goto main
b_1a: b2 = %00000001
b0 = b0 + 1
goto main
b_2a: b2 = %00000010
b0 = b0 + 1
goto main
b_3a: b2 = %00000011
b0 = b0 + 1
goto main
b_4a: b2 = %00000100
b0 = b0 + 1
goto main
b_5a: b2 = %00000101
b0 = b0 + 1
goto main
b_6a: b2 = %00000110
b0 = b0 + 1
goto main
b_7a: b2 = %00000111
b0 = b0 + 1
goto main
b_8a: b2 = %00001000
b0 = b0 + 1
goto main
b_9a: b2 = %00001001
b0 = b0 + 1
goto main
b_0aa: b3 = %00000000
b0 = b0 + 1
goto main
b_1aa: b3 = %00000001
b0 = b0 + 1
goto main
b_2aa: b3 = %00000010
b0 = b0 + 1
goto main
b_3aa: b3 = %00000011
b0 = b0 + 1
goto main
b_4aa: b3 = %00000100
b0 = b0 + 1
goto main
b_5aa: b3 = %00000101
b0 = b0 + 1
goto main
b_6aa: b3 = %00000110
b0 = b0 + 1
goto main
b_7aa: b3 = %00000111
b0 = b0 + 1
goto main
b_8aa: b3 = %00001000
b0 = b0 + 1
goto main
b_9aa: b3 = %00001001
b0 = b0 + 1
goto main
b_0aaa: b4 = %00000000
b0 = b0 + 1
goto okb
b_1aaa: b4 = %00000001
b0 = b0 + 1
goto okb
b_2aaa: b4 = %00000010
b0 = b0 + 1
goto okb
b_3aaa: b4 = %00000011
b0 = b0 + 1
goto okb
b_4aaa: b4 = %00000100
b0 = b0 + 1
goto okb
b_5aaa: b4 = %00000101
b0 = b0 + 1
goto okb
b_6aaa: b4 = %00000110
b0 = b0 + 1
goto okb
b_7aaa: b4 = %00000111
b0 = b0 + 1
goto okb
b_8aaa: b4 = %00001000
b0 = b0 + 1
goto okb
b_9aaa: b4 = %00001001
b0 = b0 + 1
goto okb
novo: b10 = 0
if b14 = 0 then primeiron
if b14 = 1 then segundon
if b14 = 2 then terceiron
if b14 = 3 then quarton
goto novo
primeiron:if pin3 = 1 and pin5 = 1 then a0b
if pin0 = 1 and pin4 = 1 then a1b
if pin0 = 1 and pin5 = 1 then a2b
if pin0 = 1 and pin6 = 1 then a3b
if pin1 = 1 and pin4 = 1 then a4b
if pin1 = 1 and pin5 = 1 then a5b
if pin1 = 1 and pin6 = 1 then a6b
if pin2 = 1 and pin4 = 1 then a7b
if pin2 = 1 and pin5 = 1 then a8b
if pin2 = 1 and pin6 = 1 then a9b
goto primeiro_
segundon:if pin3 = 1 and pin5 = 1 then a0ab
if pin0 = 1 and pin4 = 1 then a1ab
if pin0 = 1 and pin5 = 1 then a2ab
if pin0 = 1 and pin6 = 1 then a3ab
if pin1 = 1 and pin4 = 1 then a4ab
if pin1 = 1 and pin5 = 1 then a5ab
if pin1 = 1 and pin6 = 1 then a6ab
if pin2 = 1 and pin4 = 1 then a7ab
if pin2 = 1 and pin5 = 1 then a8ab
if pin2 = 1 and pin6 = 1 then a9ab
goto segundo_
terceiron:if pin3 = 1 and pin5 = 1 then a0aab
if pin0 = 1 and pin4 = 1 then a1aab
if pin0 = 1 and pin5 = 1 then a2aab
if pin0 = 1 and pin6 = 1 then a3aab
if pin1 = 1 and pin4 = 1 then a4aab
if pin1 = 1 and pin5 = 1 then a5aab
if pin1 = 1 and pin6 = 1 then a6aab
if pin2 = 1 and pin4 = 1 then a7aab
if pin2 = 1 and pin5 = 1 then a8aab
if pin2 = 1 and pin6 = 1 then a9aab
goto terceiro_
quarton:if pin3 = 1 and pin5 = 1 then a0aaab
if pin0 = 1 and pin4 = 1 then a1aaab
if pin0 = 1 and pin5 = 1 then a2aaab
if pin0 = 1 and pin6 = 1 then a3aaab
if pin1 = 1 and pin4 = 1 then a4aaab
if pin1 = 1 and pin5 = 1 then a5aaab
if pin1 = 1 and pin6 = 1 then a6aaab
if pin2 = 1 and pin4 = 1 then a7aaab
if pin2 = 1 and pin5 = 1 then a8aaab
if pin2 = 1 and pin6 = 1 then a9aaab
goto quarto_
a0b: b1 = %00000000
b14 = b14 + 1
goto novo
a1b: b1 = %00000001
b14 = b14 + 1
goto novo
a2b: b1 = %00000010
b14 = b14 + 1
goto novo
a3b: b1 = %00000011
b14 = b14 + 1
goto novo
a4b: b1 = %00000100
b14 = b14 + 1
goto novo
a5b: b1 = %00000101
b14 = b14 + 1
goto novo
a6b: b1 = %00000110
b14 = b14 + 1
goto novo
a7b: b1 = %00000111
b14 = b14 + 1
goto novo
a8b: b1 = %00001000
b14 = b14 + 1
goto novob
a9b: b1 = %00001001
b14 = b14 + 1
goto novo
a0ab: b2 = %00000000
b14 = b14 + 1
goto novo
a1ab: b2 = %00000001
b14 = b14 + 1
goto novo
a2ab: b2 = %00000010
b14 = b14 + 1
goto novo
a3ab: b2 = %00000011
b14 = b14 + 1
goto novo
a4ab: b2 = %00000100
b14 = b14 + 1
goto novo
a5ab: b2 = %00000101
b14 = b14 + 1
goto novo
a6ab: b2 = %00000110
b14 = b14 + 1
goto novo
a7ab: b2 = %00000111
b14 = b14 + 1
goto novo
a8ab: b2 = %00001000
b14 = b14 + 1
goto novo
a9ab: b2 = %00001001
b14 = b14 + 1
goto novo
a0aab: b3 = %00000000
b14 = b14 + 1
goto novo
a1aab: b3 = %00000001
b14 = b14 + 1
goto novo
a2aab: b3 = %00000010
b14 = b14 + 1
goto novo
a3aab: b3 = %00000011
b14 = b14 + 1
goto novo
a4aab: b3 = %00000100
b14 = b14 + 1
goto novo
a5aab: b3 = %00000101
b14 = b14 + 1
goto novo
a6aab: b3 = %00000110
b14 = b14 + 1
goto novo
a7aab: b3 = %00000111
b14 = b14 + 1
goto novo
a8aab: b3 = %00001000
b14 = b14 + 1
goto novo
a9aab: b3 = %00001001
b14 = b14 + 1
goto novo
a0aaab: b4 = %00000000
b14 = b14 + 1
goto okcn
a1aaab: b4 = %00000001
b14 = b14 + 1
goto okcn
a2aaab: b4 = %00000010
b14 = b14 + 1
goto okcn
a3aaab: b4 = %00000011
b14 = b14 + 1
goto okcn
a4aaab: b4 = %00000100
b14 = b14 + 1
goto okcn
a5aaab: b4 = %00000101
b14 = b14 + 1
goto okcn
a6aaab: b4 = %00000110
b14 = b14 + 1
goto okcn
a7aaab: b4 = %00000111
b14 = b14 + 1
goto okcn
a8aaab: b4 = %00001000
b14 = b14 + 1
goto okcn
a9aaab: b4 = %00001001
b14 = b14 + 1
goto okcn
novob:if b10 = 0 then primeiro_
if b10 = 1 then segundo_
if b10 = 2 then terceiro_
if b10 = 3 then quarto_
goto main
primeiro_:if pin3 = 1 and pin5 = 1 then a0
if pin0 = 1 and pin4 = 1 then a1
if pin0 = 1 and pin5 = 1 then a2
if pin0 = 1 and pin6 = 1 then a3
if pin1 = 1 and pin4 = 1 then a4
if pin1 = 1 and pin5 = 1 then a5
if pin1 = 1 and pin6 = 1 then a6
if pin2 = 1 and pin4 = 1 then a7
if pin2 = 1 and pin5 = 1 then a8
if pin2 = 1 and pin6 = 1 then a9
goto primeiro_
segundo_:if pin3 = 1 and pin5 = 1 then a0a
if pin0 = 1 and pin4 = 1 then a1a
if pin0 = 1 and pin5 = 1 then a2a
if pin0 = 1 and pin6 = 1 then a3a
if pin1 = 1 and pin4 = 1 then a4a
if pin1 = 1 and pin5 = 1 then a5a
if pin1 = 1 and pin6 = 1 then a6a
if pin2 = 1 and pin4 = 1 then a7a
if pin2 = 1 and pin5 = 1 then a8a
if pin2 = 1 and pin6 = 1 then a9a
goto segundo_
terceiro_:if pin3 = 1 and pin5 = 1 then a0aa
if pin0 = 1 and pin4 = 1 then a1aa
if pin0 = 1 and pin5 = 1 then a2aa
if pin0 = 1 and pin6 = 1 then a3aa
if pin1 = 1 and pin4 = 1 then a4aa
if pin1 = 1 and pin5 = 1 then a5aa
if pin1 = 1 and pin6 = 1 then a6aa
if pin2 = 1 and pin4 = 1 then a7aa
if pin2 = 1 and pin5 = 1 then a8aa
if pin2 = 1 and pin6 = 1 then a9aa
goto terceiro_
quarto_:if pin3 = 1 and pin5 = 1 then a0aaa
if pin0 = 1 and pin4 = 1 then a1aaa
if pin0 = 1 and pin5 = 1 then a2aaa
if pin0 = 1 and pin6 = 1 then a3aaa
if pin1 = 1 and pin4 = 1 then a4aaa
if pin1 = 1 and pin5 = 1 then a5aaa
if pin1 = 1 and pin6 = 1 then a6aaa
if pin2 = 1 and pin4 = 1 then a7aaa
if pin2 = 1 and pin5 = 1 then a8aaa
if pin2 = 1 and pin6 = 1 then a9aaa
goto quarto_
a0: b5 = %00000000
b10 = b10 + 1
goto novob
a1: b5 = %00000001
b10 = b10 + 1
goto novob
a2: b5 = %00000010
b10 = b10 + 1
goto novob
a3: b5 = %00000011
b10 = b10 + 1
goto novob
a4: b5 = %00000100
b10 = b10 + 1
goto novob
a5: b5 = %00000101
b10 = b10 + 1
goto novob
a6: b5 = %00000110
b10 = b10 + 1
goto novob
a7: b5 = %00000111
b10 = b10 + 1
goto novob
a8: b5 = %00001000
b10 = b10 + 1
goto novob
a9: b5 = %00001001
b10 = b10 + 1
goto novob
a0a: b6 = %00000000
b10 = b10 + 1
goto novob
a1a: b6 = %00000001
b10 = b10 + 1
goto novob
a2a: b6 = %00000010
b10 = b10 + 1
goto novob
a3a: b6 = %00000011
b10 = b10 + 1
goto novob
a4a: b6 = %00000100
b10 = b10 + 1
goto novob
a5a: b6 = %00000101
b10 = b10 + 1
goto novob
a6a: b6 = %00000110
b10 = b10 + 1
goto novob
a7a: b6 = %00000111
b10 = b10 + 1
goto novob
a8a: b6 = %00001000
b10 = b10 + 1
goto novob
a9a: b6 = %00001001
b10 = b10 + 1
goto novob
a0aa: b7 = %00000000
b10 = b10 + 1
goto novob
a1aa: b7 = %00000001
b10 = b10 + 1
goto novob
a2aa: b7 = %00000010
b10 = b10 + 1
goto novob
a3aa: b7 = %00000011
b10 = b10 + 1
goto novob
a4aa: b7 = %00000100
b10 = b10 + 1
goto novob
a5aa: b7 = %00000101
b10 = b10 + 1
goto novob
a6aa: b7 = %00000110
b10 = b10 + 1
goto novob
a7aa: b7 = %00000111
b10 = b10 + 1
goto novob
a8aa: b7 = %00001000
b10 = b10 + 1
goto novob
a9aa: b7 = %00001001
b10 = b10 + 1
goto novob
a0aaa: b8 = %00000000
b10 = b10 + 1
goto okcn
a1aaa: b8 = %00000001
b10 = b10 + 1
goto okcn
a2aaa: b8 = %00000010
b10 = b10 + 1
goto okcn
a3aaa: b8 = %00000011
b10 = b10 + 1
goto okcn
a4aaa: b8 = %00000100
b10 = b10 + 1
goto okcn
a5aaa: b8 = %00000101
b10 = b10 + 1
goto okcn
a6aaa: b8 = %00000110
b10 = b10 + 1
goto okcn
a7aaa: b8 = %00000111
b10 = b10 + 1
goto okcn
a8aaa: b8 = %00001000
b10 = b10 + 1
goto okcn
a9aaa: b8 = %00001001
b10 = b10 + 1
goto okcn
ok:if b1 = b5 then ok2
goto erro
ok2:if b2 = b6 then ok3
goto erro
ok3:if b3 = b7 then ok4
goto erro
ok4:if b4 = b8 then abrir
goto erro
abrir:let pins = %10000000
pause 1000
let pins = %00000000
goto limparb
erro:if b9 = 0 then limpar
if b9 = 1 then limpar
if b9 = 2 then alarme
alarme:let pins = %01000111
pause 4000
let pins = %00000111
goto limpar
limpar:b1 = %00000000
b2 = %00000000
b3 = %00000000
b4 = %00000000
b0 = 0
b9 = b9 + 1
goto kerro
kerro:if b9 = 1 then s1
if b9 = 2 then s2
if b9 = 3 then s3
s1:let pins = %00000001
goto main
s2:let pins = %00000011
goto main
s3:let pins = %00000111
goto bloq
okb:if pin3 = 1 and pin6 = 1 then ok
goto okb
bloq:if pin3 = 1 and pin4 = 1 then novo1
goto bloq
novo1:pause 4000
if pin3 = 1 and pin4 = 1 then novo2
goto novo1
novo2:pause 4000
if pin3 = 1 and pin4 = 1 then desblq
goto novo2
desblq:b9 = 0
let pins = %01000000
let pins = %00000000
goto main
okc:if pin3 = 1 and pin6 = 1 then main
goto okc
limparb:b1 = %00000000
b2 = %00000000
b3 = %00000000
b4 = %00000000
b0 = 0
b9 = 0
b14 = 0
goto main
okcn:if b1 = b5 then ok2cn
goto limparb
ok2cn:if b2 = b6 then ok3cn
goto limparb
ok3cn:if b3 = b7 then ok4cn
goto limparb
ok4cn:if b4 = b8 then novob
goto limparb
-
boas, antes demais, as tuas ligações não irão funcionar nem que rezes, isto porque se no programa tens de ter as entradas a para que dê algum sinal e na tua ideia ter resistências ligadas a massa para dar os 0v n te serve de nada se n tiveres algo que de 1 nas entradas ve por este esquema, pode ser que te safes.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg210.imageshack.us%2Fimg210%2F4207%2Ftecladoligaopicaxe.jpg&hash=c3c9902578619e30f3201ab5a3666b63c3c3ac5c)
os Opto são os 4n35, eu usei este para o alarme da minha pap, mas não te posso facultar o código...
cump
-
Conseguem descortinar alguma coisa, no meio de tanta palha?
nem um comentário tem....
-
Conseguem descortinar alguma coisa, no meio de tanta palha?
nem um comentário tem....
olha para te dizer a verdade nem percebi o código dele, mas pôs um esquema para ele saber mais ou menos o que fazer
-
Para quem não percebe muito de basic essa grande parede de código sem coments é um pesadelo... ::)
Dizes que funcionava num teclado e agora com este não, mas que modificaste o código para dar, quase decerteza o que difere de um teclado para o outro é a posição dos pinos que correspondem às colunas e linhas, tens datasheet do teclado? se não pega no multímetro e começa a carregar em botões até descobrires se é igual ou não, ou então muda para o outro teclado, visto ser urgente.
-
Boas johnny_08, o teu programa esta abusivamente repetido...
com o picaxe estou completamente a vontade, so ainda não percebi bem o que pretendes (confesso que também não li tudo...
a questão que meto para numa tentativa te ajudar era se podias postar o teu esquema (pelo menos como estão as entradas e saídas) para pelos eliminar a hipótese de erro nas ligações e se possível uma "lista" de passos que pretendes, do género:
-primeiro passo cobre aberto, código inserido quando fecha;
-para abrir 3 tentativas, se atingido o limite por exemplo não permite nova tentativa durante os próximos 5 min.;
-o código de abertura será sempre o mesmo quando o cofre fechado;
-etc
outra questão que meto é quando é que tens de entregar o projecto?!