Ошибка компиляции светодиода и переключателя Arduino 101

По какой-то причине я получаю сообщение об ошибке в строке 9 (digitalWrite(Sender, HIGH);), и я просто не могу понять, почему. Моя цель — иметь два набора шаблонов мигания, по одному для каждого состояния переключателя. Я не знаю, насколько это важно, но я использую Arduino 101. Это также мой первый день программирования, поэтому ответ может смотреть мне прямо в нос (на самом деле, я бы предпочел это, ха-ха). Спасибо, что уделили время!

// Начинаем с объявления целых чисел
int Sender = 2; // Выключаем второй контакт
int LedG = 10; // Зеленый светодиод на десятом контакте
int LedR = 11; // Красный светодиод на одиннадцатом контакте
int Reader = 12;  // Переключаем вход на двенадцатом контакте
//настраиваем ввод-вывод
pinMode(Sender = OUTPUT); // Установка вывода два на выход
pinMode(Reader = INPUT); // Установка контакта 12 для чтения данных переключателя
digitalWrite(Sender, HIGH); //Сделаем второй контакт горячим
//основной цикл
void loop() {
  if (digitalRead (Reader) == HIGH) { // если вход Switch считывается, то делаем шаблон A
    digitalWrite(LedG, HIGH); //включаем зеленый светодиод
    delay(50); //задержка следующей инструкции
    digitalWrite(LedG, LOW); //выключаем зеленый светодиод
    digitalWrite(LedR, HIGH); //включаем красный светодиод
    delay(50); //задержка следующей инструкции
    digitalWrite(LedR, LOW); //выключаем красный светодиод
  }
  else { //если вход переключателя отключен, то воспроизводится шаблон b
    digitalWrite(LedR, HIGH); //включаем красный светодиод
    delay(1000); //задержка следующей инструкции
    digitalWrite(LedR, LOW); //выключаем красный светодиод
    digitalWrite(LedG, HIGH); //включаем зеленый светодиод
    delay(1000); //задержка следующей инструкции
    digitalWrite(LedG, LOW); //выключаем зеленый светодиод
  }
}

, 👍1


1 ответ


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

3

Я заметил, что ваши вызовы функций pinMode не совсем корректны:

pinMode(Sender = OUTPUT); // Установка вывода два на выход
pinMode(Reader = INPUT); // Установка контакта 12 для чтения данных переключателя

Должно быть:

pinMode(Sender, OUTPUT); // Установка вывода два на выход
pinMode(Reader, INPUT); // Установка контакта 12 для чтения данных переключателя

Для получения дополнительной информации обратитесь к https://www.arduino.cc/en/Reference/PinMode.

И весь раздел, в котором вы настраиваете ввод-вывод, должен быть заключен в функцию setup().

//настройка ввода/вывода
void setup()
{
    pinMode(Sender, OUTPUT); // Установка вывода два на выход
    pinMode(Reader, INPUT); // Установка контакта 12 для чтения данных переключателя
    digitalWrite(Sender, HIGH); //Сделаем второй контакт горячим
}
,

Кстати, мой оператор if, похоже, работает неправильно. Является ли (if (digitalRead (Reader) == HIGH)) правильным способом проверить правильность ввода?, @Canada Man

Неважно, извини., @Canada Man