happyfish2010 发表于 2013-5-20 17:27:40

新手求助,通过udp控制LED

哪位高手帮忙看看,哪里不对,led没反应,但是串口能收到消息

#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>

byte mac[] = {
0xde, 0xad, 0xef, 0xee, 0x01};
IPAddress ip(192, 168, 1, 50);

unsigned int localPort = 8888;

char packetBuffer;
String packet;

EthernetUDP Udp;

const int ledPin = 13;
int ledState = LOW;

void setup()
{
Ethernet.begin(mac, ip);
Udp.begin(localPort);
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}

void loop()
{
int packetSize = Udp.parsePacket();
if (packetSize)
{
    Serial.print("Received packet of size ");
    Serial.println(packetSize);
    Serial.print("From ");
    IPAddress remote = Udp.remoteIP();
    for (int i = 0; i<4; i++)
    {
      Serial.print(remote,DEC);
      if (i<3)
      {
      Serial.print(".");
      }
    }
    Serial.print(",port ");
    Serial.println(Udp.remotePort());

    //read the packet into puacketBuffer
    Udp.read(packetBuffer,10);
    Serial.println("Contents:");
    //Serial.println(packetBuffer);
    packet = packetBuffer;
    int led = packet.indexOf("LED");
    if(packet.substring(led,led+8) == "LEDPOWER")
    {
      digitalWrite(ledPin,HIGH);
//      ledState = HIGH;
      Serial.println("LEDPOWER");
//      delay(1000);
    }
    else if (packet.substring(led,6) == "LEDOFF")
    {
      digitalWrite(ledPin,LOW);
//      ledState = LOW;
      Serial.println("LEDOFF");
//      delay(1000);
    }
}
delay(10);
}

happyfish2010 发表于 2013-5-20 18:10:15

自己搞定了“const int ledPin = 13;”中的13改8后可用了。

弘毅 发表于 2013-5-20 18:30:02

{:soso_e103:}原来是端口冲突了。。。
页: [1]
查看完整版本: 新手求助,通过udp控制LED