Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3763641
А
Аноним
4 дня назад · публичный вопрос
А
Аноним

Как пройти Глава 8. Программирование передатчика и приемника. задание Необходимо подключить светодиоды на приемнике по таблице, после чего запрограммировать передатчик так, чтобы на приемнике загорелись светодиоды, что указаны в таблице ниже. Значения Uпит - 5 вольт и Uсв - 3 вольта.

Нейросеть4 дня назад

Коротко: точную комбинацию светодиодов и пинов без таблицы назвать нельзя — пришлите скриншот таблицы. Но принцип решения такой.

  1. Рассчитайте резистор для каждого светодиода

На резисторе падает: \[ U_R=U_{\text{пит}}-U_{\text{св}}=5-3=2\ \text{В} \] \[ R=\frac{U_R}{I} \]

Обычно берут ток светодиода 10–20 мА:

Ток Сопротивление
5 мА 400 Ом
10 мА 200 Ом
15 мА 133 Ом
20 мА 100 Ом

Если в задании не указан ток, чаще используют около 10 мА и резистор 220 Ом — он безопаснее. Для 20 мА подойдёт 100–120 Ом. Напрямую к 5 В светодиод на 3 В не подключайте.

  1. Подключение

Вывод приёмника → резистор → анод светодиода, катод → GND.
Если светодиодный модуль активного низкого уровня, логика будет обратной: гореть он будет при LOW.

  1. Как запрограммировать

Таблицу удобно превратить в двоичную маску:
1 — светодиод должен гореть, 0 — нет.
Например, если LED1 — младший бит, то маска: \[ M=\sum 2^{i-1} \] для номеров горящих светодиодов.

В передатчике формируется и отправляется эта маска, а на приёмнике по каждому биту выставляется нужный выход:

const uint8_t ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9}; // заменить по схеме
const uint8_t mask = 0b00000000;                    // вставить маску из таблицы

void setup() {
  for (int i = 0; i < 8; i++) pinMode(ledPin[i], OUTPUT);
}

void loop() {
  for (int i = 0; i < 8; i++) {
    digitalWrite(ledPin[i], bitRead(mask, i));
  }
}

Проверка: если горит не тот светодиод — проверьте соответствие «номер LED → номер пина» и порядок битов. Если не горит совсем — полярность светодиода, резистор или общий GND.

Пришлите таблицу с номерами светодиодов и выводами — тогда дам точную маску, номиналы резисторов и готовый код.

как пройти Глава 8. Программирование передатчика и приемника. задание Необходимо подключить светодиоды на приемнике по таблице, после чего запрограммировать передатчик так, чтобы на приемнике загорелись светодиоды, что указаны в таблице ниже. Значения Uпит - 5 вольт и Uсв - 3 вольта.
Коротко: точную комбинацию светодиодов и пинов без таблицы назвать нельзя — пришлите скриншот таблицы. Но принцип решения такой. 1. **Рассчитайте резистор для каждого светодиода** На резисторе падает: \[ U_R=U_{\text{пит}}-U_{\text{св}}=5-3=2\ \text{В} \] \[ R=\frac{U_R}{I} \] Обычно берут ток светодиода 10–20 мА: | Ток | Сопротивление | |---|---| | 5 мА | 400 Ом | | 10 мА | 200 Ом | | 15 мА | 133 Ом | | 20 мА | 100 Ом | Если в задании не указан ток, чаще используют около 10 мА и резистор **220 Ом** — он безопаснее. Для 20 мА подойдёт **100–120 Ом**. Напрямую к 5 В светодиод на 3 В не подключайте. 2. **Подключение** Вывод приёмника → резистор → анод светодиода, катод → GND. Если светодиодный модуль активного низкого уровня, логика будет обратной: гореть он будет при `LOW`. 3. **Как запрограммировать** Таблицу удобно превратить в двоичную маску: `1` — светодиод должен гореть, `0` — нет. Например, если LED1 — младший бит, то маска: \[ M=\sum 2^{i-1} \] для номеров горящих светодиодов. В передатчике формируется и отправляется эта маска, а на приёмнике по каждому биту выставляется нужный выход: ```cpp const uint8_t ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9}; // заменить по схеме const uint8_t mask = 0b00000000; // вставить маску из таблицы void setup() { for (int i = 0; i < 8; i++) pinMode(ledPin[i], OUTPUT); } void loop() { for (int i = 0; i < 8; i++) { digitalWrite(ledPin[i], bitRead(mask, i)); } } ``` Проверка: если горит не тот светодиод — проверьте соответствие «номер LED → номер пина» и порядок битов. Если не горит совсем — полярность светодиода, резистор или общий GND. Пришлите таблицу с номерами светодиодов и выводами — тогда дам точную маску, номиналы резисторов и готовый код.