Simple Button led toggle example

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);
}
}

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

Hi,yes I need it for a led or relay on/off.
Worked Great Thank you very much.