//Juwandito Rajendra Wrahatnolo
//D400200105
//Tugas Modul 2 SEM
#include <Arduino_FreeRTOS.h>
#include<Ultrasonic.h>
#include <LiquidCrystal_I2C.h>
Ultrasonic ultrasonic(9, 8);
LiquidCrystal_I2C lcd (0x27, 16, 2);
int jarak;
int tampilanmillis;
void Taskultrasonic(void *pvParameters);
void Taskmillis(void *pvParameters);
void Tasklcd(void *pvParameters);
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(9600);
xTaskCreate( Taskultrasonic , "ultrasonic", 128, NULL, 1, NULL);
xTaskCreate(Taskmillis, "millis", 128, NULL, 1, NULL);
xTaskCreate( Tasklcd , "lcd", 128, NULL, 1, NULL);
}
void loop() {}
void Taskultrasonic(void *pvParameters) {
(void) pvParameters;
for (;;)
{
jarak = ultrasonic.read();
Serial.print("jarak in CM: ");
Serial.println(jarak);
delay(100);
} vTaskDelay(1);
}
void Taskmillis (void *pvParameters) {
(void) pvParameters;
for (;;)
{
tampilanmillis = millis();
Serial.println(tampilanmillis);
delay(100);
} vTaskDelay(1);
}
void Tasklcd (void *pvParameters){
(void) pvParameters;
for(;;)
{
unsigned long milis=millis();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Jarak :");
lcd.setCursor(8, 0);
lcd.print(jarak);
lcd.setCursor(12, 0);
lcd.print("cm");
lcd.setCursor(0, 1);
lcd.print("Millis : ");
lcd.setCursor(10, 1);
lcd.print(milis);
delay(1000);
}
vTaskDelay(1);
}