Prof_Carvalho

Untitled

Mar 16th, 2022 (edited)
1,107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.55 KB | None | 0 0
  1. //Definição dos PINOS
  2. #define POT A0
  3. #define LED1 10
  4. #define LED2 11
  5. #define LED3 12
  6. #define BOTAO 3
  7. #define ECHO 8
  8. #define TRIG 7
  9. #define LIGADO 0
  10. #define DESLIGADO 1
  11. #define SERIAL_BAUD 115200
  12. //Cria um buffer global - modo RAIZ
  13. #define LIMITE_BUFFER 10
  14. String buffer_msg;
  15. int estado_sistema;
  16.  
  17. void configuraHardware(){
  18.     pinMode(LED1, OUTPUT);
  19.     pinMode(LED2, OUTPUT);
  20.     pinMode(LED3, OUTPUT);
  21.     pinMode(BOTAO, INPUT_PULLUP);
  22.     pinMode(TRIG, OUTPUT);
  23.     digitalWrite(TRIG, LOW);
  24.     pinMode(ECHO, INPUT);
  25.     Serial.begin(SERIAL_BAUD);
  26. }
  27.  
  28. void setup(){
  29.     configuraHardware();
  30.     buffer_msg = "";
  31.     Serial.println("*************************");
  32.     Serial.println("*   SISTEMA FATEC       *");
  33.     Serial.println("*************************");
  34.     estado_sistema = 0;
  35.  
  36. }
  37.  
  38. void inverterLed(int LED){
  39.     digitalWrite(LED, !digitalRead(LED));
  40.     delay(300);
  41. }
  42.  
  43. void atingiuLimite(int saida, int valor, int limite){
  44.     if(valor > limite)
  45.         digitalWrite(saida, LIGADO);
  46.     else
  47.         digitalWrite(saida, DESLIGADO);
  48. }
  49.  
  50. void escalaPot(int valor){
  51.     atingiuLimite(LED1, valor, 300);
  52.     atingiuLimite(LED2, valor, 600);
  53.     atingiuLimite(LED3, valor, 900);
  54. }
  55.  
  56. void estavaNaLoop(){
  57.     DisparaPulsoUltrassonico();
  58.     float TempoEcho = pulseIn(ECHO, HIGH);
  59.     float distancia_metros = CalculaDistancia(TempoEcho);
  60.     Serial.print("Distancia:");
  61.     Serial.println(distancia_metros, DEC);
  62.     delay(2000);
  63. }
  64.  
  65. void loop(){
  66.     if(estado_sistema == 0){
  67.         mostrarMenu();
  68.         estado_sistema = 1;
  69.     } else if(estado_sistema == 1){
  70.         if(Serial.available()>0){
  71.             buffer_msg = Serial.readStringUntil('#');
  72.             if(buffer_msg.equals("1")){
  73.                 estado_sistema = 2;
  74.             } else if(buffer_msg.equals("2")){
  75.                 estado_sistema = 3;
  76.             } else if(buffer_msg.equals("3")){
  77.                 estado_sistema = 8;
  78.             }
  79.         }
  80.     } else if(estado_sistema == 2){
  81.         exibeEstadoSistema();
  82.         estado_sistema = 0;
  83.     } else if(estado_sistema == 3){
  84.         exibeMenuEstado3();
  85.         estado_sistema = 4;
  86.     } else if(estado_sistema == 4){
  87.         if(Serial.available()>0){
  88.             buffer_msg = Serial.readStringUntil('#');
  89.             if(buffer_msg.equals("1")){
  90.                 estado_sistema = 5;
  91.             } else if(buffer_msg.equals("2")){
  92.                 estado_sistema = 6;
  93.             } else if(buffer_msg.equals("3")){
  94.                 estado_sistema = 7;
  95.             } else if(buffer_msg.equals("0")){
  96.                 estado_sistema = 0;
  97.             }
  98.         }
  99.     } else if(estado_sistema == 5){
  100.         inverterLed(LED1);
  101.         estado_sistema = 3;
  102.     } else if(estado_sistema == 6){
  103.         inverterLed(LED2);
  104.         estado_sistema = 3;
  105.     } else if(estado_sistema == 7){
  106.         inverterLed(LED3);
  107.         estado_sistema = 3;
  108.     }
  109. }
  110.  
  111. void exibeMenuEstado3(){
  112.     Serial.println("1 - Inverte LED1");
  113.     Serial.println("2 - Inverte LED2");
  114.     Serial.println("3 - Inverte LED3");
  115. }
  116. void mostrarMenu(){
  117.     Serial.println("1 - Exibe Estado do Sistema");
  118.     Serial.println("2 - Controla Saidas");
  119.     Serial.println("3 - Logger Distância");
  120. }
  121.  
  122. void exibeEstadoSistema(){
  123.     Serial.println("ESTADO SISTEMA!");
  124. }
  125.  
  126. void DisparaPulsoUltrassonico(){
  127.   digitalWrite(TRIG, HIGH);
  128.   delayMicroseconds(10);
  129.   digitalWrite(TRIG, LOW);
  130. }
  131.  
  132.  
  133. float CalculaDistancia(float tempo_us){
  134.     const float VelocidadeSom_mporus = 0.000340;
  135.     return((tempo_us*VelocidadeSom_mporus)/2);
  136. }
Advertisement
Add Comment
Please, Sign In to add comment