{"id":419,"date":"2017-11-24T23:14:22","date_gmt":"2017-11-24T22:14:22","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=419"},"modified":"2017-12-30T19:36:11","modified_gmt":"2017-12-30T18:36:11","slug":"46-irsnd-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/46-irsnd-library-stm32f4\/","title":{"rendered":"46-IRSND-Library (STM32F4)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/45-cs43l22-library-stm32f4\/\" title=\"45-CS43L22-Library (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 45-CS43L22-Library (STM32F4)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/47-mp45dt02-library-stm32f4\/\" title=\"47-MP45DT02-Library (STM32F4)\">47-MP45DT02-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>Diese Library bindet den IRSND zum senden von Infrarot-Signalen (wie eine IR-Fernbedienung) f\u00fcr den STM32F4 ein. Als Sende-Diode kann jede \u201cnormale\u201d IR-LED benutzt werden und \u00fcber einem Vorwiderstand (z.B. 180 Ohm) an den PIN der CPU angeschlossen werden.<em> (Wer will das die LED heller leuchtet, kann sie auch mit einem zus\u00e4tzlichen Transistor schalten\u2026dann bekommt man event. eine h\u00f6here Reichweite)<\/em><\/p>\n<p>IRSND : \u201cInfrarot-Multiprotokoll-Encoder\u201d\u00a0ist Opensource, die Quellfiles und ein\u00a0ausf\u00fchrlicher\u00a0Artikel findet sich im Mikrocontroller Forum.<br \/>\n<a href=\"http:\/\/www.mikrocontroller.net\/articles\/IRMP\">http:\/\/www.mikrocontroller.net\/articles\/IRMP<\/a><\/p>\n<p>IRSND ist sehr Umfangreich und unterst\u00fctzt sehr viele IR-Protokolle. Welche Protokolle benutzt werden sollen, kann in einem H-File eingestellt werden. Damit kann der Codeumfang verkleinert werden.<\/p>\n<p>Es werden zwei Timer ben\u00f6tigt und ein GPIO Pin. (im Beispiel TIM2, TIM10 und PB8)<br \/>\nHinweis : der Pin ist nicht beliebig sondern wird vom benutzten Timer vorgegeben, weil dessen AF Funktion (PWM) benutzt wird. <em>(Bitte im RefManual nachlesen falls ihr einen anderen benutzen wollt)<\/em><\/p>\n<p>Die Daten die gesendet werden sollen, m\u00fcssen in einer Struktur abgespeichert werden.\u00a0Darin enthalten ist der IR-Codetyp, eine Adressnummer und eine Kommandonummer.<\/p>\n<p>Welche Werte das zu steuernde Ger\u00e4t ben\u00f6tigt muss zuvor ermittelt werden. Am einfachsten mit der IRMP-Library von hier an der \u201coriginal\u201d Fernbedienung auslesen.<br \/>\nMeine Test Fernbedienung liefert als Codetyp \u201c5\u2033 als Adresse den Wert \u201c8194\u2033 und z.B. beim dr\u00fccken der Taste \u201cARD\u2033 den Wert \u201c33024\u2033 zur\u00fcck.<\/p>\n<p><strong>Beispielbild :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/06\/irsnd.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1935\" src=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/06\/irsnd-179x300.jpg\" alt=\"irsnd\" width=\"179\" height=\"300\" \/><\/a><\/p>\n<p><strong>Benutzte Pins :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">PB8 -&gt; IR-Sender<\/pre>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : GPIO, TIM, MISC\r\nBenutzte Librarys : IRSND<\/pre>\n<p><strong>Struktur :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef struct {\r\n  uint8_t protocol; \r\n  uint16_t address; \r\n  uint16_t command;\r\n  uint8_t flags;\r\n}IRMP_DATA;<\/pre>\n<p><strong>Funktionen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">void UB_IRSND_Init(void);                     \/\/ zum initialisieren von IRSND\r\nvoid UB_IRSND_Write(IRMP_DATA * irmp_data_p); \/\/ zum senden der IR-Daten<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 14.06.2013\r\n\/\/ Version  : 1.0\r\n\/\/ Autor    : UB\r\n\/\/ EMail    : mc-4u(@)t-online.de\r\n\/\/ Web      : www.mikrocontroller-4u.de\r\n\/\/ CPU      : STM32F4\r\n\/\/ IDE      : CooCox CoIDE 1.7.0\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo der IRSND-Library\r\n\/\/ Hinweis  : Diese zwei Files muessen auf 8MHz stehen\r\n\/\/              \"cmsis_boot\/stm32f4xx.h\"\r\n\/\/              \"cmsis_boot\/system_stm32f4xx.c\"\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"main.h\"\r\n#include \"stm32_ub_irsnd.h\"\r\n\r\nvoid Delay(volatile uint32_t nCount)\r\n{\r\n  while(nCount--)\r\n  {\r\n  }\r\n}\r\n\r\nint main(void)\r\n{\r\n  IRMP_DATA  myIRData;  \/\/ Variable f\u00fcr IR-Daten\r\n\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ init vom IRSND\r\n  UB_IRSND_Init();\r\n\r\n  \/\/ einen festen IR-Code einstellen\r\n  \/\/ (am TV auf \"ARD\" umschalten)\r\n  myIRData.protocol=5;\r\n  myIRData.address=8194;\r\n  myIRData.command=33024;\r\n  myIRData.flags=0;\r\n\r\n  while(1)\r\n  {\r\n    \/\/ kleine Pause (ca 3sec)\r\n    Delay(30000000);\r\n    \/\/ IR-Daten senden\r\n    UB_IRSND_Write(&amp;myIRData);\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/06\/ub_stm32f4_irsnd_v100.zip\">ub_stm32f4_irsnd_v100<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"http:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/06\/Demo_46_IRSND.zip\">Demo_46_IRSND<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Diese Library bindet den IRSND zum senden von Infrarot-Signalen (wie eine IR-Fernbedienung) f\u00fcr den STM32F4 ein. Als Sende-Diode kann jede \u201cnormale\u201d IR-LED benutzt werden und \u00fcber einem Vorwiderstand (z.B. 180 Ohm) an den PIN der CPU angeschlossen werden. (Wer will &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/46-irsnd-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":46,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[194,9,7],"class_list":["post-419","page","type-page","status-publish","hentry","category-stm32f4","tag-irsnd","tag-library","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=419"}],"version-history":[{"count":3,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/419\/revisions"}],"predecessor-version":[{"id":1585,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/419\/revisions\/1585"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/144"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}