Boa noite galerinha, no ano passado eu pedi uma ajuda para corrigir um pequeno erro que tinha no código de uma bobinadeira, graças ao mestre Rui RV, a maquina está funcionando perfeitamente, agora estou fazendo uma modificação, troquei os botões de programação por um teclado matricial, (volto a dizer que sou muito fraco em programação) a maioria das funções já estão funcionando, falta a principal função, o numero de espiras,
ex. quando digito 158 espiras, só retorna 8 e não 128 como foi digitado, ou seja, qualquer valor que é digitado só retorna o ultimo digito,
veja abaixo a parte do código;
else if (key != NO_KEY) {
lcd.leftToRight();
numEsp = key - 48;
lcd.print(numEsp);
delay(500);
}
segue a baixo uma sguencia de fotos
está entregue nas mãos das feras, rsrs
Tags:
da minha parte eu não tenho a minima ideia de como fazer essa implementação, kkkkk
eu tbm teria muita dificuldade, mas acho que ficaria bem interessante,
https://www.youtube.com/watch?v=62YKyw7u2rA&ab_channel=electroH... aqui ele dar detalhes, inclusive o codigo, mas ta em francês e sem legenda
me passa a ultima versão do codigo,
ai está a ultima versão do código
eu não entendi bem essa linha do código :
ciclos = espFase * bitFio * 360 / (1 * 0.703125 * 1 * 3.14159 * 5) * 1.8 * (1 + dciclos / 100) / 0.585;
esse "ciclos" são os pulsos por espira? acho que essa formula é pra um sistema de movimento com correia ou cremalheira, pq ele considera o diâmetro da engrenagem que vai no motor, acho que sabendo o números de pulsos/mm da guia do fio eu multiplico esse valor pela bitola do fio (bitfio), e esse fator de correção de passo (dciclos) deve ser pra acresentar uma folga entre as espiras.
amanhã vou tentar alterar codigo e envio pro sr testar.
AFL, ele usou o port 10 para entrada do encoder,
então muda de 10 para 2 e dê um shift em todos ports do tecado
Configuração atual:
#define encoder 10 // Entrada do encoder do motor principal
byte rowPins[ROWS] = { 2, 3, 4, 5 };
byte colPins[COLS] = { 6, 7, 8, 9 };
Configuração sugerida:
#define encoder 2 // Entrada do encoder do motor principal
byte rowPins[ROWS] = { 3, 4, 5, 6 };
byte colPins[COLS] = { 7, 8, 9, 10 };
Assim poderá usar o interrrupt 0 (port 2).
RV mineirin
Bom dia JMC,
anexa um arquivo como código atual, para que eu possa analisar a causa do erro.
RV
ai está os arquivos bobinadeira_T_13.ino funcoes13.ino
JMC,
Abra o arquivo funcoes13.ino
Acrescente uma linha nova após a linha 79.
E nela escreva. minhaStr ="";
RV
RV
Funcionou, fiz o mesmo procedimento para a bitola do fio e a largura do carretel, criei ima variavel do tipo String para cada, porem, a bitola do fio tem que aceitar decimal, preciso entrar com valores tipo 0.32 ou 0.85 ou 1,25 esse é o código.
else if((key >= '0' ) and (key <= '9')){
meuFio += key;
bitFio = meuFio.toInt();
lcd.print(key);
}
Bom dia RV, graças as dicas que vc me passou essas etapas de numero de espiras, bitola do fio com decimal e largura do carretel já estão funcionando perfeitamente, para finaliza, só falta uma etapa, no primeiro menu, onde faz o ajuste da guia, são usadas as teclas 2, 4, 6, e 8 para fazer esse ajuste, as teclas estão funcionando, porem com ação momentenea, mesmo que a teclas permaneça precionada, eunpreciso que as teclas permaneção ativadas enquanto estiverem precionadas, até a guia chegar no pomto desejado, será que é possivel fazer isso?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por