//***************************************************************************** // Projeto - Trena Ultrassônica - Realiza medidas usando sensor HC-SR04 // // Desenvolvido por Eng. Márcio José Soares // V1.0 - 22/09/2022 // // Plataforma - Arduino Nano // Acessórios - LCD 16x2 + sensor ultrassônico HC-SR04 // // Compilador - Arduino-cli 0.24.0 Linux (ou qualquer IDE Arduino) // IDE - Kate Editor // // Pinos utilizados: // A0 - Echo - sensor // A1 - Trigger - Sensor // // D4 - dado 4 - LCD // D5 - dado 5 - LCD // D6 - dado 6 - LCD // D7 - dado 7 - LCD // D8 - RS - LCD // D9 - EN - LCD // // Obs.: Artigo com detalhes do circuito na revista Mecatrônica Jovem nr 8 // //***************************************************************************** //***************************************************************************** // Arquivos incluídos no módulo //***************************************************************************** #include #include //***************************************************************************** // Variáveis globais do módulo //***************************************************************************** long dist; // var para coletar a distância const int rs=8,en=9,d4=4,d5=5,d6=6,d7=7; // vars para uso de LiquidCrystal const int LED = 13; // led live int led_state = 0; // estado do led_state //***************************************************************************** // Inicializa periféricos //***************************************************************************** Ultrasonic HCSR04(A1,A0); // nome do sensor e pinos trigger(A1) e echo(A0) LiquidCrystal lcd(rs, en, d4, d5, d6, d7); // LCD e seus pinos //***************************************************************************** // Configurações //***************************************************************************** void setup() { Serial.begin(9600); // porta para "debug inicial" lcd.begin(16,2); // inicia lcd 16 x 2 //configura pino do led pinMode(LED, OUTPUT); digitalWrite(LED, LOW); //Envia mensagem para RS232 Serial.println("Trena ultrassônica by Arne"); Serial.println("Revista Mecatrônica Jovem"); //Envia mensagem para LCD lcd.clear(); lcd.setCursor(0,0); lcd.print(" Revista "); lcd.setCursor(0,1); lcd.print("Mecatronica Jovem"); delay(2000); lcd.scrollDisplayLeft(); delay(2000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Trena U. sonica"); lcd.setCursor(0,1); lcd.print("Distancia->"); delay(500); } //***************************************************************************** // Laço principal //***************************************************************************** void loop(){ dist = HCSR04.Ranging(CM); // retorna distância em centímetros Serial.print(dist); // envia medida para serial Serial.println(" cm"); // seguida da unidade lcd.setCursor(10,1); // posiciona cursor no LCD lcd.print(" "); // limpa lcd.setCursor(10,1); // reposiciona cursor no LCD lcd.print(dist); // envia distância para o LCD lcd.print(" cm"); if(led_state == 0){ // verifica estado do led, se zero led_state = 1; // estado = 1 } else{ // se estado == 1 led_state = 0; // estado = 0 } digitalWrite(LED, led_state); // inverte o estado do LED delay(1000); // aguarda }