mod30
#1
I’m able to run examples.
Can anyone help me for a simple toggle button here?
I want the led on off toggle here.
void loop() {
lv_task_handler(); /* let the GUI do its work */
delay(5);
}
static void event_handler(lv_obj_t * obj, lv_event_t event)
{
if(event == LV_EVENT_VALUE_CHANGED && LV_ANIM_ON) {
digitalWrite(LED,HIGH);
}
else if(event == LV_EVENT_VALUE_CHANGED && LV_ANIM_OFF) {
digitalWrite(LED,LOW);
}
}
tarvik
#2
Are you trying to toggle a button on/off and have it control an LED via GPIO?
// global
lv_obj_t *btn = lv_btn_create(lv_scr_act(), NULL);
lv_btn_set_toggle(btn, true);
// insert styling/position/etc
lv_obj_set_event_cb(btn, event_handler);
...
static void event_handler(lv_obj_t *obj, lv_event_t event) {
if (event == LV_EVENT_CLICKED) {
switch(lv_btn_get_state(obj)) {
case LV_BTN_STYLE_REL:
case LV_BTN_STYLE_PR:
digitalWrite(LED,HIGH);
break;
case LV_BTN_STYLE_TGL_REL:
case LV_BTN_STYLE_TGL_PR:
digitalWrite(LED,LOW);
break;
default:
// ???
break;
}
}
}
I prefer the CLICKED event as it filters out other events such as PRESSED/LONG_PRESSED. I think this should accomplish what you’re trying to do.
2 Likes
mod30
#3
Hi,yes I need it for a led or relay on/off.
Worked Great Thank you very much.