Boa tarde amantes caseiro! Hoje vamos montar um rangefinder simples em Arduino Pro Mini. O dispositivo é capaz de medir uma distância de 2 a 400 cm. O erro deste dispositivo é de apenas +/- 1-5 cm, dependendo da distância medida.
Ferramentas e materiais
-Arduino Pro mini
Sensor HC-04
- Indicador em tm1637
-Wire (eu tenho - MGTF 0,12)
-Programador
-Caixa de plástico
Bateria -Li-on
Interruptor pequeno
- Placa de carregamento em TP4056
Supercola
-Ferro de solda
-Soldado
Rosin
Broca, broca, etc.
Etapa 1. Esquema:
De acordo com o esquema, tudo é simples, sem acréscimos.
Etapa 2. Preparação do caso:
Primeiro, experimentamos o sensor e perfuramos dois orifícios por 15 mm.
Em seguida, faça um orifício de 3-3,5 mm para o conector micro-usb.
Selecionamos uma broca para o diâmetro do comutador e da broca.
Na tampa, criamos uma “janela” para o indicador de sete segmentos (na foto sem processamento) e finalizamos todas as irregularidades com um arquivo.
Etapa 3. Firmware:
No esboço, as variáveis que podem ser ajustadas são destacadas. Todo o código está comentado.
#include // bibliotecas para trabalho
#include
// ------------- Para configurar --------------------------------- --------------------------------
bool Long = 0; // 0 - mede o comprimento do sensor
// 1 - meça o comprimento da parede da caixa, oposta ao sensor
corpus int sem sinal = 10; // distância do sensor à parede oposta da caixa (em centímetros)
#define CLK 2 // pinos para conectar
#define DIO 3
#define TRIG 4
#definir ECHO 5
// ------------------------------------------------ ----------------------------------------------
impulso não assinado int = 0; // variáveis para cálculo
unsigned int sm = 0;
GyverTM1637 disp (CLK, DIO);
configuração nula () {
pinMode (TRIG, OUTPUT); // definido como uma saída
pinMode (ECHO, INPUT); // definido como entrada
dissipação de brilho (7); // brilho 0-7
ponto de disp. (0); // desligue os dois pontos
disp.clear (); // apaga o indicador
}
loop vazio () {
digitalWrite (TRIG, ALTO); // fornece 5 volts
delayMicrosegundos (10); // atrasa 10 microssegundos
digitalWrite (TRIG, BAIXO); // serve 0
impulso = pulso (ECO, ALTO); // mede o comprimento do pulso
sm = impulso / 58; // converter para centímetros
if (Long == 1) {// verifique as configurações
sm = sm + corpus;
}
if (sm <= 2) {// zero valores falsos
sm = 1;
}
if (sm> = 405) {
sm = 1;
}
int inteiro = sm / 10;
int decimal = sm% 10;
decimal = decimal * 10;
disp.displayClock (inteiro, decimal); // saída para o indicador
atraso (300); // atraso 0,3 seg. entre saída de valor
}
Em seguida, conecte o programador e faça o flash do MK.
Etapa 4. Montagem:
Como o dispositivo funciona com bateria, não precisamos de carga extra. Portanto, na placa Arduino, soldamos os LEDs e o botão de redefinição (para reduzir o tamanho).
Cole a bateria no corpo com supercola. Colamos a placa de carregamento na bateria, instalamos o interruptor e soldamos tudo de acordo com o esquema.
Colamos o sensor no gabinete e soldamos tudo de acordo com o esquema. Primeiro, surgiu a idéia de colar a placa em fita dupla face, mas depois decidiu-se colar a supercola. O indicador pode ser parafusado ou colado.
Etapa 5. Teste:
Nota: o quarto segmento sempre exibirá 0. Isso garante que o último segmento não esteja vazio. Acontece que se a leitura for 270, isso significa que a distância é de 27 cm.
Para ter certeza, o testemunho pode ser verificado com a régua.