Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Medição de Distância com Arduino UNO, HC-SR04 e Display OLED Adafruit

Componentes e Materiais

Arduino UNO 1
Sensor Ultrassônico HC-SR04 1
Display OLED 128x64 Adafruit (SSD1306) 1

Aplicações e Serviços Online

Sobre o Projeto

Projeto simples: medir distância com sensor ultrassônico HC-SR04 e exibir no display OLED 128x64 I2C.

Como Usar o Display OLED

Bibliotecas necessárias: SPI.h, Wire.h, Adafruit_GFX.h, Adafruit_SSD1306.h.

Configuração Inicial

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Endereço I2C 0x3C (128x64)
  display.clearDisplay();
}

No Loop

display.setCursor(22, 20);
display.setTextSize(3);
display.setTextColor(WHITE);
display.println(distancia);
display.setCursor(85, 20);
display.setTextSize(3);
#ifdef CommonSenseMetricSystem
  display.println("cm");
#endif
#ifdef ImperialNonsenseSystem
  display.println("in");
#endif
display.display();
delay(500);
display.clearDisplay();

Como Usar o HC-SR04

O módulo envia pulso ultrassônico e mede o tempo do eco.

Disparo do Sensor

long duracao, distancia;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

Leitura do Eco

duracao = pulseIn(echoPin, HIGH);
#ifdef CommonSenseMetricSystem
  distancia = (duracao/2) / 29.1; // cm
#endif
#ifdef ImperialNonsenseSystem
  distancia = (duracao/2) / 73.914; // polegadas
#endif

Código Completo

// CODE BY Javier Muñoz Sáez, 05/11/2016
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define CommonSenseMetricSystem
//#define ImperialNonsenseSystem

#define trigPin 13
#define echoPin 12
#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
}

void loop() {
  long duracao, distancia;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duracao = pulseIn(echoPin, HIGH);

  #ifdef CommonSenseMetricSystem
    distancia = (duracao/2) / 29.1;
  #endif
  #ifdef ImperialNonsenseSystem
    distancia = (duracao/2) / 73.914;
  #endif

  display.setCursor(22, 20);
  display.setTextSize(3);
  display.setTextColor(WHITE);
  display.println(distancia);
  display.setCursor(85, 20);
  display.setTextSize(3);
  #ifdef CommonSenseMetricSystem
    display.println("cm");
  #endif
  #ifdef ImperialNonsenseSystem
    display.println("in");
  #endif
  display.display();
  delay(500);
  display.clearDisplay();
  Serial.println(distancia); // debug
}

Esquemático

Disponível na seção de esquemáticos do projeto original.

Processo de manufatura

  1. Como Funcionam os Sensores de Distância e Suas Principais Aplicações
  2. Sensores Arduino: Tipos, Aplicações e Projetos do Mundo Real
  3. Tecnologia de Sensor de Impressão Digital: Princípios de Funcionamento, Aplicações e Integração com Arduino
  4. Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
  5. Construa um Sistema de Monitoramento de Temperatura e Luz Multi-Sensor com Raspberry Pi e DS18B20
  6. Dominando Controle de Sensores e Atuadores no Raspberry Pi: Acelerômetro, Servo e Streaming de Dados
  7. Construa um Sistema Aeropônico Automatizado com Raspberry Pi e Sensor de Umidade
  8. Verifique e Calibre Seu Sensor de Umidade para Medições Precisas
  9. Monitoramento Preciso de Temperatura e Umidade com SHT15 no Windows 10 IoT Core
  10. Autômatos Celulares em Tempo Real no Arduino com Display OLED 128x64