Hi guys,
Please how to convert arduino code to mikroc
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// تعريف المدخلات والمخارج
#define ONE_WIRE_BUS 2
#define BUTTON_MENU 8
#define BUTTON_INC 6
#define BUTTON_DEC 5
#define BUTTON_OK 7
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adresse I2C de l'écran LCD et dimensions
// تعريف المتغيرات العامة
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress sensorAddr;
float setTemp ;
float currentTemp ;
int menuState = 0;
// تعريف الدوال اللازمة
void readTemperature();
void displayTemperature();
void enterMenu();
void increaseTemp();
void decreaseTemp();
void confirmTemp();
void setup() {
// تهيئة البورتات
pinMode(BUTTON_MENU, INPUT_PULLUP);
pinMode(BUTTON_INC, INPUT_PULLUP);
pinMode(BUTTON_DEC, INPUT_PULLUP);
pinMode(BUTTON_OK, INPUT_PULLUP);
pinMode(13, OUTPUT);
// تهيئة الLCD
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Water Temp: ");
// تهيئة المستشعر
sensors.begin();
sensors.getAddress(sensorAddr, 0);
sensors.setResolution(sensorAddr, 12);
Serial.begin(115200);
}
void loop() {
digitalWrite(11, HIGH);
readTemperature();
displayTemperature();
// قراءة الأزرار وتنفيذ الحدث المناسب
switch (menuState) {
case 0:
if (digitalRead(BUTTON_MENU) == LOW) {
enterMenu();
}
break;
case 1:
if (digitalRead(BUTTON_INC) == LOW) {
increaseTemp();
}
else if (digitalRead(BUTTON_DEC) == LOW) {
decreaseTemp();
}
else if (digitalRead(BUTTON_OK) == LOW) {
confirmTemp();
}
break;
}
if (currentTemp >= setTemp) {
Serial.println("Temperature is too high!");
digitalWrite(13, LOW);
digitalWrite(12, LOW);
}
else if (currentTemp < setTemp) {
Serial.println("Temperature is too low!");
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
}
// مقارنة درجة الحرارة المقاسة بالحساس مع القيمة المحددة}
delay(100);
}
void readTemperature() {
sensors.requestTemperatures();
currentTemp = sensors.getTempC(sensorAddr);
if (currentTemp == -127.00) {
Serial.println("Error: Could not read temperature");
}
else {
Serial.print("Temperature: ");
Serial.print(currentTemp);
Serial.println(" C");
}
}
void displayTemperature() {
lcd.setCursor(0, 1);
lcd.print(currentTemp);
lcd.print(" C ");
}
void enterMenu() {
menuState = 1;
lcd.setCursor(0, 0);
lcd.print("Set Temp: ");
lcd.setCursor(0, 1);
lcd.print(setTemp);
}
void increaseTemp() {
setTemp += 1;
lcd.setCursor(0, 1);
lcd.print(setTemp);
}
void decreaseTemp() {
setTemp -= 1;
lcd.setCursor(0, 1);
lcd.print(setTemp);
}
void confirmTemp() {
lcd.setCursor(0, 0);
lcd.print("Water Temp: ");
displayTemperature();
lcd.setCursor(10, 1);
lcd.print(" ");
lcd.print(setTemp);
}
thanks