Arduino UNO R4 - Sensor Ultrassônico - OLED

Neste guia, vamos aprender a medir distância com um sensor ultrassônico e mostrá-la em uma tela OLED.

Arduino UNO R4 com Sensor Ultrassônico e OLED

Sobre o OLED e o Sensor Ultrassônico

Saiba mais sobre o OLED e o Sensor Ultrassônico (pinagem, funções, programação) nestes tutoriais:

Diagrama de Ligação

Diagrama de Ligação do Arduino UNO R4 com Sensor Ultrassônico e OLED

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Uno R4 e outros componentes.

Código Arduino UNO R4 - Sensor Ultrassônico - OLED

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-ultrasonic-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define TRIG_PIN 5 // The Arduino UNO R4 pin connected to Ultrasonic Sensor's TRIG pin #define ECHO_PIN 9 // The Arduino UNO R4 pin connected to Ultrasonic Sensor's ECHO pin Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C String tempString; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(2); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display tempString.reserve(10); // to avoid fragmenting memory when using String } void loop() { // generate 10-microsecond pulse to TRIG pin digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // measure duration of pulse from ECHO pin long duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance float distance_cm = 0.017 * duration_us; // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); tempString = String(distance_cm, 2); // two decimal places tempString += " cm"; Serial.println(tempString); // print the temperature in Celsius to Serial Monitor oledDisplayCenter(tempString); // display temperature on OLED } void oledDisplayCenter(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Passos Rápidos

Siga estas instruções passo a passo:

  • Se esta é a primeira vez que você usa o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima no Arduino IDE.
  • Conecte a placa Arduino Uno R4 ao sensor ultrassônico e ao display OLED de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Selecione a placa Arduino Uno R4 apropriada (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
  • Clique no ícone Libraries no lado esquerdo do Arduino IDE.
  • Digite “SSD1306” na caixa de busca e procure a biblioteca SSD1306 criada pela Adafruit.
  • Pressione o botão Install para adicionar a biblioteca.
Biblioteca OLED para Arduino UNO R4
  • Você vai precisar instalar dependências adicionais de bibliotecas.
  • Clique no botão Install All para instalar todas as bibliotecas necessárias.
Biblioteca Adafruit GFX para Arduino UNO R4
  • Copie o código e abra-o no Arduino IDE
  • Pressione o botão Upload no Arduino IDE para enviar o código para o Arduino UNO R4
  • Acene com a mão na frente do sensor
  • Veja o resultado no OLED e no Serial Monitor

※ Nota:

O código centraliza o texto na horizontal e na vertical no display OLED. Para mais detalhes, veja o guia sobre como centralizar texto no OLED em Como centralizar na vertical/horizontal no OLED.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!