{"id":273,"date":"2021-11-21T19:26:08","date_gmt":"2021-11-21T18:26:08","guid":{"rendered":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/?p=273"},"modified":"2022-07-17T20:31:14","modified_gmt":"2022-07-17T19:31:14","slug":"utiliser-un-encodeur-dans-vos-projets","status":"publish","type":"post","link":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/?p=273","title":{"rendered":"Utiliser un encodeur dans vos projets"},"content":{"rendered":"<h1>Encodeur rotatif sous STM32<\/h1>\n<h2>Mise en oeuvre sur un STM32-F429ZI (nucleo-F429ZI)<\/h2>\n<ul>\n<li>\n<p>Mise en oeuvre d'un codeur rotatif avec bouton central.<\/p>\n<\/li>\n<li>\n<p>Mise en garde : d\u00e9sactiver l'ethernet qui s'il n'est pas configur\u00e9 fait planter au d\u00e9marrage.<\/p>\n<\/li>\n<li>\n<p>Au niveau du Timer \u00e0 utiliser<br \/>\nutiliser un timer qui permet le mode <em>Encoder<\/em><br \/>\nAttention : Sur la nucleo-F429ZI le timer2 ne semble pas bien connect\u00e9 sur PA0 et PA1 (A v\u00e9rifier)<\/p>\n<\/li>\n<li>\n<p>Timer3 : PC7 et PA6. Test\u00e9 avec succ\u00e8s.<\/p>\n<\/li>\n<li>\n<p>GPIO : s'il n'y a pas de r\u00e9sistances de pull-up, les rajouter en interne.<\/p>\n<\/li>\n<\/ul>\n<h2>Step 0 : configuration de l'USART3 histoire de communiquer avec le PC et putty (115200 8N1)<\/h2>\n<p><a href=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/wp-content\/uploads\/2021\/11\/usart3.png\"><img decoding=\"async\" src=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/wp-content\/uploads\/2021\/11\/usart3.png\" alt=\"usart3\" \/><\/a><\/p>\n<h2>Step 1  : configuration des horloges du STM32<\/h2>\n<p><a href=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/wp-content\/uploads\/2021\/11\/encoder_clock_config.png\"><img decoding=\"async\" src=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/wp-content\/uploads\/2021\/11\/encoder_clock_config.png\" alt=\"encoder_clock_config\" \/><\/a><\/p>\n<h2>Step 2 : configuration du Timer 3<\/h2>\n<p><a href=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/wp-content\/uploads\/2021\/11\/tim3_step1.png\"><img decoding=\"async\" src=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/wp-content\/uploads\/2021\/11\/tim3_step1.png\" alt=\"tim3_step1\" \/><\/a><\/p>\n<h2>Step 3 : configuration du Timer 3, suite<\/h2>\n<p><a href=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/wp-content\/uploads\/2021\/11\/tim3_step2.png\"><img decoding=\"async\" src=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/wp-content\/uploads\/2021\/11\/tim3_step2.png\" alt=\"tim3_step2\" \/><\/a><\/p>\n<h2>Step 4  : et dans le main<\/h2>\n<pre><code class=\"language-c\">\/\/ ne pas oublier\n#include &quot;stdio.h&quot;\nint main(void)\n{\n    uint16_t EncVal = 0;\n    uint8_t msg[]=&quot;Encoder test with default settings of project\\r\\n&quot;;\n\n    \/* MCU Configuration--------------------------------------------------------*\/\n\n    \/* Reset of all peripherals, Initializes the Flash interface and the Systick. *\/\n    HAL_Init();\n    \/* Configure the system clock *\/\n    SystemClock_Config();\n\n    \/* Initialize all configured peripherals *\/\n    MX_GPIO_Init();\n    MX_USART3_UART_Init();\n    MX_TIM3_Init();\n    uint8_t Uart_Buf[70];\n    HAL_TIM_Encoder_Start(&amp;htim3, TIM_CHANNEL_ALL);\n    HAL_UART_Transmit(&amp;huart3, msg, sizeof(msg), 1000);\n  while (1)\n  {\n        EncVal = (TIM3-&gt;CNT)&gt;&gt;2; \/\/selon les valeurs configur\u00e9es, pas n\u00e9cessaire de faire une division par 4\n        \/\/ EncVal = __HAL_TIM_GET_COUNTER(&amp;htim2);\n         int len = sprintf(Uart_Buf, &quot;%d\\r\\n&quot;,EncVal);\n         HAL_UART_Transmit(&amp;huart3, Uart_Buf, len, 1000);\n         HAL_Delay(100);\n  }\n}<\/code><\/pre>\n<h2>Step 5 : Hardware<\/h2>\n<p><a href=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/wp-content\/uploads\/2021\/11\/encodeur.png\"><img decoding=\"async\" src=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/wp-content\/uploads\/2021\/11\/encodeur.png\" alt=\"encodeur\" \/><\/a><\/p>\n<h2>Bibliographie<\/h2>\n<p><a href=\"https:\/\/stm32world.com\/wiki\/STM32_Rotary_Encoder\">https:\/\/stm32world.com\/wiki\/STM32_Rotary_Encoder<\/a><br \/>\n<a href=\"https:\/\/stm32f4-discovery.net\/2014\/08\/library-26-rotary-encoder-stm32f4\/\">https:\/\/stm32f4-discovery.net\/2014\/08\/library-26-rotary-encoder-stm32f4\/<\/a><\/p>\n<p>Nucleo-F429ZI Schematic and pinout<\/p>\n<pre><code class=\"language-console\">foo@bar:~$ wget https:\/\/www.st.com\/content\/ccc\/resource\/technical\/layouts_and_diagrams\/schematic_pack\/63\/95\/5c\/0c\/d6\/af\/4b\/e2\/nucleo_144pins_sch.zip\/files\/nucleo_144pins_sch.zip\/jcr:content\/translations\/en.nucleo_144pins_sch.zip<\/code><\/pre>\n<p>Nucleo-F446RE Schematic and pinout<\/p>\n<pre><code class=\"language-console\">foo@bar:~$ wget https:\/\/www.st.com\/content\/ccc\/resource\/technical\/layouts_and_diagrams\/schematic_pack\/71\/1e\/2a\/ac\/b5\/c1\/4b\/a9\/nucleo_64pins_sch.zip\/files\/nucleo_64pins_sch.zip\/jcr:content\/translations\/en.nucleo_64pins_sch.zip<\/code><\/pre>\n<p>STM32F429ZI Reference Manual<br \/>\n<a href=\"https:\/\/www.st.com\/resource\/en\/reference_manual\/rm0090-stm32f405415-stm32f407417-stm32f427437-and-stm32f429439-advanced-armbased-32bit-mcus-stmicroelectronics.pdf\">https:\/\/www.st.com\/resource\/en\/reference_manual\/rm0090-stm32f405415-stm32f407417-stm32f427437-and-stm32f429439-advanced-armbased-32bit-mcus-stmicroelectronics.pdf<\/a><\/p>\n<h2>USB<\/h2>\n<ul>\n<li>\n<p>C\u00f4t\u00e9 PC - programmation<br \/>\n<a href=\"https:\/\/geekthis.net\/post\/usb-sniffing-and-programming\/\">https:\/\/geekthis.net\/post\/usb-sniffing-and-programming\/<\/a><\/p>\n<\/li>\n<li>\n<p>Avec WireShark<br \/>\n<a href=\"https:\/\/wiki.wireshark.org\/CaptureSetup\/USB\">https:\/\/wiki.wireshark.org\/CaptureSetup\/USB<\/a><\/p>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Encodeur rotatif sous STM32 Mise en oeuvre sur un STM32-F429ZI (nucleo-F429ZI) Mise en oeuvre d&rsquo;un codeur rotatif avec bouton central. Mise en garde : d\u00e9sactiver l&rsquo;ethernet qui s&rsquo;il n&rsquo;est pas configur\u00e9 fait planter au d\u00e9marrage. Au niveau du Timer \u00e0 utiliser utiliser un timer qui permet le mode Encoder Attention : Sur la nucleo-F429ZI le &hellip; <a href=\"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/?p=273\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Utiliser un encodeur dans vos projets<\/span>  <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[8,13,9,6,10],"class_list":["post-273","post","type-post","status-publish","format-standard","hentry","category-stm32","tag-adc","tag-encodeur-quadrature","tag-microcontroleur","tag-stm32","tag-stm32cubeide"],"_links":{"self":[{"href":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/index.php?rest_route=\/wp\/v2\/posts\/273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=273"}],"version-history":[{"count":2,"href":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/index.php?rest_route=\/wp\/v2\/posts\/273\/revisions"}],"predecessor-version":[{"id":282,"href":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/index.php?rest_route=\/wp\/v2\/posts\/273\/revisions\/282"}],"wp:attachment":[{"href":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.spacelabcachan.universite-paris-saclay.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}