Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********* Pleasedontcode.com **********
- Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- - Terms and Conditions:
- You have a non-exclusive, revocable, worldwide, royalty-free license
- for personal and commercial use. Attribution is optional; modifications
- are allowed, but you're responsible for code maintenance. We're not
- liable for any loss or damage. For full terms,
- please visit pleasedontcode.com/termsandconditions.
- - Project: **Distance Measurement**
- - Source Code NOT compiled for: Arduino Uno
- - Source Code created on: 2025-04-30 20:32:33
- ********* Pleasedontcode.com **********/
- /****** SYSTEM REQUIREMENTS *****/
- /****** SYSTEM REQUIREMENT 1 *****/
- /* O sistema deve inicializar um display */
- /* LiquidCrystal para apresentar mensagens de status */
- /* do sistema, incluindo notificações de erro e */
- /* feedback operacional, garantindo ao usuário a */
- /* conscientização sobre o desempenho do dispositivo. */
- /****** END SYSTEM REQUIREMENTS *****/
- /* START CODE */
- /****** DEFINITION OF LIBRARIES *****/
- #include <LiquidCrystal.h> //https://github.com/arduino-libraries/LiquidCrystal
- /****** FUNCTION PROTOTYPES *****/
- void setup(void);
- void loop(void);
- /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
- #define TRIGGER_PIN 2
- #define ECHO_PIN 3
- #define RED_LED_PIN 4
- #define YELLOW_LED_PIN 5
- #define GREEN_LED_PIN 6
- #define BUZZER_PIN 7
- // Inicializando o LCD
- LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
- // Variáveis globais
- long duration; // Variável para armazenar o tempo de retorno do sinal do sensor
- int distance; // Variável para armazenar a distância em cm
- int ledState = LOW; // Variável para controlar o estado do LED indicativo
- unsigned long previousMillis = 0; // Variável para armazenar o tempo anterior
- const long interval = 1000; // Intervalo de tempo para atualização do LCD e LEDs
- void setup(void)
- {
- // put your setup code here, to run once:
- // Inicializando os pinos como entrada ou saída
- pinMode(TRIGGER_PIN, OUTPUT);
- pinMode(ECHO_PIN, INPUT);
- pinMode(RED_LED_PIN, OUTPUT); // Changed from SAÍDA to OUTPUT
- pinMode(YELLOW_LED_PIN, OUTPUT); // Changed from SAÍDA to OUTPUT
- pinMode(GREEN_LED_PIN, OUTPUT); // Changed from SAÍDA to OUTPUT
- pinMode(BUZZER_PIN, OUTPUT); // Changed from SAÍDA to OUTPUT
- // Inicializando o LCD com 2 colunas e 16 linhas
- lcd.begin(16, 2);
- // Imprimindo as mensagens iniciais no LCD
- lcd.print("Distancia: ");
- lcd.setCursor(0, 1);
- lcd.print("Barra: ");
- }
- void loop(void)
- {
- // put your main code here, to run repeatedly:
- // Gerando o pulso de 10 microssegundos no pino do trigger
- digitalWrite(TRIGGER_PIN, LOW);
- delayMicroseconds(2); // Changed from atrasoMicrossegundos to delayMicroseconds
- digitalWrite(TRIGGER_PIN, HIGH); // Changed from ALTO to HIGH
- delayMicroseconds(10); // Changed from atrasoMicrossegundos to delayMicroseconds
- digitalWrite(TRIGGER_PIN, LOW);
- // Medindo o tempo de retorno do sinal do sensor
- duration = pulseIn(ECHO_PIN, HIGH); // Changed from length to duration
- //Calculando a distância em cm
- distance = duration * 0.034 / 2;
- // Atualizando o LCD com a distância em cm
- lcd.setCursor(10, 0);
- lcd.print(distance); // Changed from distância to distance
- // Atualizando a barra de caracteres no LCD
- lcd.setCursor(6, 1);
- for (int i = 0; i < distance / 2; i++) {
- lcd.print("*");
- }
- lcd.print(" ");
- // Atualizando os LEDs indicativos de acordo com a distância
- if (distance <= 10) {
- digitalWrite(RED_LED_PIN, HIGH);
- digitalWrite(YELLOW_LED_PIN, LOW); // Changed from BAIXO to LOW
- digitalWrite(GREEN_LED_PIN, LOW);
- lcd.setCursor(0, 1);
- lcd.print("Erro: Muito perto"); // Display error message
- }
- else if (distance > 10 && distance <= 20) { // Changed from caso contrário, se to else if
- digitalWrite(RED_LED_PIN, LOW);
- digitalWrite(YELLOW_LED_PIN, HIGH); // Changed from ALTO to HIGH
- digitalWrite(GREEN_LED_PIN, LOW);
- lcd.setCursor(0, 1);
- lcd.print("Atenção: Distância média"); // Display warning message
- }
- else if (distance > 20 && distance <= 30) { // Changed from caso contrário, se to else if
- digitalWrite(RED_LED_PIN, LOW);
- digitalWrite(YELLOW_LED_PIN, LOW);
- digitalWrite(GREEN_LED_PIN, HIGH);
- lcd.setCursor(0, 1);
- lcd.print("Tudo certo!"); // Display operational feedback
- }
- else {
- digitalWrite(RED_LED_PIN, LOW);
- digitalWrite(YELLOW_LED_PIN, LOW);
- digitalWrite(GREEN_LED_PIN, LOW);
- lcd.setCursor(0, 1);
- lcd.print("Erro: Distância excessiva"); // Display error message
- }
- // Atualizando o estado do LED indicativo a cada segundo
- unsigned long currentMillis = millis();
- if (currentMillis - previousMillis >= interval) {
- previousMillis = currentMillis;
- if (ledState == LOW) {
- ledState = HIGH;
- } else {
- ledState = LOW;
- }
- digitalWrite(BUZZER_PIN, ledState);
- }
- }
- /* END CODE */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement