2013-09-05 3 views
0

이더넷 (Mac, IP)을 사용할 때 LED가 켜지거나 꺼지지 않습니다. 하지만 그 라인을 사용하지 않을 때는 작동합니다. 하지만 이더넷과 UPP 모듈을 사용하여 켜고 끌 필요가 있습니다. 내가 어떻게 할 수있는 ?Arduino - 어떻게 이더넷에서 + 모듈을 작동시킬 수 있습니까? led가 이더넷 모듈을 사용할 때 반응하지 않습니다

보드 모델 : 이더넷 08 Twinker 키트, Twinker 릴레이

enter image description here

#include <TinkerKit.h> 
#include <SPI.h>   // needed for Arduino versions later than 0018 
#include <Ethernet.h> 
#include <EthernetUdp.h>   // UDP library from: [email protected] 12/30/2008 

TKLed led(O5); //O0 does not work 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 
IPAddress ip(192, 168, 1, 177); 
unsigned int localPort = 8888;  // local port to listen on 
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet, 
char ReplyBuffer[] = "ackv1";  // a string to send back 
EthernetUDP Udp; 

void setup() { 
    Ethernet.begin(mac,ip); 
    Udp.begin(localPort); 
} 

void loop() { 
    int packetSize = Udp.parsePacket(); 
    if(packetSize) 
    { 
    // check the switch state 
    delay(1000); 
    led.off();       
    delay(3000); 
    led.on(); 
    // send a reply, to the IP address and port that sent us the packet we received 
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort()); 
    Udp.write(ReplyBuffer); 
    Udp.endPacket();   
    } 
    delay(10); 
} 

편집 :

는 이더넷 I처럼 들리 당신의 설명에서
$ echo "hello" | nc -4u 192.168.1.177 8888 
ackv1 

답변

1

/O가 LED 입출력을 방해하고 있습니다. 이것은 아마 당신은 포트가 이더넷에서 사용하는 것을 결정해야 0으로 포트에로 이끌어 정의

TKLed led(O0); 

: 것을

알 수 있습니다. (나는 당신에게 말할 것이다. 그러나 이것은 좋은 교훈이다.)

IF (당신은 문서를 읽을 필요가있다.) led 포트 번호와 이더넷 포트 번호 사이에 충돌이있다. 그러면 LED를 옮길 필요가있다. 이더넷 포트는 직렬 I/O를 필요로하는 반면 LED는 + 5V 또는 0V 만 필요합니다.

+0

나는 여전히 작동하지 않습니다. 그림과 같이, 나의 팅커킷은 이더넷 보드 위에 있으며, 출력 및 입력을 가지고있는 땜장이 키트의 상단에, O0는 내가 켜고 끄기 위해 사용한 포트입니다. 그럼 내가 O5 출력으로 출력을 전환하지만 여전히 작동하지 못했습니다. 하지만 누군가가 같은 보드를 사용하는 것을 보았습니다. 제발 제발. – YumYumYum

+0

O5 포트를 사용해 주셔서 감사합니다. http://www.tinkerkit.com/relay-tutorial/ – YumYumYum