Pages: [1]   Go Down
Author Topic: Lettura stringa un byte alla volta con concatenazione e confronto  (Read 371 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
   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.
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 38
Posts: 3260
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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="";            
           }
        }
 
« Last Edit: December 11, 2012, 11:28:20 am by pablos » Logged

no comment

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

<3
Logged

Pages: [1]   Go Up
Jump to: