Estou com dificuldades com para gerar uma uma função:

Preciso montar uma função de código de entrada.

 

Exemplo:

 

Meu hardware tera um contador de efeito hall, e através dele, programado em 5000 mil pulsos.

 

quanto atingir os pulso ele vai indicar no lcd para inserir o codigo de liberação.

 

Bom como será os mesmas pessoas, quando eu fornecer o novo codigo ele digita e faz a liberação e memorize o codigo digitado permitindo digitar a sequencia uma unica vez.

 

É semelhante aos cartões de recarga de celular, quando vc raspa o cartão tem uma sequencia que libera os credito no celuar.

 

Bom pensei algo como um código fixo de 8 digitos. (numerico)

 

e gerar uma função matematica que faça calculo de combinações que o resultado da código fixo.

 

ou seja uma combinação de numeros aleatórios, quando lançados no arduino ele faz os calculos e compara com o codigo fixo, se a matematica realizada for igual ao codigo fixo libera o funcionamento.

 

Galera, tenho noção do funcionamento, mas não tenho ideia de como fazer isso no arduino.

 

agradeço a ajuda dos garagista.

 

Abraços

 

Luis

hluisp@yahoo.com.br

 

 

Exibições: 4366

Responder esta

Respostas a este tópico

Caro Luis Henrique,

uma forma de fazer isso é você usar a função RAND(), RND() etc, se é que tem essa função no compilador do arduíno. Uma outra maneira é você digitalizar uma tabela de números pseudo-aleatórios no comprimento que for necessário e utilizar o relógio do sistema para servir de índice nessa tabela. Você captura os segundos ou até os décimos, dependendo do que você precisa e usa isso como índice. Há inúmeras outras maneiras de fazer isso... Certamente os nossos colegas do forum poderão apontar mais algumas bem criativas.

Abraço.

Henrique

consulte sempre um engenheiro eletrônico

Não existe "compilador do arduino". O compilador é o mesmo GCC para microcontroladores AVR.

Para números randômicos use:

mais em: http://arduino.cc/en/Reference/HomePage

Se entendi vc precisa que 2 dispositivos saibam essa senha sem estar conectados, como nos Tokens de banco ???

Se for isso acho que só com tabela mesmo...

As funções padrão RAND() dão um trabalhão para quem as faz justamente para não dar os mesmos números se vc rodar 2 vezes o programa. Antigamente se usava um RANDOMIZE() antes, mas não é confiável que vai gerar sempre a mesma sequencia.

Uma seria seus 8 digitos serem como uma senha de 4 e uma contrasenha de mais 4.

Digo assim: O kra digita 8 digitos.

Vc faz a conta:

Digito1+Digito2*3+digito3*7+Digito4*3... Ou qualquer regra simples mas unica.

Da resposta disso isola só os ultimos 4 digitos. 

Ve se bateu com os 4 que o kra digitou.

Essas chaves de programas que são alfanuméricas e a checagem é feita offline são feitas, em geral, assim. Parte que vc digita alimenta uma conta que gera internamente a outra parte. Aih ele confere se o digitado e´igual ao calculado.

Pra complicar por ex os digitos pares são perguntas e os impares são respostas. Ou sei lá, uma regra qualquer que de certo.

Com 8 digitos pode ser um metodo fraco. Mas se vc colocar uns 10 já fica mais interessante.

Sim. Voce pode fazer como um algoritmo de CPF, por exemplo.

Quando um CPF é atribuido a voce, o sistema gera um numero "randomico" que vai ser o seu CPF.

Mas existe um algoritmo pra validar esse numero, é uma série de contas que são feitas com os digitos, que no final, se der tal resultado, é válido.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço