2017-08-23 4 views
0

Dies ist meine Schaltung. enter image description here Ich habe einen Fotowiderstand, der bei Dunkelheit aufleuchtet. Ich habe auch ein funktionierendes Bluetooth Modul angeschlossen.Arduino. Overriding Lichtsensor (LDR) durch 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("---------------"); 
    } 
} 

Mein Ziel ist es für die photoresistor automatisch zu arbeiten (wie es bereits der Fall ist) + Bluetooth-Anwendung schalten die LED ein/aus, wenn ich trotz des Widerstands entscheiden (überschreibt seine Funktion), so dass, wenn es dunkel ist und das Licht ist an, aber Sie möchten es ausschalten, verwenden Sie einfach den "OFF" -Button aus der Anwendung. Ich verwende "Arduino Bluetooth" App von Circuit Magic, die 2 Tasten an/aus für die LED hat. Das Problem welchen Code ich schreiben sollte. Alle Hilfe wird geschätzt.

Antwort

0

Sie müssen die in der seriellen Schnittstelle empfangenen Zeichen lesen.

können Sie verwenden den Basiscode HERE und passen es an Ihre Bedürfnisse:

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); 
    } 
    } 
} 

Sie werden einige Variablen im Code initialisiert werden müssen, damit es funktioniert.

Auch in Ihrem Code sollten Sie einige Anti-Bouncing-Schutz, sonst wenn der LDR-Wert schnell ändert blinkt Ihre LED sofort. Normalerweise möchten Sie etwas Trägheit haben, um dies zu verhindern.