Назначение светодиодного индикатора

Я использую мега-клон arduino под названием Funduino.

Я разрабатываю приложение на основе python, tkinter, которое будет получать последовательные данные, отправляемые arduino.

Однако я наблюдаю некоторое поведение, которое я не могу объяснить, и я пытаюсь отладить. Я больше ничего не скажу, потому что это форум arduino, а не форум python.

Но, в arduino, есть некоторые светодиоды. Одним из них является питание, которое постоянно включается, когда arduino работает.

Есть еще один светодиод, который называется "L". Когда я открываю последовательное соединение, оно загорается и остается включенным.

Однако иногда, когда я отправляю строку в arduino, чтобы вызвать некоторый обмен данными, эта кнопка выключается.

Так что же такое этот светодиод " L " и что он означает, когда он выключен?

, 👍1

Обсуждение

"L" - это пользовательский светодиод, подключенный к контакту 13. Он управляется вашим программным обеспечением, установленным в Arduino, что бы это ни было., @Majenko

@Majenko - если он не сконфигурирован, то вывод светодиода является тристатным и может управляться сигналами, внешними по отношению к Arduino., @Dave X


2 ответа


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

3

Если вы не настраиваете контакты, они инициализируются как pinMode(xx,INPUT), который является плавающим высокоимпедансным состоянием. Согласно схеме Arduino Uno R3, этот вывод находится на PB5/SCK/13, который проходит через операционный усилитель (верхний центр на схеме) для управления светодиодом. Согласно схеме Arduino Mega, этот вывод находится на PB7/OC0A/OC1C/13, который не проходит через операционный усилитель. Я оставил свой неконфигурированным на Мега - клоне, измерил 1,5 В на 13 и включил светодиод. На клоне Uno свет горел, хотя и не был сконфигурирован, и я измерил 0,9 В (но мой DMM, казалось, снижал напряжение).

Если штифт останется плавающим в неизвестном состоянии, он может привести светодиод в неизвестное состояние.

Arduino Mega2560 R3 Schematic detail

Вы можете контролировать его состояние с помощью:

pinMode(LED_BUILTIN,OUTPUT);  // LED is forced off (0.01V)
digitalWrite(LED_BUILTIN,1);  // force LED on (4.97)

или

pinMode(LED_BUILTIN,INPUT_PULLUP); // On, but with the internal pullup resistor, not logic gates.  Pin 13 can be shorted to ground.

или установите его обратно в трехсостояние по умолчанию:

pinMode(LED_BUILTIN,INPUT); // Tri-state, undefined.  
// You could control the LED from an external signal on the pin.

Измерьте напряжение на выводе 13 и посмотрите, что получится.

Лично я использую его как индикатор состояния. Например. https://github.com/drf5n/foxyPulseInduction_Discrimination/blob/discrimination/StatusCodeLED/StatusCodeLED.ino

Из-за трехфазного светодиодного драйвера/операционного усилителя на "L" вы можете использовать светильник как логический зонд-вы можете оставить его неконфигурированным и подключить к другим входам или выходам для устранения неполадок и диагностики. Если у вас есть проект, контролирующий один важный вход,вместо того, чтобы помещать его на другой входной вывод и явно повторять его на светодиод, как digitalWrite(LED_BUILTIN, digitalRead(sensorPin)); вы можете подключить его к контакту 13, чтобы визуально увидеть состояние ввода и просто digitalRead(sensorPin).

====

Обратите внимание, что существует две версии схемы Arduino Mega.

  • https://www.arduino.cc/en/uploads/Main/arduino-mega2560-schematic.pdf -- Лучший поисковый хит
  • https://content.arduino.cc/assets/MEGA2560_Rev3e_sch.pdf от https://store-usa.arduino.cc/products/arduino-mega-2560-rev3

После тестирования этого поведения я заметил, что мой мега - клон не соответствует схеме Arduino Mega. https://www.arduino.cc/en/uploads/Main/arduino-mega2560-schematic.pdf . Проследив за этим, он использует операционный усилитель, как и Uno. (Контакты 1 и 2 операционного усилителя присоединяются к светодиоду "L" через третий резистор в массиве резисторов рядом со светодиодом.)

,

2

Этот светодиодный индикатор buildin подключен к выводу ввода-вывода микроконтроллера на Mega (чаще всего pin 13, но может отличаться в зависимости от платы). Таким образом, значение зависит от того, что код на Мега делает с ним.

Когда плата сбрасывается (что происходит при открытии последовательного соединения), сначала запускается загрузчик. Это дает вам короткое мигание на светодиоде buildin. После того, как загрузчик закончит, ваш собственный код будет ответственным. Все, что вы делаете в своем коде с контактом 13, будет отражено на светодиоде. Здесь смысл зависит от вас.

,