ساختار کلی دستور
تعریف دستور SetQ
پارامترها
module: شماره ماژول (0 برای CPU و 1-16 برای کارتهای توسعه)
Output: شماره خروجی (0 تا 5 برای CPU و 0-32 برای کارتهای توسعه)
روشهای استفاده
1- فعال کردن خروجی های منفرد
2- فعال کردن چندین خروجی
مثالهای کاربردی
کنترل موتور
کنترل رله
کنترل چراغها
// فعال کردن چراغ اصلی
void lightMain() {
SetQ(0, 2); // فعال کردن چراغ اصلی (Q0.2)
}
// فعال کردن چراغ نشانگر
void lightIndicator() {
SetQ(0, 3); // فعال کردن چراغ نشانگر (Q0.3)
}
// فعال کردن چراغ هشدار
void lightWarning() {
SetQ(0, 4); // فعال کردن چراغ هشدار (Q0.4)
}
// فعال کردن چراغ اضطراری
void lightEmergency() {
SetQ(0, 5); // فعال کردن چراغ اضطراری (Q0.5)
}
کنترل شرطی
کنترل با تایمر
// کنترل با تایمر
void timedControl() {
static uint32_t startTime = 0;
if (startCondition) {
startTime = espGetTimerTicks();
SetQ(0, 0); // شروع
}
if (espGetTimerTicks() - startTime > 5000) { // 5 ثانیه
// تایمر تمام شده - خروجی در جای دیگری ریست میشود
}
}