Ардуино. Переопределение датчика освещенности (LDR) через bluetooth

Это моя схема. введите здесь описание изображения У меня есть фоторезистор, который загорается в темноте. Также я подключил рабочий модуль Bluetooth.

const int ledPin = 13;
const int ldrPin = A0;

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

    pinMode(ledPin, OUTPUT);
    pinMode(ldrPin, INPUT);
}

void loop() {
    int ldrStatus = analogRead(ldrPin);

    if(ldrStatus <= 300) {
        digitalWrite(ledPin, HIGH);
        Serial.println("LDR is DARK, LED is ON");
    }
    else {
        digitalWrite(ledPin, LOW);
        Serial.println("---------------");
    }
}

Моя цель состоит в том, чтобы фоторезистор работал автоматически (как он уже работает) + с помощью приложения Bluetooth для включения / выключения светодиода, когда я решаю, несмотря на резистор (отменяя его функцию), поэтому, когда темно и свет горит, но вы хотите выключить его, просто используйте кнопку «ВЫКЛ» из приложения. Я использую приложение «Arduino Bluetooth» от Circuit Magic, в котором есть 2 кнопки включения/выключения светодиода. Проблема, какой код я должен написать. Вся помощь приветствуется.


person Malphius123    schedule 23.08.2017    source источник


Ответы (1)


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

Вы можете использовать базовый код ЗДЕСЬ и адаптировать его под свои нужды:

void serialEvent() {
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
    // add it to the inputString:
    inputString += inChar;
    // if the incoming character is a newline, set a flag so the main loop can
    // do something about it:
    if (inChar == '\n') {
      stringComplete = true;

      // Here you process the received character and turn the led ON or OFF accordingly

      if (strcmp(inputString, "OFF"))
         digitalWrite(ledPin, LOW);
      else if (strcmp(inputString, "ON"))
         digitalWrite(ledPin, HIGH);
    }
  }
}

Вам нужно будет инициализировать некоторые переменные в вашем коде, чтобы заставить его работать.

Также в вашем коде вы должны поставить некоторую защиту от дребезга, иначе, если значение LDR изменится быстро, ваш светодиод будет мигать мгновенно. Обычно вы хотите иметь некоторую инерцию, чтобы предотвратить это.

person Sembei Norimaki    schedule 23.08.2017