Arduino,Ethernet.begin(mac)阻止领先

时间:2017-04-11 19:47:42

标签: arduino

我遇到了一个奇怪的问题,我不确定是什么导致它。 也许你们其中一个人可以看到我做错了什么。

问题是功能Ethernet.begin(mac) - 当按下按钮时,它会阻止LED打开。

包括以太网,因为我需要稍后使用它。 我只是更改了代码,以便更容易找到错误。

如果我禁用Ethernet.begin(mac)

,它可以正常工作

这是我的代码:

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

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//byte ip[] = { 192, 168, 1, 104 };
char server[] = "b2b.as";

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup()
{

  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);

  //Ethernet.begin(mac, ip);
  Ethernet.begin(mac);
  Serial.begin(9600);

  delay(1000);

  Serial.println(Ethernet.localIP());
  Serial.println();

}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}

1 个答案:

答案 0 :(得分:1)

阅读documentation 屏蔽将使用数字引脚11,12 & 13与Arduino通信。 您的ledPin已连接到数字图钉13。我认为,如果您使用Ethernet .begin启动13会导致问题Ethernet不可用,因为ledPin将使用它,因此会导致此问题。按照屏蔽的引脚分配,从另一个可用的数字引脚转移\documentclass[a4paper]{article} \usepackage[margin=0pt]{geometry} \usepackage[skins,raster]{tcolorbox} \pagestyle{empty} \begin{document} \begin{tcbraster}[raster height=\textheight,raster equal skip=0pt,blank, graphics pages={8,1,6,3, 2,7,4,5}] \tcbincludepdf{a6.pdf}% <-- The A6 document with 8 pages \end{tcbraster} \end{document}

注意:这仅适用于Arduino UNO