Professional Documents
Culture Documents
Wolf 2
Wolf 2
h>
#include <semphr.h>
SemaphoreHandle_t xSerialSemaphore;
void setup() {
Serial.begin(9600);
if ( xSerialSemaphore == NULL )
{
xSerialSemaphore = xSemaphoreCreateMutex();
if ( ( xSerialSemaphore ) != NULL )
xSemaphoreGive( ( xSerialSemaphore ) );
}
xTaskCreate(
TaskLDR
, (const portCHAR *)"LDRRead"
, 128
, NULL
, 2
, NULL );
xTaskCreate(
TaskSR
, (const portCHAR *) "SRRead"
, 128
, NULL
, 1
, NULL );
}
void loop()
{
}
void TaskLDR( void *pvParameters __attribute__((unused)) )
{
int LIGHT = 7;
int RELAY = 12;
pinMode(LIGHT, INPUT);
pinMode(RELAY, OUTPUT);
for (;;)
{
// read the input pin:
int L = digitalRead(LIGHT);
if(L == 1){
Serial.println(" light is ON");
digitalWrite(RELAY,LOW);
}else{
vTaskDelay(1);
}
}
for (;;)
{
pinStatus = digitalRead(PIR);
if (pinStatus == HIGH) {
if (pirState == LOW) {
digitalWrite(RELAY, LOW);
pirState= HIGH;
}
}
else
{
if (pirState == HIGH) {
digitalWrite(RELAY, HIGH);
pirState = LOW;
}
}
}
}