{"id":2971,"date":"2019-12-10T14:59:03","date_gmt":"2019-12-10T13:59:03","guid":{"rendered":"https:\/\/www.breizh56.fr\/crepp2024\/?page_id=2971"},"modified":"2019-12-10T15:03:49","modified_gmt":"2019-12-10T14:03:49","slug":"arduino-2019-4-9-mmoc-discussions","status":"publish","type":"page","link":"https:\/\/www.breizh56.fr\/crepp2024\/arduino-2019-4-9-mmoc-discussions\/","title":{"rendered":"Arduino 2019-4.9: mooc discussion"},"content":{"rendered":"<p>je vous invite \u00e0 lire les discussions du Mooc qui apportent \u00e9norm\u00e9ment en id\u00e9e innovantes.<\/p>\n<p>Parmi le lot, j&rsquo;ai relev\u00e9:<\/p>\n<p>&nbsp;<\/p>\n<header class=\"wrapper-post-header\">\n<div class=\"post-header-content\">\n<h4 class=\"post-title\">5 leds au lieu de 1\u00a0par <a class=\"username\" href=\"https:\/\/www.fun-mooc.fr\/courses\/course-v1:MinesTelecom+04017+session07\/discussion\/forum\/users\/13445410\">SwannNerds<\/a><\/h4>\n<p class=\"posted-details\"><em>Hello, J&rsquo;ai fait un petit exercice, j&rsquo;ai utilis\u00e9 5 leds qui s&rsquo;allument progressivement au lieu de 1. Voici le sch\u00e9ma et le code pour ceux que \u00e7a int\u00e9resserait \ud83d\ude42<\/em><\/p>\n<\/div>\n<\/header>\n<p><img decoding=\"async\" title=\"\" src=\"https:\/\/www.fun-mooc.fr\/media\/1575669330299144.png\" alt=\"sch\u00e9ma 5 leds\" \/><\/p>\n<pre class=\"post-body\"><code>\/\/ Initialisation des constantes :\r\nconst int analogInPin = A0;   \/\/ Num\u00e9ro de la broche \u00e0 laquelle est connect\u00e9 la photor\u00e9sistance\r\nconst int led1 = 9;\r\nconst int led2 = 10;\r\nconst int led3 = 11;\r\nconst int led4 = 12;\r\nconst int led5 = 13;\r\n\r\nint sensorValue = 0;          \/\/ Valeur lue sur la photor\u00e9sistance\r\nint outputValue = 0;\r\nint val1 = 0;\r\nint val2 = 0;\r\nint val3 = 0;\r\nint val4 = 0;\r\nint val5 = 0;\r\n\r\nvoid setup() {\r\n  \/\/ Indique les sorties vers les leds\r\n  pinMode(led1, OUTPUT);      \r\n  pinMode(led2, OUTPUT);     \r\n  pinMode(led3, OUTPUT);     \r\n  pinMode(led4, OUTPUT);     \r\n  pinMode(led5, OUTPUT);     \r\n  \/\/ Indique que la broche analogInPin est une entr\u00e9e :\r\n  pinMode(analogInPin, INPUT);     \r\n}\r\n\r\n\/\/ Fonction qui prend un entier en entr\u00e9\r\n\/\/ et soustrait jusqu'\u00e0 255 de ce nombre\r\n\/\/ renvoit la valeur sous-traite\r\n\/\/ Notez le &amp; dans le type du param\u00e8tre qui indique que le\r\n\/\/ param\u00e8tre est pass\u00e9 par \"r\u00e9f\u00e9rence\" et non par \"valeur\"\r\nint get_next_led_val(int&amp; val)\r\n{\r\n  \/\/ le param\u00e8tre est d\u00e9j\u00e0 \u00e0 z\u00e9ro\r\n  \/\/ on ne peut rien soustraire\r\n  \/\/ on renvoit 0\r\n  if (val==0)\r\n    return 0;\r\n  \/\/ variable pour conserver la valeur \u00e0 renvoyer\r\n  int ret_val = 0;\r\n  \/\/ le param\u00e8tre a une valeur comprise entre 0 et 255\r\n  \/\/ on va donc tout enlever, il sera \u00e0 z\u00e9ro\r\n  \/\/ on renvoit la valeur initial du param\u00e8tre\r\n  if (val &lt;= 255)\r\n  {\r\n    ret_val = val;\r\n    val = 0;\r\n  }\r\n  else\r\n  {\r\n    \/\/ le param\u00e8tre est plus grand que 255\r\n    \/\/ on lui enl\u00e8ve donc 255\r\n    \/\/ on renvoit 255\r\n    ret_val = 255;\r\n    val = val - 255;\r\n  }\r\n  \/\/ renvoit de la valeur\r\n  return ret_val; \r\n}\r\n\r\nvoid loop() {\r\n  \/\/ lit la valeur de la photor\u00e9sistance et\r\n  \/\/ stocke le r\u00e9sultat dans sensorValue :\r\n  sensorValue = analogRead(analogInPin);            \r\n  \/\/ change sensorValue vers une intervalle de 0 \u00e0 255\r\n  \/\/ et stocke le r\u00e9sultat dans outputValue :\r\n\r\n  \/\/ comme on a 5 leds, la valeur maximum est 5 * 255 = 1275\r\n  outputValue = map(sensorValue, 0, 1023, 0, 1275);  \r\n\r\n  \/\/ On allume la led 1 en \"consommant\" jusqu'\u00e0 255 de outputValue\r\n  analogWrite(led1, get_next_led_val(outputValue));\r\n  \/\/ idem pour la led2...\r\n  analogWrite(led2, get_next_led_val(outputValue)); \r\n  \/\/ la led3..\r\n  analogWrite(led3, get_next_led_val(outputValue));\r\n  \/\/ ...\r\n  analogWrite(led4, get_next_led_val(outputValue)); \r\n  \/\/ .\r\n  analogWrite(led5, get_next_led_val(outputValue)); \r\n}<\/code><\/pre>\n<div class=\"forum-thread-main-wrapper\">\n<div class=\"thread-content-wrapper\">\n<div class=\"discussion-post\">\n<header class=\"wrapper-post-header\">\n<div class=\"post-header-content\">\n<hr \/>\n<p class=\"post-title\">\n<h3 class=\"post-title\">Une seule commande pour les 2 leds\u00a0 par <a class=\"username\" href=\"https:\/\/www.fun-mooc.fr\/courses\/course-v1:MinesTelecom+04017+session07\/discussion\/forum\/users\/3818322\">jpaul31Nailloux<\/a><\/h3>\n<p class=\"posted-details\">\n<\/div>\n<div class=\"post-header-actions post-extended-content\"><\/div>\n<\/header>\n<div class=\"post-body\">\n<p><em>Bonjour, une astuce pour \u00e9conomiser les sorties. <\/em><\/p>\n<p><em>Comme les deux LEDS fonctionnent en exclusion mutuelle, une seule ligne de commande est n\u00e9cessaire et cela fonctionne bien. <\/em><\/p>\n<p><em>La sortie tout ou rien de l&rsquo;arduino tire la broche de la LED \u00e0 0V ou +5V<\/em> <img decoding=\"async\" title=\"\" src=\"https:\/\/www.fun-mooc.fr\/media\/15757502819648993.png\" alt=\"enter image description here\" \/><\/p>\n<\/div>\n<div class=\"post-context\">Bonjour, lorsque la sortie digitale est \u00e0 0v la led rouge se retrouve avec +5V sur l&rsquo;anode et 0V sur la cathode pendant que la verte \u00e0 0V sur chacune des \u00e9lectrodes.<\/div>\n<div class=\"post-context\">Quand la sortie digitale vaut +5V, la verte \u00e0 +5V \u00e0 l&rsquo;anode et 0V \u00e0 la cathode pendant que la rouge a +5V sur chaque \u00e9lectrode.<\/div>\n<div class=\"post-context\">Si la sortie digitale est en l&rsquo;air alors les 2 diodes s&rsquo;allument.<\/div>\n<div class=\"post-context\">Initialement j&rsquo;avais pens\u00e9 au sch\u00e9ma suivant mais il tire un peu tout le temps pour fabriquer un point milieu.<\/div>\n<div class=\"post-context\">L&rsquo;avantage c&rsquo;est que les leds ne s&rsquo;allument pas si la commande de l&rsquo;arduino est en l&rsquo;air<\/div>\n<div class=\"post-context\"><\/div>\n<div class=\"post-context\"><img decoding=\"async\" title=\"\" src=\"https:\/\/www.fun-mooc.fr\/media\/15758253336447853.png\" alt=\"enter image description here\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>je vous invite \u00e0 lire les discussions du Mooc qui apportent \u00e9norm\u00e9ment en id\u00e9e innovantes. Parmi le lot, j&rsquo;ai relev\u00e9: &nbsp; 5 leds au lieu de 1\u00a0par SwannNerds Hello, J&rsquo;ai fait un petit exercice, j&rsquo;ai utilis\u00e9 5 leds qui s&rsquo;allument progressivement au lieu de 1. Voici le sch\u00e9ma et le code pour ceux que \u00e7a int\u00e9resserait \ud83d\ude42 \/\/ Initialisation des [&#8230;]<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2971","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/2971"}],"collection":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/comments?post=2971"}],"version-history":[{"count":4,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/2971\/revisions"}],"predecessor-version":[{"id":2975,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/2971\/revisions\/2975"}],"wp:attachment":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/media?parent=2971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}