Go Down

Topic: Lettura stringa un byte alla volta con concatenazione e confronto (Read 525 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy