Go Down

Topic: Lettura stringa un byte alla volta con concatenazione e confronto (Read 441 times) previous topic - next topic

efleme

Code: [Select]

   int led = 13;
   int onModulePin = 2;       
   String stringa;                               

  void switchModule(){
   digitalWrite(onModulePin,HIGH);
   delay(2000);
   digitalWrite(onModulePin,LOW);
   }
   
void setup(){
   
  pinMode(led, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(onModulePin, OUTPUT);

  Serial.begin(9600);              // the GPRS baud rate
   
  switchModule();                    // swith the module ON

  for (int i=0;i<2;i++){
    delay(5000);                       
  }
 
   Serial.println("AT+CLIP=1;");     
   delay(5000);


}


   void loop(){
     stringa = "";
     if(Serial.available()){
       while(Serial.available()>0){
         delay(10);
        char c =Serial.read();
   

    stringa += c;             
       } 
    if(stringa =="+390575"){
         buzz(8, 4186, 100);
         delay(10);
         digitalWrite(led, HIGH);
         delay(1000);

        } else {
        digitalWrite(led, LOW);
        }
       }   
   }



void buzz(int targetPin, long frequency, long length) {
long delayValue = 1000000/frequency/2;
long numCycles = frequency * length/ 1000;
for (long i=0; i < numCycles; i++)
{
digitalWrite(targetPin,HIGH);
delayMicroseconds(delayValue);
digitalWrite(targetPin,LOW);
delayMicroseconds(delayValue);
}
}


Qualcuno saprebbe dirmi perchè non funziona? Per favore... sto impazzendo.

pablos

#1
Dec 11, 2012, 05:25 pm Last Edit: Dec 11, 2012, 05:28 pm by pablos Reason: 1
Code: [Select]
int16_t c;
      while ((c = Serial.read())>0)
      {
        ReadLine += (char)c;
       
          if((char)c=='\n')     //<<<<<<<< se vuoi un carattere di chiusura
          {   ...
              //fai quello che devi fare
              ReadLine="";            
          }

          if(ReadLine=="blabla")     //<<<<<<<< se vuoi una stringa precisa
          {   ...
              //fai quello che devi fare
              ReadLine="";            
          }
         
           if((byte)ReadLine.indexOf("blab") < 255) //<<<<<<<<<<<<<se vuoi cercare una parola all'interno della stringa (255 = non c'√®)
            {   ...
              //fai quello che devi fare
              ReadLine="";            
          }
       }
no comment


Go Up