Advertisement
Guest User

Untitled

a guest
Apr 26th, 2019
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "SoftwareSerial.h"
  2.  
  3. SoftwareSerial bluetooth(2, 3); // TX, RX ( of the Bluetooth, respectively)
  4.  
  5. String inData = "";
  6.  
  7. void setup() {
  8.   bluetooth.begin(9600);
  9.   Serial.begin(9600);
  10. }
  11.  
  12. void loop() {
  13.   while(bluetooth.available() > 0)
  14.   {  
  15.     //Recebe um caractére
  16.     char receivedChar = bluetooth.read();
  17.    
  18.     // Adiciona caracteres a string até receber o terminador
  19.     inData += receivedChar;
  20.    
  21.     // Verifica se tem o tamanho máximo de um comando
  22.     if(inData.length() > 11)
  23.     {
  24.       Serial.println("Erro: maior que 11 caracteres.");
  25.       Serial.println(inData);
  26.       inData = "";
  27.       break;
  28.     }
  29.     //Verifica se possui o terminador \n
  30.     if(receivedChar == '\n')
  31.     {
  32.       //Verifica se tem o tamanho mínimo
  33.       if(inData.length() < 11)
  34.       {
  35.         Serial.println("Erro: número de caracteres menor que 11.");
  36.         Serial.println(inData);
  37.         inData = "";
  38.         break;
  39.       }
  40.       //Serial.println(inData.length());
  41.       /****MAIN LOOP****/
  42.       setBrightness();
  43.  
  44.       inData = "";
  45.       /*****************/
  46.     }
  47.   }
  48. }
  49.  
  50. void setBrightness()
  51. {
  52.   while(true)
  53.   {  
  54.     String command = inData.substring(0, 2);
  55.     if(command != "SB") {
  56.       Serial.println("Erro: não é SB.");
  57.       Serial.println(inData);
  58.       inData = "";
  59.       break;
  60.     }
  61.    
  62.     String ledNumber = inData.substring(3, 5);  
  63.     int _ledNumber = ledNumber.toInt();
  64.    
  65.     if (_ledNumber == 0) {
  66.       Serial.println("Erro: número do led retornou zero.");
  67.       Serial.println(ledNumber);
  68.       inData = "";
  69.       break;
  70.     }
  71.    
  72.     /****Testes****/
  73.     switch (_ledNumber)
  74.     {
  75.       case 2 :
  76.       _ledNumber = 5;
  77.       break;
  78.      
  79.       case 3 :
  80.       _ledNumber = 6;
  81.       break;
  82.      
  83.       case 4 :
  84.       _ledNumber = 9;
  85.       break;
  86.      
  87.       case 5 :
  88.       _ledNumber = 10;
  89.       break;
  90.      
  91.       default :
  92.       return;
  93.     }
  94.     /**************/
  95.    
  96.     String pwmValue = inData.substring(6, 9);
  97.     int _pwmValue = pwmValue.toInt();
  98.    
  99.     if (_pwmValue > 255) {
  100.       Serial.print("Erro: PWM maior que 255.");
  101.       Serial.println(pwmValue);
  102.       inData = "";
  103.       break;
  104.     }
  105.    
  106.     pinMode(_ledNumber, OUTPUT);
  107.     analogWrite(_ledNumber, _pwmValue);
  108.     break;
  109.   }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement