#include <Arduino_FreeRTOS.h>
#define echoPin 2
#define trigPin 3
long duration;
int distance;
const int sensorMin = 0;
const int sensorMax = 500;
const int LED1 = 11, LED2 = 12;
void setup() {
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
xTaskCreate(Task1, "HC-SR04 sensor", 100, NULL, 1, NULL);
xTaskCreate(Task2, "Photoresistor", 100, NULL, 0, NULL);
xTaskCreate(Task3, "Communication", 100, NULL, 2, NULL);
}
static void Task1(void* pvParameters) {
while (1) {
digitalWrite(trigPin, LOW); delay(100);
digitalWrite(trigPin, HIGH); delay(100);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.println("Mesafe: ");
Serial.print(distance);
Serial.println(" cm");
digitalWrite(LED1, 1); digitalWrite(LED2, 0);
vTaskDelay(800 / portTICK_PERIOD_MS);
}
}
static void Task2(void* pvParameters) {
while (1) {
int sensorReading = analogRead(A0);
int menzil = map(sensorReading, sensorMin, sensorMax, 0, 3);
Serial.println("Menzil: ");
Serial.print(menzil);
Serial.println(" lux \n");
digitalWrite(LED1, 0); digitalWrite(LED2, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
static void Task3(void* pvParameters) {
while (1) {
Serial.println(F("HC-SR04 sensor - Task1"));
Serial.println(F("Photoresistor - Task2"));
vTaskDelay(4000 / portTICK_PERIOD_MS);
}
}
void loop() {}