2016-06-07 3 views
0

У меня есть Arduino UNO R3, который читает определенное значение с моей веб-страницы.Светодиод на Arduino не включается/выключается в зависимости от состояния

У меня есть светодиод, прикрепленный к ПИН 13 & GND моего Arduino.

Когда Arduino читает 1 из моей веб-страницы, он должен включить светодиод. Когда он читает 0, он должен отключить его.

Ниже приводится код, который:

#include "SIM900.h" 
#include <SoftwareSerial.h> 
#include "inetGSM.h" 


InetGSM inet; 

#define ledPin 13 

char msg[165]; 
char store[2]; 
char a; 
char b; 

char* disp; 

boolean started=false; 

void setup() 
{ 
     pinMode(ledPin, OUTPUT); 
     digitalWrite(ledPin, LOW); 
    //Serial connection. 
    Serial.begin(9600); 
    Serial.println("GSM Shield testing."); 
    //Start configuration of shield with baudrate. 
    //For http uses is raccomanded to use 4800 or slower. 
    if (gsm.begin(2400)) { 
      Serial.println("\nstatus=READY"); 
      started=true; 
    } else Serial.println("\nstatus=IDLE"); 

    if(started) 
    { 
      //GPRS attach, put in order APN, username and password. 
      //If no needed auth let them blank. 
      if (inet.attachGPRS("TATA.DOCOMO.INTERNET", "", "")) 
       Serial.println("status=ATTACHED"); 
      else Serial.println("status=ERROR"); 
      delay(1000); 



      //TCP Client GET, send a GET request to the server and 
      //save the reply. 

      //Print the results. 


    } 
} 

void loop() 
{ 
    inet.httpGET("www.boat.esy.es", 80, "/retrieve.php", msg, 165); 
    disp = strstr(msg,"\r\n\r\n"); 
    disp = disp+4; 
    a = disp[0]; 
    b = disp[1]; 
    Serial.println(b); 
    if(b=='1') 
    { 
    digitalWrite(ledPin, HIGH); 
    } 
    if(b=='0'); 
    { 
    digitalWrite(ledPin, LOW); 
    } 
} 

Проблема здесь в том, когда я вывожу digitalWrite(ledPin,LOW), то есть, когда я закомментировать, светодиод загорается & остается таким образом.

Но как только я включу его, & загрузите код на моем Arduino, он даже не включится.

Мне интересно, если это логическая ошибка или что-то еще. Поскольку включение & светодиода полностью зависит от выполняемых условий. И на данный момент моя веб-страница возвращает только 1, поэтому светодиод должен оставаться включенным. Но когда я включаю оба digitalWrite(ledPin, HIGH) и digitalWrite(ledPin, LOW) в тот же код и запускаю его, он не работает. Я вижу, что Serial печатает сообщения, связанные со светодиодом ON, но я не вижу, чтобы светодиод включался.

Спасибо за ваше время!

ответ

2

Прежде всего, у вас есть точка с запятой, которая, я думаю, не должна быть в вашем втором if-statement?

if(b=='0'); <-- 
    { 
     digitalWrite(ledPin, LOW); 
    } 

Начните с попытки удалить это и посмотреть, есть ли разница.

+0

Это объяснило бы это. – weston

+0

Не могу поверить, что я совершил такую ​​глупую ошибку !!! Спасибо, что указали !! – Auro

Смежные вопросы