{"id":1823,"date":"2022-12-21T13:50:20","date_gmt":"2022-12-21T12:50:20","guid":{"rendered":"http:\/\/lesmrdtrucs.mataf35400.fr\/?page_id=1823"},"modified":"2022-12-21T22:23:05","modified_gmt":"2022-12-21T21:23:05","slug":"guirlande-de-noel","status":"publish","type":"page","link":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/guirlande-de-noel\/","title":{"rendered":"Guirlande de No\u00ebl"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1823\" class=\"elementor elementor-1823\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4e24fd69 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4e24fd69\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-74c63adc\" data-id=\"74c63adc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-156fa9cf elementor-widget elementor-widget-text-editor\" data-id=\"156fa9cf\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>Ce MrdProgramme pour Raspberry permet de faire clignoter plusieurs guirlandes fixes \u00e0 l&rsquo;origine en code Morse.<br \/>Dans sa version actuelle, il ne n\u00e9cessite rien de sp\u00e9cial, mais peut servir d&rsquo;exemple simple pour le multithreading (un thread par guirlande).<br \/>Comme les guirlandes consomment plus que les sorties GPIO ne peuvent en donner (16mA par sortie), j&rsquo;ai ajout\u00e9 un ampli \u00e0 base de transistor pour la puissance.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4e53ee1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4e53ee1\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4aa04d0\" data-id=\"4aa04d0\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e46dc37 elementor-widget elementor-widget-text-editor\" data-id=\"e46dc37\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h3>Objectifs:<\/h3>\n<ul>\n<li>Faire clignoter une guirlande<\/li>\n<li>Emettre de code Morse sur les sorties GPIO<\/li>\n<li>utiliser les threads<\/li>\n<\/ul>\n<h3>Pr\u00e9requis:<\/h3>\n<ul>\n<li>Raspberry Pi<\/li>\n<li>qq composants \u00e9lectroniques (une r\u00e9sistance 330 Ohm et un transistor 2N222 par guirlande)<br><\/li>\n<\/ul>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5d300bf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5d300bf\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1c13d4b\" data-id=\"1c13d4b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c284465 elementor-widget elementor-widget-text-editor\" data-id=\"c284465\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h3>Les programmes utilis\u00e9s sur le PC pour agir sur le Pi:<\/h3><ul><li style=\"list-style-type: none;\"><ul><li>Pour se connecter en mode console au Pi. au choix:<ul><li>Bitvise (pour se connecter &amp; transf\u00e9rer des fichiers entre le PC &amp; le Pi) Utilisateur: pi\u00a0\u00a0 Mdp: raspberry<\/li><li>Putty (pour se connecter) + Client FileZilla (pour transf\u00e9rer des fichiers entre le PC &amp; le Pi). Utilisateur: pi\u00a0\u00a0 Mdp: raspberry<\/li><\/ul><\/li><li>TightVnc (sur le PC) en option pour prendre la main sur le Pi. Mdp: MrdVnc<\/li><\/ul><\/li><\/ul><h3>Etape 1: Cr\u00e9ation de la carte SD avec Raspbian Strech dessus<\/h3><p>En 12\/2022, c&rsquo;est ce qu&rsquo;il y avait de mieux.<\/p><ul><li style=\"list-style-type: none;\"><ul><li>Ne laissez que le WiFi sur le Pi. Ni la fiche jack, ni l&rsquo;USB vers l&rsquo;Arduino.<\/li><li>T\u00e9l\u00e9chargez la derni\u00e8re version de Raspbian (avec ou sans desktop), d\u00e9compressez-la et copiez-la sur une carte SD: <a href=\"https:\/\/howchoo.com\/pi\/install-raspberry-pi-os\" target=\"_blank\" rel=\"noopener\">https:\/\/howchoo.com\/pi\/install-raspberry-pi-os<\/a> ( dans les options avanc\u00e9es, activer les SSH et le WiFi)<\/li><\/ul><\/li><\/ul><p><b>Nota<\/b>: Toutes les instructions suivantes (celles commen\u00e7ant par $) sont \u00e0 saisir dans Bitvise ou Putty.<br \/>Elles sont \u00ab\u00a0collables\u00a0\u00bb par le presse-papier.<br \/>Dans Bitvise et Putty, le coller se fait par le clic droit de la souris.<\/p><h3>\u00c9tape 2: Mise \u00e0 jour du Pi et de son heure<\/h3><p><span style=\"color: #0000ff;\"><em>$ sudo apt-get update<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>$ sudo dpkg-reconfigure tzdata<\/em><\/span><\/p><h3>Etape 3a: Le programme Python \u00ab\u00a0Morse\u00a0\u00bb.<\/h3><p><span style=\"color: #0000ff;\"><em><span style=\"color: #339966;\">#!\/usr\/bin\/python3<\/span><\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em><span style=\"color: #339966;\"># -*- coding:utf-8 -*-<\/span><\/em><\/span><\/p><p><span style=\"color: #339966;\"># Biblioth\u00e8ques<\/span><br \/>import RPi.GPIO as GPIO\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #339966;\"> #biblioth\u00e8que RPi.GPIO<\/span><br \/>import time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #339966;\"> #biblioth\u00e8que time<\/span><br \/>from random import *<br \/>import sys<br \/>from threading import Thread<\/p><p><span style=\"color: #339966;\"># Initialisation des variables<\/span><br \/>Out_18=18\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #339966;\">\u00a0# la guirlande c\u00e2bl\u00e9e sur la sortie 18<\/span><br \/>Out_23=23\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #339966;\"># la guirlande c\u00e2bl\u00e9e sur la sortie 23<\/span><\/p><p><em>GPIO.setwarnings(False)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #339966;\">\u00a0#d\u00e9sactive le mode warning<\/span><br \/>GPIO.setmode(GPIO.BCM)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #339966;\">#utilisation des num\u00e9ros de ports du processeur<\/span><br \/>GPIO.setup(Out_18, GPIO.OUT)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #339966;\">#mise en sortie du port Out_18<\/span><br \/>GPIO.setup(Out_23, GPIO.OUT)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #339966;\">\u00a0#mise en sortie du port Out_23<\/span><\/em><\/p><p><em># Pour faire varier la luminosit\u00e9 d&rsquo;une guirlande (seule la sortie GPIO 18 en est capable)<br \/><\/em><span style=\"color: #339966;\"><em># pwm = GPIO.PWM(Out_18, 50)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0# pwm \u00e0 une fr\u00e9quence de 50 Hz<br \/># pwm.start(7)<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>MrdCode = {<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0&lsquo;A&rsquo;: &lsquo;.-&lsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;B&rsquo;: &lsquo;-&#8230;&rsquo;,\u00a0\u00a0\u00a0&lsquo;C&rsquo;: &lsquo;-.-.&rsquo;,\u00a0\u00a0\u00a0&lsquo;D&rsquo;: &lsquo;-..&rsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;E&rsquo;: &lsquo;.&rsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;F&rsquo;: &lsquo;..-.&rsquo;,<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0&lsquo;G&rsquo;: &lsquo;&#8211;.&rsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;H&rsquo;: &lsquo;&#8230;.&rsquo;,\u00a0\u00a0\u00a0&lsquo;I&rsquo;: &lsquo;..&rsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;J&rsquo;: &lsquo;.&#8212;&lsquo;,\u00a0\u00a0\u00a0&lsquo;K&rsquo;: &lsquo;-.-&lsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;L&rsquo;: &lsquo;.-..&rsquo;,<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0&lsquo;M&rsquo;: &lsquo;&#8211;&lsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;N&rsquo;: &lsquo;-.&rsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;O&rsquo;: &lsquo;&#8212;&lsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;P&rsquo;: &lsquo;.&#8211;.&rsquo;,\u00a0\u00a0\u00a0&lsquo;Q&rsquo;: &lsquo;&#8211;.-&lsquo;,\u00a0\u00a0\u00a0&lsquo;R&rsquo;: &lsquo;.-.&rsquo;,<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0&lsquo;S&rsquo;: &lsquo;&#8230;&rsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;T&rsquo;: &lsquo;-&lsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;U&rsquo;: &lsquo;..-&lsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;V&rsquo;: &lsquo;&#8230;-&lsquo;,\u00a0\u00a0\u00a0&lsquo;W&rsquo;: &lsquo;.&#8211;&lsquo;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lsquo;X&rsquo;: &lsquo;-..-&lsquo;,<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0&lsquo;Y&rsquo;: &lsquo;-.&#8211;&lsquo;,\u00a0\u00a0\u00a0&lsquo;Z&rsquo;: &lsquo;&#8211;..&rsquo;,<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0&lsquo;0&rsquo;: &lsquo;&#8212;&#8211;&lsquo;,\u00a0\u00a0\u00a0&lsquo;1&rsquo;: &lsquo;.&#8212;-&lsquo;,\u00a0\u00a0\u00a0&lsquo;2&rsquo;: &lsquo;..&#8212;&lsquo;,\u00a0\u00a0\u00a0&lsquo;3&rsquo;: &lsquo;&#8230;&#8211;&lsquo;,\u00a0\u00a0\u00a0&lsquo;4&rsquo;: &lsquo;&#8230;.-&lsquo;,\u00a0\u00a0\u00a0&lsquo;5&rsquo;: &lsquo;&#8230;..&rsquo;,<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0&lsquo;6&rsquo;: &lsquo;-&#8230;.&rsquo;,\u00a0\u00a0\u00a0&lsquo;7&rsquo;: &lsquo;&#8211;&#8230;&rsquo;,\u00a0\u00a0\u00a0&lsquo;8&rsquo;: &lsquo;&#8212;..&rsquo;,\u00a0\u00a0\u00a0&lsquo;9&rsquo;: &lsquo;&#8212;-.&rsquo;,<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0&lsquo;&amp;&rsquo;: &lsquo;.-&#8230;&rsquo;,\u00a0\u00a0\u00a0\u00ab\u00a0&lsquo;\u00a0\u00bb: &lsquo;.&#8212;-.&rsquo;,\u00a0\u00a0\u00a0&lsquo;@&rsquo;: &lsquo;.&#8211;.-.&rsquo;,\u00a0\u00a0\u00a0&lsquo;)&rsquo;: &lsquo;-.&#8211;.-&lsquo;,\u00a0\u00a0\u00a0&lsquo;(&lsquo;: &lsquo;-.&#8211;.&rsquo;,\u00a0\u00a0\u00a0&lsquo;:&rsquo;: &lsquo;&#8212;&#8230;&rsquo;,<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0&lsquo;,&rsquo;: &lsquo;&#8211;..&#8211;&lsquo;,\u00a0\u00a0\u00a0&lsquo;=&rsquo;: &lsquo;-&#8230;-&lsquo;,\u00a0\u00a0\u00a0&lsquo;!&rsquo;: &lsquo;-.-.&#8211;&lsquo;,\u00a0\u00a0\u00a0&lsquo;.&rsquo;: &lsquo;.-.-.-&lsquo;,\u00a0\u00a0\u00a0&lsquo;-&lsquo;: &lsquo;-&#8230;.-&lsquo;,\u00a0\u00a0\u00a0&lsquo;+&rsquo;: &lsquo;.-.-.&rsquo;,<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0&lsquo;\u00a0\u00bb&lsquo;: &lsquo;.-..-.&rsquo;,\u00a0\u00a0\u00a0&lsquo;?&rsquo;: &lsquo;..&#8211;..&rsquo;,\u00a0\u00a0\u00a0&lsquo;\/&rsquo;: &lsquo;-..-.&rsquo;,\u00a0\u00a0\u00a0&lsquo; &lsquo;: &lsquo; &lsquo;<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>}<\/em><\/span><\/p><p><span style=\"color: #339966;\"><em>#Fonctions pour les Dots &amp; Dashes<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>def pause(units):<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0time.sleep(0.1 * units)<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>def dot(QuelleSortie):<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 print(\u00ab\u00a0.\u00a0\u00bb, end=\u00a0\u00bb\u00a0\u00bb)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 GPIO.output(QuelleSortie,True)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 pause(1)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 GPIO.output(QuelleSortie,False)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 pause(2)<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>def dash(QuelleSortie):<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 print(\u00ab\u00a0-\u00ab\u00a0, end=\u00a0\u00bb\u00a0\u00bb)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 GPIO.output(QuelleSortie,True)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 pause(5)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 GPIO.output(QuelleSortie,False)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0\u00a0 pause(2)<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>message_18 = \u00ab\u00a0Joyeux noel\u00a0\u00bb<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>message_23 = \u00ab\u00a0Bonne annee 2023\u00a0\u00bb<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>def Guirlande(MonOutput,MaPhrase):<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0global message_18<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0while 1:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0message = MaPhrase + \u00a0\u00bb\u00a0\u00a0\u00a0\u00a0 \u00ab\u00a0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0message = \u00a0\u00bb \u00ab\u00a0.join(MrdCode[c] for c in message.upper())<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0for c in message:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if c == \u00ab\u00a0.\u00a0\u00bb:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dot(MonOutput)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0elif c == \u00ab\u00a0-\u00ab\u00a0:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dash(MonOutput)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0elif c== \u00a0\u00bb \u00ab\u00a0:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pause(5)<\/em><\/span><\/p><p><span style=\"color: #339966;\"><em># Cr\u00e9ation des threads<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>t1 = Thread(target=Guirlande,args=(Out_18,message_18,))<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>t2 = Thread(target=Guirlande,args=(Out_23,message_23,))<\/em><\/span><\/p><p><span style=\"color: #339966;\"><em># D\u00e9marrage des threads<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>t1.start()<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>t2.start()<\/em><\/span><\/p><p><span style=\"color: #339966;\"><em>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/em><\/span><\/p><h3>Etape 3b: Le programme Python \u00ab\u00a0Variateur\u00a0\u00bb.<\/h3><div><p><span style=\"color: #339966;\"><em>#!\/usr\/bin\/python3<\/em><\/span><br \/><span style=\"color: #339966;\"><em># -*- coding:utf-8 -*-<\/em><\/span><\/p><p><span style=\"color: #339966;\"><em>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/em><\/span><br \/><span style=\"color: #339966;\"><em># Biblioth\u00e8ques<\/em><\/span><br \/><span style=\"color: #339966;\"><em>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>import RPi.GPIO as GPIO\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #339966;\"> #biblioth\u00e8que RPi.GPIO<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>import time\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #339966;\"> #biblioth\u00e8que time<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>from random import *<\/em><\/span><br \/><span style=\"color: #339966;\"><em>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/em><\/span><\/p><p><span style=\"color: #339966;\"><em># Initialisation des variables<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IntensFixe=23<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>IntensVariable=18<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>EtatOut23=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>NbScrutOn23 = 25<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>NbScrutOff23 = 25<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>NbScrut23 = NbScrutOn23<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Cmpt23=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Cmpt223=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>NbScrut223 = 5<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>EtatOut24=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>NbScrutOn24 = 50<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>NbScrutOff24 = 50<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>NbScrut24 = NbScrutOn24<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Cmpt24=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Cmpt224=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>NbScrut224 = 7<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>CmptTournant=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>Sens=0.2<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>GPIO.setwarnings(False)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #339966;\">#d\u00e9sactive le mode warning<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>GPIO.setmode(GPIO.BCM)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #339966;\">#utilisation des num\u00e9ros de ports du processeur<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>GPIO.setup(IntensFixe, GPIO.OUT)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #339966;\">#mise en sortie du port GPIO 23<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>GPIO.setup(IntensVariable, GPIO.OUT)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #339966;\">#mise en sortie du port GPIO 18<\/span><\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>pwm = GPIO.PWM(IntensVariable, 50)\u00a0 <span style=\"color: #339966;\"># pwm \u00e0 une fr\u00e9quence de 50 Hz<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>CmptTournant = 7<span style=\"color: #339966;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # rapport cyclique initial de 7%<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>pwm.start(CmptTournant)<\/em><\/span><\/p><p><span style=\"color: #0000ff;\"><em>if __name__ == &lsquo;__main__&rsquo;:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00ab\u00a0\u00a0\u00bb\u00a0\u00bb<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0Programme par d\u00e9faut<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00ab\u00a0\u00a0\u00bb\u00a0\u00bb<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0print(\u00ab\u00a0D\u00e9but du programme LED clignotante\u00a0\u00bb)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0while 1:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 CmptTournant+=Sens<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 if CmptTournant&gt;=100:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 CmptTournant=100<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Sens=-Sens<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 if CmptTournant&lt;=0:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 CmptTournant=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Sens=-Sens<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 #print(CmptTournant)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 <\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 if Cmpt23 &lt; NbScrut23 :<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Cmpt23 += 1<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 #print(Cmpt23)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 if EtatOut23==1:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 GPIO.output(IntensFixe, GPIO.HIGH)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 else:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 GPIO.output(IntensFixe, GPIO.LOW)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 if Cmpt23 &gt;= NbScrut23:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Cmpt223+=1<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 if EtatOut23==0:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 EtatOut23=1<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 NbScrut23=NbScrutOn23<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 if Cmpt223&gt;=NbScrut223:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 NbScrutOn23=randint(1,100)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 NbScrut223=randint(1,10)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 #print(\u00ab\u00a0NbScrutOn23= \u00ab\u00a0+str(NbScrutOn23)+\u00a0\u00bb\u00a0 et NbScrut223= \u00ab\u00a0+str(NbScrut223))<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Cmpt223=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 else:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 EtatOut23=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 NbScrut23=NbScrutOff23<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 if Cmpt223&gt;=NbScrut223:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 NbScrutOff23=randint(1,100)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 #print(\u00ab\u00a0NbScrutOff23= \u00ab\u00a0+str(NbScrutOff23))<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Cmpt223=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Cmpt23=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 <\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 if Cmpt24 &lt; NbScrut24 :<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Cmpt24 += 1<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 if EtatOut24==0:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 <span style=\"color: #339966;\">#GPIO.output(IntensVariable, GPIO.HIGH)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 pwm.ChangeDutyCycle(float(CmptTournant))<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 else:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 <span style=\"color: #339966;\">#GPIO.output(IntensVariable, GPIO.LOW)<\/span><\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 pwm.ChangeDutyCycle(float(0))<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 if Cmpt24 &gt;= NbScrut24:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Cmpt224+=1<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 if EtatOut24==0:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 EtatOut24=1<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 NbScrut24=NbScrutOn24<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 if Cmpt224&gt;=NbScrut224:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 NbScrutOn24=randint(1,100)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 NbScrut224=randint(1,10)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 #print(\u00ab\u00a0NbScrutOn24= \u00ab\u00a0+str(NbScrutOn24)+\u00a0\u00bb\u00a0 et NbScrut224= \u00ab\u00a0+str(NbScrut224))<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Cmpt224=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 else:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 EtatOut24=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 NbScrut24=NbScrutOff24<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 if Cmpt224&gt;=NbScrut224:<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 NbScrutOff24=randint(100,1000)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 #print(\u00ab\u00a0NbScrutOff24= \u00ab\u00a0+str(NbScrutOff24))<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Cmpt224=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Cmpt24=0<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 time.sleep (.01)<\/em><\/span><br \/><span style=\"color: #0000ff;\"><em>#&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/em><\/span><\/p><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-426b368 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"426b368\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c1fbb9e\" data-id=\"c1fbb9e\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-be57081 elementor-widget elementor-widget-heading\" data-id=\"be57081\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Le c\u00e2blage:<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-10c468f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"10c468f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-0d646ea\" data-id=\"0d646ea\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0ba82c7 elementor-widget elementor-widget-image\" data-id=\"0ba82c7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"144\" height=\"216\" src=\"https:\/\/lesmrdtrucs.mataf35400.fr\/wp-content\/uploads\/2022\/12\/Image43.png\" class=\"elementor-animation-grow attachment-full size-full wp-image-1836\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-0b415e2\" data-id=\"0b415e2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7578255 elementor-widget elementor-widget-image\" data-id=\"7578255\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"133\" height=\"280\" src=\"https:\/\/lesmrdtrucs.mataf35400.fr\/wp-content\/uploads\/2022\/12\/Image44.png\" class=\"elementor-animation-grow attachment-full size-full wp-image-1837\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Ce MrdProgramme pour Raspberry permet de faire clignoter plusieurs guirlandes fixes \u00e0 l&rsquo;origine en code Morse.Dans sa version actuelle, il ne n\u00e9cessite rien de sp\u00e9cial, mais peut servir d&rsquo;exemple simple pour le multithreading (un thread par guirlande).Comme les guirlandes consomment plus que les sorties GPIO ne peuvent en donner (16mA par sortie), j&rsquo;ai ajout\u00e9 un [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","footnotes":""},"class_list":["post-1823","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/pages\/1823","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1823"}],"version-history":[{"count":16,"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/pages\/1823\/revisions"}],"predecessor-version":[{"id":1851,"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/pages\/1823\/revisions\/1851"}],"wp:attachment":[{"href":"https:\/\/lesmrdtrucs.mataf35400.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}