{"id":3202,"date":"2025-07-29T08:26:44","date_gmt":"2025-07-29T07:26:44","guid":{"rendered":"https:\/\/workboot.fr\/ciela\/?page_id=3202"},"modified":"2025-12-10T10:49:33","modified_gmt":"2025-12-10T09:49:33","slug":"rpi_3-langage-c-et-rpi","status":"publish","type":"page","link":"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/","title":{"rendered":"RPI_3 Langage C"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/Raspberry.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"200\" src=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/Raspberry.jpeg\" alt=\"\" class=\"wp-image-4920\" style=\"width:84px;height:auto\" srcset=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/Raspberry.jpeg 200w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/Raspberry-150x150.jpeg 150w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udd52 : 3 h maximum<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/tux_code.png\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"599\" src=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/tux_code.png\" alt=\"\" class=\"wp-image-4931\" style=\"aspect-ratio:1.502527632593608;width:219px;height:auto\" srcset=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/tux_code.png 900w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/tux_code-300x200.png 300w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/tux_code-768x511.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/a><\/figure>\n<\/div>\n\n\n<nav aria-label=\"Table des mati\u00e8res\" class=\"wp-block-table-of-contents\"><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#prerequis\">Pr\u00e9requis:<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#but\">But:<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#repertoire-du-travail\">R\u00e9pertoire du travail:<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#installation-sur-rpi-normalement-deja-fait\">Installation sur RPI (normalement d\u00e9j\u00e0 fait)<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#sortie-gpio17-et-led-rouge\">Sortie GPIO17 et LED ROUGE<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#saisir-le-code-et-compiler-et-tester\">Saisir le code et compiler et tester<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#utlisation-du-debugger-gdb\">Utlisation du debugger gdb<\/a><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#a-quoi-sert-g\">A quoi sert -g ?<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#proposer-un-moyen-avec-gdb-de-voir-s-allumer-la-led-et-s-eteindre-sous-votre-controle-et-verifier-les-structures-concernant-ce-programme\">Proposer un moyen avec gdb de voir s&rsquo;allumer la led , et s&rsquo;\u00e9teindre sous votre contr\u00f4le et v\u00e9rifier les structures concernant ce programme.<\/a><\/li><\/ol><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#led-qui-alterne\">LED qui alterne<\/a><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#presentation\">Pr\u00e9sentation:<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#proposer-un-schema\">Proposer un sch\u00e9ma<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#proposer-un-code\">Proposer un code <\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#saisir-compiler-tester-le-code\">Saisir , compiler tester le code<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#expliquez-comment-utiliser-gdb-pour-controler-l-allumage-et-l-extinction-des-led\">Expliquez comment utiliser GDB pour contr\u00f4ler l&rsquo;allumage et l&rsquo;extinction des LED<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#donner-les-commandes-qui-permettent-de-realiser-des-sorties\">Donner les commandes qui permettent de r\u00e9aliser des sorties<\/a><\/li><\/ol><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#entree-avec-ils\">Entr\u00e9e avec ILS<\/a><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#saisir-le-code-le-compiler-et-le-tester\">Saisir le code le compiler et le tester<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#proposer-un-moyen-avec-gdb-de-surveiller-gpio27-et-de-controler-gpio17\">Proposer un moyen avec gdb de surveiller GPIO27 et de contr\u00f4ler GPIO17<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#avec-monia-proposer-un-organigramme-et-son-pl\">Avec Monia proposer un organigramme et son PL<\/a><\/li><\/ol><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#resistance-de-rappel-interne\">R\u00e9sistance de rappel interne<\/a><ol><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#justifier-comment-on-peut-supprimer-cette-resistance-externe\">Justifier comment on peut supprimer cette r\u00e9sistance externe.<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#code-c-propose-ils-led-sr-c\">Code C propos\u00e9 , ils_led_sr.c<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#donner-la-commande-qui-a-permis-de-resoudre-le-fait-d-avoir-enleve-la-resistance-externe\">Donner la commande qui a permis de r\u00e9soudre le fait d&rsquo;avoir enlev\u00e9 la resistance externe<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#en-quoi-ce-code-est-ameliore-hormis-la-modification-avec-la-resistance-en-moins\">En quoi ce code est am\u00e9lior\u00e9 hormis la modification avec la r\u00e9sistance en moins.<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#avec-gdb-surveiller-la-reaction-au-ctrl-c-expliquer\">Avec GDB Surveiller la r\u00e9action au ctrl c , expliquer<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#expliquer-avec-gdb\">Expliquer avec gdb<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#avec-monia-donner-les-organigrammes-et-les-pl\">Avec Monia donner les organigrammes et les PL<\/a><\/li><\/ol><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#on-va-utiliser-la-sonde-numerique-saleae\">On va utiliser la sonde num\u00e9rique SALEAE<\/a><\/li><li><a class=\"wp-block-table-of-contents__entry\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#code-blink-gpio17-c-avec-ctrl-c\">Code blink gpio17.c  (avec ctrl c)<\/a><\/li><\/ol><\/nav>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"prerequis\">Pr\u00e9requis:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cours\u00a0<a href=\"https:\/\/workboot.fr\/ciela\/raspberry-pi-2\/\">Raspberry Pi<\/a><\/li>\n\n\n\n<li>Avoir fait&nbsp;<a href=\"https:\/\/workboot.fr\/ciela\/rpi_0-installation\/\">RPI_0&nbsp;<\/a>et disposer d\u2019un Raspberry PI OS64 avec ssh<\/li>\n\n\n\n<li>TP&nbsp;<a href=\"https:\/\/workboot.fr\/ciela\/rpi_0-installation\/\">RPI_0&nbsp;<\/a>et&nbsp;<a href=\"https:\/\/workboot.fr\/ciela\/rpi1\/\">RPI_1<\/a>&nbsp;effectu\u00e9s<\/li>\n\n\n\n<li>cours<a href=\"https:\/\/workboot.fr\/ciela\/langage-c\/\">&nbsp;langage C<\/a> , Ann\u00e9e 1 de la formation<\/li>\n\n\n\n<li>cours&nbsp;<a href=\"https:\/\/workboot.fr\/ciela\/libgpiod\/\">libgpiod<\/a><\/li>\n\n\n\n<li>cours <a href=\"https:\/\/workboot.fr\/ciela\/sigint-en-c\/\">SIGINT<\/a> ctrl c<\/li>\n\n\n\n<li>cours pr\u00e9sentation de la <a href=\"https:\/\/workboot.fr\/ciela\/sonde-numerique-saleae\/\">sonde SALEAE<\/a> vu en co enseignement Physique\/Info<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"but\">But:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mettre en oeuvre un code pilotant les GPIO en langage C, pour les projets<\/li>\n\n\n\n<li>Pull up, pull down<\/li>\n\n\n\n<li>interruption SIGINT<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"repertoire-du-travail\">R\u00e9pertoire du travail:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">~\/Works\/RPI_3<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"installation-sur-rpi-normalement-deja-fait\">Installation sur RPI (normalement d\u00e9j\u00e0 fait)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install gpiod libgpiod-dev libgpiod-doc<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"sortie-gpio17-et-led-rouge\">Sortie GPIO17 et LED ROUGE<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">on reprend le m\u00eame montage, on ne change pas une \u00e9quipe qui gagne!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/Gpio17_LED.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"750\" src=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/Gpio17_LED-1024x750.png\" alt=\"\" class=\"wp-image-2964\" srcset=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/Gpio17_LED-1024x750.png 1024w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/Gpio17_LED-300x220.png 300w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/Gpio17_LED-768x563.png 768w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/Gpio17_LED.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">r\u00e9pertoire: blink , code: blink.c<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;stdio.h>\n#include &lt;unistd.h>\n#include &lt;gpiod.h>\n\nint main() {\n    const char *chipname = \"gpiochip0\";\n    int led_pin = 17; \/\/ BCM17\n    int delay_ms = 500; \/\/ 0.5 seconde\n\n    \/\/ Configuration minimale\n    struct gpiod_chip *chip = gpiod_chip_open_by_name(chipname);\n    struct gpiod_line *led = gpiod_chip_get_line(chip, led_pin);\n    gpiod_line_request_output(led, \"led_blink\", 0);\n\n    printf(\"Clignotement LED GPIO17 (Ctrl+C pour arr\u00eater)\\n\");\n\n    \/\/ Boucle principale simplifi\u00e9e\n    while (1) {\n        gpiod_line_set_value(led, 1); \/\/ Allumer\n        usleep(delay_ms * 1000);\n        gpiod_line_set_value(led, 0); \/\/ \u00c9teindre\n        usleep(delay_ms * 1000);\n    }\n\n    \/\/ Nettoyage (jamais atteint \u00e0 cause de la boucle infinie)\n    gpiod_line_release(led);\n    gpiod_chip_close(chip);\n    return 0;\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"saisir-le-code-et-compiler-et-tester\">Saisir le code et compiler et tester<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">attention : <strong><code>-lgpiod<\/code><\/strong>&nbsp;est l&rsquo;option correcte pour lier (linker) votre programme C avec la biblioth\u00e8que&nbsp;<strong>libgpiod<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gcc -o blink blink.c -lgpiod<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"utlisation-du-debugger-gdb\">Utlisation du debugger gdb<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>gcc -o blink blink.c -lgpiod -g<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"a-quoi-sert-g\">A quoi sert -g ?<\/h3>\n\n\n\n<pre><font color=\"#26A269\"><b>bruno@rpi364<\/b><\/font>:<font color=\"#12488B\"><b>~\/Works\/RPI_2\/langageC\/blink $<\/b><\/font> gcc blink.c -o blink -lgpiod -g\n<font color=\"#26A269\"><b>bruno@rpi364<\/b><\/font>:<font color=\"#12488B\"><b>~\/Works\/RPI_2\/langageC\/blink $<\/b><\/font> gdb blink \n<font color=\"#A347BA\"><b>GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git<\/b><\/font>\nCopyright (C) 2021 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later &lt;http:\/\/gnu.org\/licenses\/gpl.html&gt;\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\nType &quot;show copying&quot; and &quot;show warranty&quot; for details.\nThis GDB was configured as &quot;aarch64-linux-gnu&quot;.\nType &quot;show configuration&quot; for configuration details.\nFor bug reporting instructions, please see:\n&lt;https:\/\/www.gnu.org\/software\/gdb\/bugs\/&gt;.\nFind the GDB manual and other documentation resources online at:\n    &lt;http:\/\/www.gnu.org\/software\/gdb\/documentation\/&gt;.\n\nFor help, type &quot;help&quot;.\nType &quot;apropos word&quot; to search for commands related to &quot;word&quot;...\nReading symbols from <font color=\"#26A269\">blink<\/font>...\n(gdb) l\n1       <font color=\"#12488B\"><b>#include<\/b><\/font> <font color=\"#C01C28\">&lt;stdio.h&gt;<\/font>\n2       <font color=\"#12488B\"><b>#include<\/b><\/font> <font color=\"#C01C28\">&lt;unistd.h&gt;<\/font>\n3       <font color=\"#12488B\"><b>#include<\/b><\/font> <font color=\"#C01C28\">&lt;gpiod.h&gt;<\/font>\n4\n5       <font color=\"#26A269\">int<\/font> <b>main<\/b><font color=\"#C01C28\">()<\/font> <font color=\"#C01C28\">{<\/font>\n6           <font color=\"#12488B\"><b>const<\/b><\/font> <font color=\"#26A269\">char<\/font> <font color=\"#C01C28\">*<\/font>chipname <font color=\"#C01C28\">=<\/font> <font color=\"#C01C28\">&quot;gpiochip0&quot;;<\/font>\n7           <font color=\"#26A269\">int<\/font> led_pin <font color=\"#C01C28\">=<\/font> <font color=\"#A347BA\">17<\/font><font color=\"#C01C28\">;<\/font> <font color=\"#2AA1B3\">\/\/ BCM17<\/font>\n8           <font color=\"#26A269\">int<\/font> delay_ms <font color=\"#C01C28\">=<\/font> <font color=\"#A347BA\">500<\/font><font color=\"#C01C28\">;<\/font> <font color=\"#2AA1B3\">\/\/ 0.5 seconde<\/font>\n9\n10          <font color=\"#2AA1B3\">\/\/ Configuration minimale<\/font>\n(gdb) \n<span style=\"background-color:#26A269\"><font color=\"#171421\">[albert] 0:bash  1:bash  2:bash  3:bash  4:bash <\/font><\/span><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"proposer-un-moyen-avec-gdb-de-voir-s-allumer-la-led-et-s-eteindre-sous-votre-controle-et-verifier-les-structures-concernant-ce-programme\">Proposer un moyen avec gdb de voir s&rsquo;allumer la led , et s&rsquo;\u00e9teindre sous votre contr\u00f4le et v\u00e9rifier les structures concernant ce programme.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On va rajouter une LED sur <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"led-qui-alterne\">LED qui alterne<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">R\u00e9pertoire: alterne , code: alterne.c<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"presentation\">Pr\u00e9sentation:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">on va garder la led rouge qui est sur GPIO17, on va ajouter une LED Verte sur GPIO22 avec sa r\u00e9sistance en s\u00e9rie !<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"proposer-un-schema\">Proposer un sch\u00e9ma<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"proposer-un-code\">Proposer un code <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Vous devez savoir r\u00e9aliser cela . La solution est donn\u00e9e si besoin<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Solution: alterne.c<\/summary>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;gpiod.h>\n#include &lt;unistd.h>\n#include &lt;stdio.h>\n\n#define GPIO_LED1 17  \/\/ BCM17 (broche physique 11)\n#define GPIO_LED2 22  \/\/ BCM22 (broche physique 15)\n#define CHIPNAME \"gpiochip0\"\n#define DELAY_MS 500  \/\/ 0.5 seconde\n\nint main() {\n    \/\/ 1. Initialisation\n    struct gpiod_chip *chip = gpiod_chip_open_by_name(CHIPNAME);\n    struct gpiod_line *led1 = gpiod_chip_get_line(chip, GPIO_LED1);\n    struct gpiod_line *led2 = gpiod_chip_get_line(chip, GPIO_LED2);\n    \n    \/\/ Configuration en sortie\n    gpiod_line_request_output(led1, \"LED1\", 0);  \/\/ \u00c9teinte au d\u00e9part\n    gpiod_line_request_output(led2, \"LED2\", 1);  \/\/ Allum\u00e9e au d\u00e9part\n\n    \/\/ 2. Boucle d'alternance\n    printf(\"Alternance GPIO17\/GPIO22 (Ctrl+C pour arr\u00eater)\\n\");\n    while (1) {\n        gpiod_line_set_value(led1, 1);  \/\/ LED1 ON\n        gpiod_line_set_value(led2, 0);  \/\/ LED2 OFF\n        usleep(DELAY_MS * 1000);\n        \n        gpiod_line_set_value(led1, 0);  \/\/ LED1 OFF\n        gpiod_line_set_value(led2, 1);  \/\/ LED2 ON\n        usleep(DELAY_MS * 1000);\n    }\n\n    \/\/ 3. Nettoyage (inaccessible ici \u00e0 cause de la boucle infinie)\n    gpiod_line_release(led1);\n    gpiod_line_release(led2);\n    gpiod_chip_close(chip);\n    return 0;\n}<\/pre>\n<\/details>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"saisir-compiler-tester-le-code\">Saisir , compiler tester le code<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"expliquez-comment-utiliser-gdb-pour-controler-l-allumage-et-l-extinction-des-led\"><strong>Expliquez comment utiliser GDB pour contr\u00f4ler l&rsquo;allumage et l&rsquo;extinction des LED<\/strong><\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"donner-les-commandes-qui-permettent-de-realiser-des-sorties\">Donner les commandes qui permettent de r\u00e9aliser des sorties<\/h3>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"entree-avec-ils\">Entr\u00e9e avec ILS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Montage 2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GPIO27 en entr\u00e9e , GPIO17 en sortie<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/reed_led.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"738\" src=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/reed_led-1024x738.png\" alt=\"\" class=\"wp-image-3041\" srcset=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/reed_led-1024x738.png 1024w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/reed_led-300x216.png 300w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/reed_led-768x553.png 768w, https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/07\/reed_led.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">R\u00e9pertoire: ils_led , code: ils_led.c<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;gpiod.h>\n#include &lt;stdio.h>\n#include &lt;unistd.h> \/\/ pour usleep()\n#define GPIO_CHIP    \"gpiochip0\"  \/\/ Nom du contr\u00f4leur GPIO\n#define GPIO_INPUT   27           \/\/ GPIO27 en entr\u00e9e (ILS)\n#define GPIO_OUTPUT  17           \/\/ GPIO17 en sortie\n#define DELAY_MS     50           \/\/ D\u00e9lai de lecture (en ms)\nint main() {\n    struct gpiod_chip *chip;\n    struct gpiod_line *input_line, *output_line;\n    int input_state;\n    \/\/ 1. Initialisation du GPIO\n    chip = gpiod_chip_open_by_name(GPIO_CHIP);\n    if (!chip) {\n        perror(\"Erreur d'ouverture du chip GPIO\");\n        return EXIT_FAILURE;\n    }\n    \/\/ 2. Configuration des broches\n    input_line = gpiod_chip_get_line(chip, GPIO_INPUT);\n    output_line = gpiod_chip_get_line(chip, GPIO_OUTPUT);\n    if (!input_line || !output_line) {\n        perror(\"Erreur de configuration des broches\");\n        gpiod_chip_close(chip);\n        return EXIT_FAILURE;\n    }\n    \/\/ GPIO27 en entr\u00e9e (avec r\u00e9sistance de rappel externe au +3.3V)\n    gpiod_line_request_input(input_line, \"ils-input\");\n    \/\/ GPIO17 en sortie\n    gpiod_line_request_output(output_line, \"led-output\", 0);\n    printf(\"D\u00e9marrage de la copie GPIO%d \u2192 GPIO%d (CTRL+C pour arr\u00eater)\\n\", GPIO_INPUT, GPIO_OUTPUT);\n    \/\/ 3. Boucle principale\n    while (1) {\n        \/\/ Lecture de l'\u00e9tat de l'ILS (0=ouvert, 1=ferm\u00e9)\n        input_state = gpiod_line_get_value(input_line);\n        \/\/ Copie vers la sortie\n        gpiod_line_set_value(output_line, input_state);\n        \/\/ Petite pause pour \u00e9viter la surcharge CPU\n        usleep(DELAY_MS * 1000);\n    }\n    \/\/ 4. Nettoyage (jamais atteint ici \u00e0 cause de la boucle infinie)\n    gpiod_line_release(input_line);\n    gpiod_line_release(output_line);\n    gpiod_chip_close(chip);\n    return EXIT_SUCCESS;\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"saisir-le-code-le-compiler-et-le-tester\">Saisir le code le compiler et le tester<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"proposer-un-moyen-avec-gdb-de-surveiller-gpio27-et-de-controler-gpio17\">Proposer un moyen avec gdb de surveiller GPIO27 et de contr\u00f4ler GPIO17<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"avec-monia-proposer-un-organigramme-et-son-pl\">Avec Monia proposer un organigramme et son PL<\/h3>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"resistance-de-rappel-interne\">R\u00e9sistance de rappel interne<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">on va garder le m\u00eame montage mais on va le simplifier en ajoutant un peu de code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">on supprime la r\u00e9sistance externe  et on laisse l&rsquo;ILS .<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comme d\u00e9j\u00e0 \u00e9tudi\u00e9 pr\u00e9c\u00e9demment .<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"justifier-comment-on-peut-supprimer-cette-resistance-externe\">Justifier comment on peut supprimer cette r\u00e9sistance externe.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">comment faire si on la supprime.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"code-c-propose-ils-led-sr-c\">Code C propos\u00e9 , ils_led_sr.c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">besoin de<a href=\"https:\/\/workboot.fr\/ciela\/sigint-en-c\/\"> sigint en C<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">r\u00e9pertoire: ilsredsrc , code : ils_led_sr.c<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;gpiod.h>\n#include &lt;stdlib.h>\n#include &lt;stdio.h>\n#include &lt;unistd.h>\n#include &lt;signal.h>\n\n#define GPIO_CHIP    \"gpiochip0\"\n#define GPIO_ILS     27      \/\/ GPIO27 en entr\u00e9e (ILS au +3.3V)\n#define GPIO_SORTIE  17      \/\/ GPIO17 en sortie\n#define DELAY_MS     50      \/\/ D\u00e9lai de lecture\n\nvolatile sig_atomic_t stop = 0;\n\n\/* interruption SIGINT ctrl c *\/\nvoid handle_sigint(int sig) {\n    printf(\"\\nInterception CTRL+C\\n\");  \/\/ Debug visible\n    stop = 1;\n}\n\nint main() {\n    struct gpiod_chip *chip;\n    struct gpiod_line *ils, *sortie;\n    struct gpiod_line_request_config cfg_ils = {\n        .consumer = \"ILS\",\n        .request_type = GPIOD_LINE_REQUEST_DIRECTION_INPUT,\n        .flags = GPIOD_LINE_REQUEST_FLAG_BIAS_PULL_DOWN  \/\/ Pull-down interne\n    };\n\n    \/\/ 1. Initialisation GPIO\n    chip = gpiod_chip_open_by_name(GPIO_CHIP);\n    if (!chip) {\n        perror(\"Erreur ouverture chip GPIO\");\n        return EXIT_FAILURE;\n    }\n\n    \/\/ 2. Configuration entr\u00e9e (ILS) avec pull-down\n    ils = gpiod_chip_get_line(chip, GPIO_ILS);\n    if (!ils || gpiod_line_request(ils, &amp;cfg_ils, 0)) {\n        perror(\"Erreur configuration ILS\");\n        gpiod_chip_close(chip);\n        return EXIT_FAILURE;\n    }\n\n    \/\/ 3. Configuration sortie\n    sortie = gpiod_chip_get_line(chip, GPIO_SORTIE);\n    if (!sortie || gpiod_line_request_output(sortie, \"sortie\", 0)) {\n        perror(\"Erreur configuration sortie\");\n        gpiod_line_release(ils);\n        gpiod_chip_close(chip);\n        return EXIT_FAILURE;\n    }\n\n    \/\/ 4. Gestion CTRL+C\n    signal(SIGINT, handle_sigint);\n\n    printf(\"Monitoring ILS sur GPIO%d \u2192 Sortie GPIO%d\\n\", GPIO_ILS, GPIO_SORTIE);\n    printf(\"Sch\u00e9ma : ILS(+3.3V) \u2192 GPIO%d | Pull-down interne activ\u00e9\\n\", GPIO_ILS);\n\n    \/\/ 5. Boucle principale\n    while (!stop) {\n        int etat = gpiod_line_get_value(ils);\n        gpiod_line_set_value(sortie, etat);\n        usleep(DELAY_MS * 1000);\n    }\n\n    \/\/ 6. Nettoyage\n    gpiod_line_release(ils);\n    gpiod_line_release(sortie);\n    gpiod_chip_close(chip);\n    printf(\"\\nArr\u00eat propre\\n\");\n\n    return EXIT_SUCCESS;\n}<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"donner-la-commande-qui-a-permis-de-resoudre-le-fait-d-avoir-enleve-la-resistance-externe\">Donner la commande qui a permis de r\u00e9soudre le fait d&rsquo;avoir enlev\u00e9 la resistance externe<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"en-quoi-ce-code-est-ameliore-hormis-la-modification-avec-la-resistance-en-moins\">En quoi ce code est am\u00e9lior\u00e9 hormis la modification avec la r\u00e9sistance en moins.<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"avec-gdb-surveiller-la-reaction-au-ctrl-c-expliquer\">Avec GDB Surveiller la r\u00e9action au ctrl c , expliquer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">sous gdb , quand on fait ctrl c (^c),  c&rsquo;est gdb qui r\u00e9pond !! et pas notre code!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">donc il faut dire a gdb de ne pas r\u00e9agir a ctrl c , avec la commande<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">handle SIGINT nostop noprint pass<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ce qui nous permettra ensuite de mettre un point d&rsquo;arr\u00eat ligne 16 pour s\u2019arr\u00eater dans la fonction <strong>void handle_sigint(int sig)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">interruption provoqu\u00e9e par le ctrl c (SIGINT)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"expliquer-avec-gdb\">Expliquer avec gdb<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"avec-monia-donner-les-organigrammes-et-les-pl\">Avec Monia donner les organigrammes et les PL<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"on-va-utiliser-la-sonde-numerique-saleae\">On va utiliser la <a href=\"https:\/\/workboot.fr\/ciela\/sonde-numerique-saleae\/\">sonde num\u00e9rique SALEAE<\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">on va utiliser la sonde SALEAE pour relever les signaux GPIO27 et GPIO17<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ch0: GPIO17<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ch1: GPIO27<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ne pas oublier de brancher la masse (GND)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"code-blink-gpio17-c-avec-ctrl-c\">Code blink gpio17.c  (avec ctrl c)<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/********************************\/\n\/* Blink GPIO17 Libgpiod 1.6    *\/\n\/********************************\/\n\n#include &lt;gpiod.h>\n#include &lt;stdio.h>\n#include &lt;stdlib.h>\n#include &lt;unistd.h>\n#include &lt;signal.h>\n\nstruct gpiod_line *led_line = NULL; \/* D\u00e9clar\u00e9 global pour le gestionnaire de signal *\/\n\n\/* G\u00e8re Ctrl+C pour \u00e9teindre la LED et lib\u00e9rer les GPIO *\/\nvoid signal_handler(int signo) \n{\n    if (signo == SIGINT) {\n        printf(\"\\nExtinction et nettoyage...\\n\");\n        if (led_line) {\n            gpiod_line_set_value(led_line, 0); \/* \u00c9teint la LED   *\/\n            gpiod_line_release(led_line);      \/* Lib\u00e8re la ligne *\/\n        }\n        exit(EXIT_SUCCESS);\n    }\n}\n\n\/*************************************************************************\/\nint main() \n{\n    const char *chipname = \"gpiochip0\";\n    const int led_pin = 17; \/* GPIO17, broche physique 11 *\/\n\n    \/* 1. OUVERTURE du chip *\/\n    struct gpiod_chip *chip = gpiod_chip_open_by_name(chipname);\n    if (!chip) \n    \t{\n        perror(\"Erreur ouverture chip\");\n        return EXIT_FAILURE;\n    \t}\n\n    \/* 2. CONFIGURATION de la ligne en SORTIE *\/\n    led_line = gpiod_chip_get_line(chip, led_pin);\n    if (!led_line) \n    \t{\n        perror(\"Erreur obtention ligne\");\n        gpiod_chip_close(chip);\n        return EXIT_FAILURE;\n    \t}\n    \/* Valeur initiale = 0 (LED \u00e9teinte au d\u00e9marrage) *\/\n    if (gpiod_line_request_output(led_line, \"blink_app\", 0) &lt; 0) \n    \t{\n        perror(\"Erreur configuration sortie\");\n        gpiod_chip_close(chip);\n        return EXIT_FAILURE;\n    \t}\t\n\n    signal(SIGINT, signal_handler); \/* Capture signal Ctrl+C *\/\n    printf(\"LED clignotante (GPIO%d). Ctrl+C pour arr\u00eater.\\n\", led_pin);\n\n    \/* 3. UTILISATION : Boucle de lecture\/\u00e9criture *\/\n    while (1) \n    {\n        gpiod_line_set_value(led_line, 1); \/* Allume *\/\n        printf(\"\u00c9tat: ON\\n\");\n        sleep(1);\n        gpiod_line_set_value(led_line, 0); \/* \u00c9teint *\/\n        printf(\"\u00c9tat: OFF\\n\");\n        sleep(1);\n    }\n\n    \/* 4. NETTOYAGE (en principe jamais atteint \u00e0 cause de la boucle infinie)\n       Le gestionnaire de signal `signal_handler` s'en charge.\n       gpiod_chip_close(chip); \/\/ Serait \u00e0 faire ici si pas de boucle infinie *\/\n    return EXIT_SUCCESS;\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udd52 : 3 h maximum Pr\u00e9requis: But: R\u00e9pertoire du travail: ~\/Works\/RPI_3 Installation sur RPI (normalement d\u00e9j\u00e0 fait) Sortie GPIO17 et LED ROUGE on reprend le m\u00eame montage, on ne change [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-3202","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>RPI_3 Langage C - workboot<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RPI_3 Langage C - workboot\" \/>\n<meta property=\"og:description\" content=\"\ud83d\udd52 : 3 h maximum Pr\u00e9requis: But: R\u00e9pertoire du travail: ~\/Works\/RPI_3 Installation sur RPI (normalement d\u00e9j\u00e0 fait) Sortie GPIO17 et LED ROUGE on reprend le m\u00eame montage, on ne change [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/\" \/>\n<meta property=\"og:site_name\" content=\"workboot\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-10T09:49:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/Raspberry.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"200\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/rpi_3-langage-c-et-rpi\\\/\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/rpi_3-langage-c-et-rpi\\\/\",\"name\":\"RPI_3 Langage C - workboot\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/rpi_3-langage-c-et-rpi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/rpi_3-langage-c-et-rpi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/Raspberry.jpeg\",\"datePublished\":\"2025-07-29T07:26:44+00:00\",\"dateModified\":\"2025-12-10T09:49:33+00:00\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/workboot.fr\\\/ciela\\\/rpi_3-langage-c-et-rpi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/rpi_3-langage-c-et-rpi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/Raspberry.jpeg\",\"contentUrl\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/Raspberry.jpeg\",\"width\":200,\"height\":200},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#website\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/\",\"name\":\"workboot\",\"description\":\"Open Source, Open Minds \",\"publisher\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#organization\",\"name\":\"workboot\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/logo_ciel-dorian-1.png\",\"contentUrl\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/logo_ciel-dorian-1.png\",\"width\":1024,\"height\":950,\"caption\":\"workboot\"},\"image\":{\"@id\":\"https:\\\/\\\/workboot.fr\\\/ciela\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RPI_3 Langage C - workboot","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/","og_locale":"fr_FR","og_type":"article","og_title":"RPI_3 Langage C - workboot","og_description":"\ud83d\udd52 : 3 h maximum Pr\u00e9requis: But: R\u00e9pertoire du travail: ~\/Works\/RPI_3 Installation sur RPI (normalement d\u00e9j\u00e0 fait) Sortie GPIO17 et LED ROUGE on reprend le m\u00eame montage, on ne change [&hellip;]","og_url":"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/","og_site_name":"workboot","article_modified_time":"2025-12-10T09:49:33+00:00","og_image":[{"width":200,"height":200,"url":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/Raspberry.jpeg","type":"image\/jpeg"}],"twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/","url":"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/","name":"RPI_3 Langage C - workboot","isPartOf":{"@id":"https:\/\/workboot.fr\/ciela\/#website"},"primaryImageOfPage":{"@id":"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#primaryimage"},"image":{"@id":"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#primaryimage"},"thumbnailUrl":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/Raspberry.jpeg","datePublished":"2025-07-29T07:26:44+00:00","dateModified":"2025-12-10T09:49:33+00:00","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/workboot.fr\/ciela\/rpi_3-langage-c-et-rpi\/#primaryimage","url":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/Raspberry.jpeg","contentUrl":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/11\/Raspberry.jpeg","width":200,"height":200},{"@type":"WebSite","@id":"https:\/\/workboot.fr\/ciela\/#website","url":"https:\/\/workboot.fr\/ciela\/","name":"workboot","description":"Open Source, Open Minds ","publisher":{"@id":"https:\/\/workboot.fr\/ciela\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/workboot.fr\/ciela\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/workboot.fr\/ciela\/#organization","name":"workboot","url":"https:\/\/workboot.fr\/ciela\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/workboot.fr\/ciela\/#\/schema\/logo\/image\/","url":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/05\/logo_ciel-dorian-1.png","contentUrl":"https:\/\/workboot.fr\/ciela\/wp-content\/uploads\/2025\/05\/logo_ciel-dorian-1.png","width":1024,"height":950,"caption":"workboot"},"image":{"@id":"https:\/\/workboot.fr\/ciela\/#\/schema\/logo\/image\/"}}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/workboot.fr\/ciela\/author\/admin\/"},"uagb_comment_info":0,"uagb_excerpt":"\ud83d\udd52 : 3 h maximum Pr\u00e9requis: But: R\u00e9pertoire du travail: ~\/Works\/RPI_3 Installation sur RPI (normalement d\u00e9j\u00e0 fait) Sortie GPIO17 et LED ROUGE on reprend le m\u00eame montage, on ne change [&hellip;]","_links":{"self":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/3202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/comments?post=3202"}],"version-history":[{"count":60,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/3202\/revisions"}],"predecessor-version":[{"id":5726,"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/pages\/3202\/revisions\/5726"}],"wp:attachment":[{"href":"https:\/\/workboot.fr\/ciela\/wp-json\/wp\/v2\/media?parent=3202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}