{"id":1658,"date":"2021-09-19T21:01:27","date_gmt":"2021-09-19T19:01:27","guid":{"rendered":"http:\/\/f6kmf.fr\/?p=1658"},"modified":"2021-09-23T10:35:57","modified_gmt":"2021-09-23T08:35:57","slug":"arduino-initiation-a-lusage-des-radioamateurs-8eme-partie","status":"publish","type":"post","link":"https:\/\/f6kmf.fr\/index.php\/2021\/09\/19\/arduino-initiation-a-lusage-des-radioamateurs-8eme-partie\/","title":{"rendered":"Arduino : initiation \u00e0 l\u2019usage des radioamateurs. 8\u00e8me partie."},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Enfin, voil\u00e0 le r\u00e9cepteur VHF \u00e9volutif<\/h2>\n\n\n\n<p class=\"has-background has-vivid-green-cyan-background-color\">Nous allons commencer par un r\u00e9cepteur VHF \u00ab\u00a0minimaliste !\u00a0\u00bb pour nous familiariser avec la programmation en langage C de l&rsquo;Arduino et les commandes \u00e0 envoyer vers le SA818.<br>Il \u00e9voluera jusqu&rsquo;\u00e0 devenir un Emetteur\/R\u00e9cepteur capable de scanner une bande de fr\u00e9quences, ou une liste de fr\u00e9quences.<br><\/p>\n\n\n\n<p class=\"has-background has-very-light-gray-background-color\"><strong>VERSION1 :<\/strong> R\u00e9cepteur VHF couvrant de 134 \u00e0 174 MHz au pas de 12.5 KHz et utilisant 2 boutons poussoirs (1 = Descente, 2 = Mont\u00e9e en fr\u00e9quence de 12.5KHz).<br>(Pour le c\u00e2blage de l&rsquo;Arduino et de l&rsquo;afficheur voir les pr\u00e9c\u00e9dentes descriptions).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"724\" height=\"1024\" src=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/prix-724x1024.jpg\" alt=\"\" class=\"wp-image-1659\" srcset=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/prix-724x1024.jpg 724w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/prix-212x300.jpg 212w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/prix-768x1086.jpg 768w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/prix.jpg 992w\" sizes=\"auto, (max-width: 724px) 100vw, 724px\" \/><\/figure>\n\n\n\n<p class=\"has-background has-cyan-bluish-gray-background-color\">Tout est l\u00e0 &#8230;. les prix sont indicatifs et variables en fonction des sites marchands et des quantit\u00e9s command\u00e9es.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210619_153617-1024x768.jpg\" alt=\"\" class=\"wp-image-1660\" srcset=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210619_153617-1024x768.jpg 1024w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210619_153617-300x225.jpg 300w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210619_153617-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-background has-cyan-bluish-gray-background-color\">La platine pour le montage du SA818 est simplement r\u00e9alis\u00e9e \u00e0 la lame de scie sur un petit morceau d&rsquo;\u00e9poxy.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210619_161931-1024x768.jpg\" alt=\"\" class=\"wp-image-1661\" srcset=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210619_161931-1024x768.jpg 1024w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210619_161931-300x225.jpg 300w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210619_161931-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-background has-pale-cyan-blue-background-color\">On soude quelques queues de r\u00e9sistances pour faciliter le montage du SA818, un millepattes qui n&rsquo;a rien de r\u00e9pugnant !<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"620\" height=\"423\" src=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/montage1.jpg\" alt=\"\" class=\"wp-image-1663\" srcset=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/montage1.jpg 620w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/montage1-300x205.jpg 300w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/montage1-130x90.jpg 130w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/figure>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\">D\u00e9but du montage, d\u00e9j\u00e0 le SA818, ensuite les quelques autres composants.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"886\" height=\"600\" src=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/DRA818_RX_1.jpg\" alt=\"\" class=\"wp-image-1664\" srcset=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/DRA818_RX_1.jpg 886w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/DRA818_RX_1-300x203.jpg 300w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/DRA818_RX_1-768x520.jpg 768w\" sizes=\"auto, (max-width: 886px) 100vw, 886px\" \/><\/figure>\n\n\n\n<p class=\"has-background has-light-green-cyan-background-color\">Inutile de r\u00e9inventer, voici le sch\u00e9ma vu sur le site du regrett\u00e9 <strong>F5MNA<\/strong>, l&rsquo;essentiel est l\u00e0, 5 r\u00e9sistances, 1 diode, 1 LED et un condensateur ! <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210918_170803-1024x768.jpg\" alt=\"\" class=\"wp-image-1665\" srcset=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210918_170803-1024x768.jpg 1024w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210918_170803-300x225.jpg 300w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210918_170803-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-background has-very-light-gray-background-color\">La partie \u00e9lectronique est termin\u00e9e, on va pouvoir passer \u00e0 la programmation &#8230;. <br><br><strong>Comment \u00e7a marche :<\/strong> La borne D1 (TXD = Transmission de DATA) de notre Arduino est connect\u00e9e \u00e0 la borne 16 (RXD = R\u00e9ception de DATA) de notre SA818, nous allons dans notre programme C envoyer des s\u00e9quences d&rsquo;informations vers le module VHF.<br><br><strong>Format des s\u00e9quences : <\/strong><br><br><strong>AT+DMOCONNECT <\/strong><br>initialise la communication<br><br><strong>AT+DMOSETGROUP=0,145.5125,145.5125,0012,4,0003 <\/strong><br>Voil\u00e0 une s\u00e9quence compl\u00e8te pour param\u00e9trer le SA818<br>0 c&rsquo;est la bande passante 0 = 12.5Khz 1 = 25KHz<br>145,5125 c&rsquo;est la fr\u00e9quence d&rsquo;\u00e9mission (utilisation future)<br>145,5125 c&rsquo;est la fr\u00e9quence de r\u00e9ception<br>0012 c&rsquo;est le CTCSS \u00e9mission (utilisation future) <br>4 c&rsquo;est la valeur du Squelch (entre 0 pas de squelch et 8 maxi)<br>0003 c&rsquo;est le CTCSS \u00e9mission (utilisation future) <br>exemple simplifi\u00e9, pour \u00e9couter un relais sur 145.500 sans squelch et avec une d\u00e9viation de 12.5KHz nous passerons simplement:<br><strong>AT+DMOSETGROUP=0,145.5000,145.5000,0000,0,0000 <\/strong> <br><br><strong>AT+DMOSETVOLUME=1<\/strong><br>R\u00e9glage logiciel du volume du r\u00e9cepteur entre 1 et 8 (utilisation future)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"460\" height=\"693\" src=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/Algorithme_2boutons.jpg\" alt=\"\" class=\"wp-image-1677\" srcset=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/Algorithme_2boutons.jpg 460w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/Algorithme_2boutons-199x300.jpg 199w\" sizes=\"auto, (max-width: 460px) 100vw, 460px\" \/><\/figure>\n\n\n\n<p class=\"has-background has-luminous-vivid-orange-background-color\"><strong>Et maintenant le code en langage C, nous utilisons des \u00ab\u00a0morceaux\u00a0\u00bb d\u00e9j\u00e0 d\u00e9crit dans les pr\u00e9c\u00e9dents articles, seul le sous programme qui transmet les donn\u00e9es au SA818 est nouveau.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br> \/\/ Recepteur SA818 minimaliste \/\/<br> \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br> <br>\/\/ Ajouter librairie de gestion de l'\u00e9cran LCD: <br> # include &lt;LiquidCrystal.h><br> <br>\/\/ initialisation des broches \u00e0 utiliser pour l'\u00e9cran LCD.<br>  LiquidCrystal lcd(7, 8, 9, 10, 11, 12);<br> <br>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br>\/\/ Initialisation des variables \/\/<br>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br> <br> int Bouton_1 = 2; \/\/ Notre bouton 1 utilisera la borne 2 de l'Arduino<br> int Bouton_2 = 3; \/\/ Notre bouton 2 utilisera la borne 3 de l'Arduino<br> float frx,ftx, Pas, squ;<br> void setup() {<br> \/\/ Pr\u00e9paration de notre afficheur qui comporte 16 colonnes sur 2 lignes<br>       lcd.begin(16, 2);<br>    \/\/ Afficher sur l'\u00e9cran LCD.<br>       lcd.setCursor(2, 0);<br>       lcd.print(\"FREQUENCE : \");<br> pinMode(Bouton_1, INPUT_PULLUP); \/\/ Nous utilisons Bouton_1 comme une entr\u00e9e digitale<br>    pinMode(Bouton_2, INPUT_PULLUP); \/\/ Nous utilisons Bouton_2 comme une entr\u00e9e digitale<br> frx = 145750, ftx = frx;     \/\/Fr\u00e9quence favorite.<br>    Pas = 12.5;                  \/\/ Pas <br>    squ = 1;                  \/\/ mettre a 0 pour entendre le souffle <br>    lcd.setCursor(2, 1);<br>    lcd.print((frx \/ 1000), 4);<br> envoyer_info_vers_SA818 (); \/\/ Appel du sous programme qui envoi les DATA<br>                                \/\/ Le r\u00e9cepteur va se posionner sur 145.750MHz au Pas de 12.5KHz et squelch \u00e0 1<br>  }<br> void loop() {<br><br> \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br> \/\/ Boucle qui scrute si on appuie sur l'un des 2 boutons \/\/\/<br> \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br><br> lcd.setCursor(2, 1);<br>   if (digitalRead(Bouton_1) == LOW)<br>   {<br>     delay(200);<br>     frx=frx-Pas;<br>     lcd.print((frx \/ 1000), 4);<br>   envoyer_info_vers_SA818 ();<br>   }<br>   if (digitalRead(Bouton_2) == LOW)<br>   {<br>     delay(200);<br>     frx=frx+Pas;<br>     lcd.print((frx \/ 1000), 4);<br>   envoyer_info_vers_SA818 ();<br>   }<br> }<br> <br>void envoyer_info_vers_SA818 ()<br> <br> \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br> \/\/  Sous programme qui permet d'envoyer \/\/\/<br> \/\/  les informations au module SA818    \/\/\/<br> \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br> {<br>   Serial.begin (9600);                 \/\/ On ouvre le port s\u00e9rie<br>   Serial.println (\"AT+DMOCONNECT\");    \/\/ On initialise la connection<br>   Serial.println(\"\");<br>   Serial.println (\"\");<br>   delay (100);                         \/\/  On laisse r\u00e9agir le SA818<br> Serial.print (\"AT+DMOSETGROUP=\");    \/\/  D\u00e9but de la s\u00e9quence<br>   Serial.print (\"0\");                  \/\/  D\u00e9viation \u00e0 12.5KHz<br>   Serial.print (\",\");<br>   Serial.print (ftx \/ 1000, 4);        \/\/  Fr\u00e9quence d'\u00e9mission m\u00eame si on n'utilise pas<br>   Serial.print (\",\");<br>   Serial.print (frx \/ 1000, 4);        \/\/  Fr\u00e9quence de r\u00e9ception<br>   Serial.print (\",\");<br>   Serial.print (\"0000\");               \/\/  Fr\u00e9quence CTCSS \u00e9mission m\u00eame si on n'utilise pas<br>   Serial.print (\",\");<br>   Serial.print (squ,0);                \/\/  0 pas de Squelch puis de 1 \u00e0 8 <br>   Serial.print (\",\");<br>   Serial.println (\"0000\");             \/\/  Fr\u00e9quence CTCSS de r\u00e9ception m\u00eame si on n'utilise pas<br>   Serial.println(\"\");<br>   Serial.println (\"\");<br> }<\/pre>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/VID_20210918_171055.mp4\"><\/video><\/figure>\n\n\n\n<p class=\"has-background has-very-light-gray-background-color\">Apr\u00e8s avoir d\u00e9cortiqu\u00e9 le programme avec <strong>NOAM<\/strong>, il n&rsquo;a pas r\u00e9sist\u00e9 \u00e0 l&rsquo;envie de c\u00e2bler et programmer en quelques minutes le bouton 3 pour basculer le squelch de 0 a 1 et inversement <br><br><strong>D\u00e9j\u00e0 la VERSION2 :<\/strong> R\u00e9cepteur VHF couvrant de 134 \u00e0 174 MHz au pas de 12.5 KHz et utilisant 3 boutons poussoirs :<br>1 = Descente, <br>2 = Mont\u00e9e en fr\u00e9quence de 12.5KHz<br>3 = Passage du squelch de 0 a 1 et inversement ! <br><br><strong>Il suffit d&rsquo;ajouter<\/strong> (au bon endroit) :<br><br>int Bouton_3 = 4; \/\/ Notre bouton 1 utilisera la borne 3 de l&rsquo;Arduino<br><br>pinMode(Bouton_3, INPUT_PULLUP); \/\/ Nous utilisons Bouton_3 comme une entr\u00e9e digitale<br><br>if (digitalRead(Bouton_3) == LOW)<br>   {<br>     if(squ &gt; 0) <br>     {<br>       squ = squ &#8211; 1;<br>       envoyer_info_vers_SA818 ();<br>       delay(200);<br>       } else {<br>         squ = squ + 1;<br>         envoyer_info_vers_SA818 ();<br>         delay(200);<br>       }<br>   } <br><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210918_170756-1024x768.jpg\" alt=\"\" class=\"wp-image-1673\" srcset=\"https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210918_170756-1024x768.jpg 1024w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210918_170756-300x225.jpg 300w, https:\/\/f6kmf.fr\/wp-content\/uploads\/2021\/09\/IMG_20210918_170756-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><strong>Maestro au piano !<\/strong><br><\/figcaption><\/figure>\n\n\n\n<p><br><br><br><\/p>\n\n\n\n<p><br><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Enfin, voil\u00e0 le r\u00e9cepteur VHF \u00e9volutif Nous allons commencer par un r\u00e9cepteur VHF \u00ab\u00a0minimaliste !\u00a0\u00bb pour nous familiariser avec la<\/p>\n","protected":false},"author":4,"featured_media":1665,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[27,10,7,23,14],"tags":[],"class_list":["post-1658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-atelier-jeunes","category-electronique","category-informatique-programmation","category-realisations"],"_links":{"self":[{"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/posts\/1658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1658"}],"version-history":[{"count":8,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/posts\/1658\/revisions"}],"predecessor-version":[{"id":1679,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/posts\/1658\/revisions\/1679"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/media\/1665"}],"wp:attachment":[{"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/categories?post=1658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/f6kmf.fr\/index.php\/wp-json\/wp\/v2\/tags?post=1658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}