Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03
Este guia descreverá como usei um Arduino UNO R3, uma tela LCD 16x2 com I2C e uma faixa de LED para ser usada como um medidor de velocidade do motor e luz de mudança em meu carro de corrida Acura Integra. Ele foi escrito em termos de alguém com alguma experiência ou exposição ao software Arduino ou à codificação em geral, o software matemático MATLAB, e à criação ou modificação de circuitos elétricos. No futuro, isso pode ser revisado para ser mais fácil de entender para alguém com pouca ou nenhuma experiência com esses tópicos.
Etapa 1: Escolha um fio Sigal
Você precisará obter um sinal que corresponda à velocidade do motor. É possível adicionar um sistema que mede a velocidade do motor, mas é muito mais prático conectar-se a um fio existente que transporta informações sobre a velocidade do motor. Um único carro pode ter várias fontes para isso, e pode variar muito até mesmo ano a ano em um único modelo de veículo. Para o propósito deste tutorial, usarei o exemplo do meu carro, uma pista modificada 2000 Acura Integra LS. Descobri no meu motor (B18B1 com OBD2) que há uma saída de tensão não utilizada que é de 12 V de altura e cai para 0 V ao completar uma volta completa.
Coisas que ajudarão a identificar um sinal potencial de velocidade do motor:
- Diagrama de fiação para seu veículo
- Pesquisando fóruns para seu veículo envolvendo sinais de motor / ECU
- Um mecânico amigável ou entusiasta de carros
Etapa 2: estender o fio para a placa Arduino
Depois de escolher um sinal adequado, você precisará estendê-lo para onde quer que esteja colocando sua placa Arduino. Decidi colocar o meu dentro do veículo onde o rádio costumava ficar, então direcionei o novo fio do motor, através de um anel de borracha na parede de fogo, e direto para a área do rádio. Como já existe uma grande quantidade de guias de instruções sobre como descascar, soldar e proteger a fiação, não explicarei esse processo.
Etapa 3: Análise de Sinal
É aqui que as coisas podem ficar complicadas. Ter uma compreensão geral da análise e dos controles de sinal o ajudará muito, mas é possível com pouco conhecimento.
O fio de sinal escolhido provavelmente não emitirá o valor exato da rotação do motor. Ele precisará ser moldado e modificado para fornecer o número exato de RPMs do motor que você deseja. Devido ao fato de que cada carro diferente e fio de sinal escolhido podem ser diferentes, a partir deste ponto irei explicar como usei o sinal de posição do distribuidor no meu Integra.
Meu sinal é normalmente de 12 V e cai para 0 V ao completar uma rotação completa. Se você souber o tempo para completar uma rotação completa ou um ciclo completo, isso pode ser facilmente traduzido em rotações / min usando alguns conceitos básicos.
1 / (segundos por ciclo) = ciclos por segundo, ou Hz
Revoluções por minuto = Hz * 60
Etapa 4: codifique sua análise de sinal
Este método requer obter o tempo que leva para o sinal de entrada completar um ciclo completo. Felizmente, o software Arduino IDE tem um comando que faz exatamente isso, PulseIn.
Este comando irá esperar por um sinal para cruzar um limite, começar a contar e parar a contagem quando o limite for cruzado novamente. Existem alguns detalhes que devem ser observados ao usar o comando, então incluirei um link para informações do PulseIn aqui:
PulseIn retornará um valor em microssegundos e, para manter a matemática simples, isso deve ser convertido imediatamente em segundos normais. Seguindo a matemática da etapa anterior, essa duração de tempo pode ser equacionada diretamente em RPM.
Observação: após tentativa e erro, descobri que o distribuidor completa duas rotações para cada rotação do virabrequim do motor, então simplesmente dividi minha resposta por 2 para explicar isso.
Etapa 5: identificar um filtro
Se você tiver sorte, seu sinal não terá "ruído" (flutuações) e a velocidade do motor será exata. No meu caso, havia muito ruído vindo da distribuidora que muitas vezes dava tensões bem longe do esperado. Isso se transforma em leituras muito falsas da rotação real do motor. Esse ruído precisará ser filtrado.
Depois de alguma análise de sinal, quase todo o ruído veio em frequências (Hz) muito mais altas do que o motor em si estava produzindo (o que é verdade para a maioria dos sistemas dinâmicos reais). Isso significa que um filtro passa-baixa é o candidato ideal para cuidar disso.
Um filtro passa-baixo permite que as frequências baixas (desejadas) passem e atenua as frequências altas (indesejadas).
Etapa 6: Filtragem: Parte 1
O design do filtro pode ser feito manualmente, no entanto, o uso do MATLAB irá acelerar significativamente se você tiver acesso ao software.
Um filtro passa-baixo pode ser equiparado a uma função de transferência (ou fração) no domínio de Laplace (domínio da frequência). A frequência de entrada será multiplicada por esta fração e a saída é um sinal filtrado que contém apenas as informações que você deseja usar.
A única variável na função é tau. Tau é igual a 1 / Omega, onde Omega é a frequência de corte desejada (deve ser em radianos por segundo). A frequência de corte é o limite onde as frequências mais altas do que ela serão removidas e as frequências mais baixas do que serão mantidas.
Eu defino a frequência de corte igual a um RPM que meu motor nunca alcançará (990 RPM ou 165 Hz). Os gráficos FFT mostram aproximadamente quais frequências meu sinal bruto carregava e as frequências que saíam do filtro.
Etapa 7: Filtragem: Parte 2
Aqui, o MATLAB foi utilizado novamente por uma questão de tempo. A frequência de corte é definida e, a partir dela, a função de transferência resultante é exibida. Lembre-se de que essa fração se aplica apenas ao domínio Laplace e não pode ser usada diretamente em um microcontrolador baseado em tempo como o Arduino UNO R3.
Etapa 8: Filtragem: Parte 3
O MATLAB possui um comando que irá converter uma função contínua (domínio da frequência) em uma função discreta (domínio do tempo). A saída desse comando fornecerá uma equação que pode ser facilmente incorporada ao código IDE do Arduino.
Etapa 9: Filtragem: Parte 4
No esboço do Arduino, inclua as variáveis uey antes da configuração. O comando float simplesmente define como a variável armazenará os dados (coisas como valor máximo, decimais, etc …) e um link para mais informações sobre isso será fornecido aqui: https://www.arduino.cc/reference/en/language / varia…
No loop onde a conversão do sinal bruto em velocidade do motor está ocorrendo, inclua a variável uea equação múltipla y. Existem várias maneiras de empregar isso, mas a variável u deve ser definida igual ao sinal de entrada bruto que está sendo medido, e a variável y será o valor filtrado.
Recomendado:
Programando um Arduino usando outro Arduino para exibir um texto de rolagem sem uma biblioteca: 5 etapas
Programando um Arduino usando outro Arduino para exibir um texto em rolagem sem uma biblioteca: Sony Spresense ou Arduino Uno não são tão caros e não requerem muita energia. No entanto, se o seu projeto tem limitação de energia, espaço ou até mesmo orçamento, você pode querer considerar o uso do Arduino Pro Mini. Ao contrário do Arduino Pro Micro, Arduino Pro Mi
Use um motor de transmissão CC de esteira e controlador de velocidade PWM para ferramentas de alimentação: 13 etapas (com imagens)
Use um motor de acionamento CC de esteira e controlador de velocidade PWM para ferramentas de alimentação: ferramentas elétricas, como fresas e tornos de corte de metal, furadeiras, serras de fita, lixadeiras e muito mais podem exigir. 5 Motores HP a 2HP com a capacidade de ajustar a velocidade enquanto mantém o torque .Coincidentalmente, a maioria das esteiras usa um motor de 80-260 VCC com
Exibir leituras do sensor Arduino ao vivo em um LCD Nokia 5110: 4 etapas (com imagens)
Exibir leituras do sensor Arduino ao vivo em um LCD Nokia 5110: Se você já trabalhou com o arduino, provavelmente queria que ele exibisse leituras do sensor. Usar o monitor serial é perfeitamente normal, mas sendo o arduino durão que você está rapidamente se tornando, você provavelmente deseja que ele exiba as leituras em algo mais
Exibir texto no display LED P10 usando Arduino: 5 etapas (com imagens)
Exibir texto no display P10 LED usando Arduino: Dotmatrix Display ou mais comumente referido como Running Text é freqüentemente encontrado em lojas como um meio de anunciar seus produtos, é prático e flexível em seu uso que encoraja os atores de negócios a usá-lo como conselho publicitário. Agora, o uso do Dot
Use SSH e XMing para exibir programas X de um computador Linux em um computador Windows: 6 etapas
Use SSH e XMing para exibir programas X de um computador Linux em um computador Windows: Se você usa Linux no trabalho e Windows em casa ou vice-versa, às vezes pode ser necessário fazer login no computador em outro local e executar programas. Bem, você pode instalar um servidor X e habilitar o encapsulamento SSH com seu cliente SSH e um