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

Título: cofre digital URGENTE!
Enviado 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
Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 16:30
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
 





Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 16:32
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
Título: Re: cofre digital URGENTE!
Enviado por: senso em 14 de Dezembro de 2010, 16:33
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?
Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 16:38
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
Título: Re: cofre digital URGENTE!
Enviado por: senso em 14 de Dezembro de 2010, 16:45
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.
Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 16:49
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
Título: Re: cofre digital URGENTE!
Enviado por: senso em 14 de Dezembro de 2010, 16:50
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.
Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 16:51
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
Título: Re: cofre digital URGENTE!
Enviado por: senso em 14 de Dezembro de 2010, 16:56
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.
Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 16:59
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
Título: Re: cofre digital URGENTE!
Enviado por: senso em 14 de Dezembro de 2010, 17:00
Consulta o datasheet de cada um dos teclados, e faz as devidas modificações.
Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 17:11
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/)
Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 17:17
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/)

Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 17:28
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
Título: Re: cofre digital URGENTE!
Enviado por: senso em 14 de Dezembro de 2010, 17:51
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.
Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 18:00
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!
Título: Re: cofre digital URGENTE!
Enviado por: johnny__08 em 14 de Dezembro de 2010, 18:00
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
Título: Re: cofre digital URGENTE!
Enviado por: andre_f_carvalho em 14 de Dezembro de 2010, 21:42
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
Título: Re: cofre digital URGENTE!
Enviado por: Sérgio_Sena em 15 de Dezembro de 2010, 18:20
Conseguem descortinar alguma coisa, no meio de tanta palha?

nem um comentário tem....
Título: Re: cofre digital URGENTE!
Enviado por: andre_f_carvalho em 15 de Dezembro de 2010, 18:25
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
Título: Re: cofre digital URGENTE!
Enviado por: amando96 em 15 de Dezembro de 2010, 18:58
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.
Título: Re: cofre digital URGENTE!
Enviado por: fre_deri_co em 15 de Dezembro de 2010, 23:14
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?!