Странное поведение на Arduino Встроенный светодиод - PullRequest
0 голосов
/ 22 апреля 2020

Я начинаю программировать на Arduino, и я попытался соединить две карты, используя шину I2 C, как показано в этом руководстве . Мне бы хотелось, чтобы каждый раз, когда ведомая карта получала байт от мастера, мигает встроенный светодиод ведомого (она должна включиться на секунду, а затем выключиться). Проблема в том, что на практике светодиод мигает очень странным образом (это очень быстрое мигание, намного меньше секунды), он не горит ни на секунду. Есть идеи, почему это может происходить?

Вот код:

Мастер:

#include <Wire.h>

void setup() {
  Wire.begin();
}


void loop() {
  Wire.beginTransmission(4);
  Wire.write(1);
  Wire.endTransmission();
  delay(5000);
}

Раб:

#include <Wire.h>

void setup() {
  Wire.begin(4);
  Wire.onReceive(receiveEvent);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  delay(100);
}

void receiveEvent(int howMany) {
  int x = Wire.read(); // without this, it doesn't work
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);  
}

PD: Я проверил, правильно ли светодиод работает с программой, которая включает и выключает его в l oop.

Спасибо!

...