Boa tarde,
estou fazendo um codigo que lê um numero decimal (negativo ou positivo) na serial e então movimenta motores de passo em função do numero.
Exemplo:
-------
Serial recebe 30.25
motor anda 30.25...
----------
Porém descobri que o Arduíno não armazena o numero recebido como inteiro, e estive pesquisando sobre como converter usando essa função Atoi, só que ainda não consegui fazer funcionar, alguem pode me explicar como faço para usa-la?
Ps* nesse caso, acredito que tenho que usar o float para armazenar o numero, pois tem casas decimais, correto?
Tags:
Boa noite CA,
este valor "30.25" é guardado em uma variável tipo string?
Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
com o seu sketch.
RV
CA,
testa este sketch e veja se te ajuda.
RV
Este programa me ajudou bastante, veja que coloquei na função obtem_valor(), porem quando eu envio um valor negativo, ele retorna um valor estranho(42949676.00), preciso que isso funcione tambem com os valores negativos...
Bom dia CA,
mude esta linha "unsigned long numero;" para "long numero;" e teste com numero negativo.
RV
Bom dia amigo,
muito obrigado pela ajuda, funcionou perfeitamente... encontrei um outro problema aq, veja se pode me audar por favor, na função velocidades() funciona tudo certo, faz o mapeamento do potenciometro, tudo beleza, mas esta com algum problema na equação "feed_rate = (map_leitura / 100) * vel_codigo;" quando o valor do potenciometro é menor que 100 ele zera o feed_rate...
Bom dia CA.
Nào entendi sua dificuldade.
Veja o resultado do meu teste usando seu sketch.
RV
valor: 1000.00
pot: 77
vel_codigo: 1000
map_leitura: 14
feed_rate: 14000
valor: 1000.00
pot: 68
vel_codigo: 1000
map_leitura: 13
feed_rate: 13000
valor: 1000.00
pot: 51
vel_codigo: 1000
map_leitura: 9
feed_rate: 9000
valor: 1000.00
pot: 35
vel_codigo: 1000
map_leitura: 6
feed_rate: 6000
Olá Caio,
Varias pessoas estão acompanhado o seu tópico, como sempre com a ajuda inestimável colega garagista Rui Viana conseguiu resolver.
Note, você deveria dizer onde encontrou o erro e como resolveu, não apenas dizer já resolvi aqui, lembre-se, este é um fórum onde todos compartilhamos conhecimento, esse é o verdadeiro espirito do mesmo, então por favor, diga que variável estava mal declarada, e como resolveu.
Depois disso, se quiser contribuir com o forum assim como você recebeu contribuição, edite o nome do seu tópico atual e escreva antes dele a palavra RESOLVIDO isso facilitara a busca para outros garagistas como você com problemas similares.
Obrigado.
Abs,
CK
Ok Carlos, desculpe,
eram duas variáveis que estavam declaradas como int se não me engano (map_leitura e vel_codigo) oque fiz foi declarar como float e ficou tudo resolvido...
Não a porque se desculpar Caio, obrigado por entender e colaborar.
Abs.
CK
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por