0
我有一个Arduino UNO R3,它从我的网页上读取特定值。根据条件,Arduino上的指示灯不会打开/关闭
我有一个LED连接到我的Arduino的PIN 13 & GND。
当Arduino从我的网页上读取1时,它应该打开LED。当它读取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)
,那就是当我注释掉,LED指示灯亮起&保持这种方式。
但是现在我启用它&加载我的Arduino上的代码,它甚至不会打开。
我在想,如果这是一个逻辑错误或别的东西。因为打开LED关闭&完全取决于满足的条件。而现在,我的网页只返回1,因此LED应该保持点亮。但是,当我在相同的代码中同时包含digitalWrite(ledPin, HIGH)
和digitalWrite(ledPin, LOW)
并运行它时,它不起作用。我可以看到Serial打印出与LED相关的消息,但是我没有看到LED打开。
谢谢你的时间!
这会解释它。 – weston
不能相信我犯了这样一个愚蠢的错误!感谢您指出! – Auro