Ethernet.begin() конфликтует со встроенным светодиодом на Arduino Nano

У меня есть «клон» Arduino Nano, который я хотел бы использовать с экраном Ethernet ENC28J60. Я заметил, что когда я включаю/использую библиотеку UIPEthernet.h, встроенный светодиод работает неправильно. Я написал следующий скетч, который я загрузил в Arduino и запустил как с, так и без Ethernet-шилда с тем же результатом: светодиод не мигает. Как только я закомментирую строку Ethernet.begin(mac), светодиод начнет нормально мигать.

Есть ли способ преодолеть этот конфликт?

#include <UIPEthernet.h>

EthernetClient ethClient;

uint8_t mac[6] = { 0x90, 0xA2, 0xDA, 0x0D, 0xE2, 0xCD };

void setup() {
  Serial.begin(115200);

  // If this line is commented, LED starts blinking:
  Ethernet.begin(mac);

  pinMode(LED_BUILTIN, OUTPUT);

  Serial.println(F("setup() done."));
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

Шилд Arduino Nano + Ethernet ENC28J60

, 👍0


1 ответ


Лучший ответ:

2

Нет, нельзя.

Светодиод находится на контакте 13. Контакт 13 — это контакт синхронизации для SPI. ENC28J60 — это устройство SPI.

У вас либо есть контроль над контактом 13, либо у вас есть SPI. У вас не может быть обоих.

,

Спасибо за эту информацию! Приятно знать, что. Возможно, есть какой-то способ «остановить» Ethernet и начать использовать светодиод? К сожалению, я не нашел Ethernet.stop() или что-то подобное., @dma_k