#include<gpiod.h>#include<iostream>#include<chrono>#include<thread>intmain(){constchar*chipname="gpiochip4";// Raspberry Pi 5 J8 header GPIOsunsignedintline_num=17;// GPIO17 (BCM)gpiod_chip*chip=gpiod_chip_open_by_name(chipname);if(!chip){std::cerr<<"Failed to open GPIO chip\n";return1;}gpiod_line*line=gpiod_chip_get_line(chip,line_num);if(!line){std::cerr<<"Failed to get line\n";gpiod_chip_close(chip);return1;}if(gpiod_line_request_output(line,"gpio_toggle",0)<0){std::cerr<<"Failed to request line as output\n";gpiod_chip_close(chip);return1;}for(inti=0;i<10;++i){gpiod_line_set_value(line,1);std::this_thread::sleep_for(std::chrono::milliseconds(500));gpiod_line_set_value(line,0);std::this_thread::sleep_for(std::chrono::milliseconds(500));}gpiod_line_release(line);gpiod_chip_close(chip);return0;}
importgpiodimporttimeCHIP_NAME="gpiochip4"#OnRaspberryPi5LINE_OFFSET=17#BCMGPIOnumber# Open the GPIO chip and get the linechip=gpiod.Chip(CHIP_NAME)line=chip.get_line(LINE_OFFSET)# Request the line as output (v2.x API)line.request(consumer="python-gpiod",type=gpiod.LINE_REQ_DIR_OUT)# Blink loopfor_inrange(10):line.set_value(1)time.sleep(0.5)line.set_value(0)time.sleep(0.5)line.release()