{"id":67,"date":"2015-07-31T05:01:02","date_gmt":"2015-07-31T03:01:02","guid":{"rendered":"https:\/\/pa3csg.nl\/?page_id=67"},"modified":"2024-01-02T07:29:42","modified_gmt":"2024-01-02T06:29:42","slug":"arduino-sequencer","status":"publish","type":"page","link":"https:\/\/pa3csg.nl\/?page_id=67","title":{"rendered":"Arduino sequencer"},"content":{"rendered":"<h1>Arduino sequencer<\/h1>\n<p>To work together with the Arduino Power SWR meter we made a simple sequencer with the Arduino nano. It is highly flexible and easy to build on a veroboard. I decided to use open collectors for switching PA, Preamp, coax relays. The schematic can viewed below.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" class=\"alignnone wp-image-1101\" src=\"https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/sequencer-nano-300x212.jpg\" alt=\"sequencer-nano\" width=\"587\" height=\"415\" srcset=\"https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/sequencer-nano-300x212.jpg 300w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/sequencer-nano-600x424.jpg 600w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/sequencer-nano-1024x724.jpg 1024w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/sequencer-nano.jpg 1169w\" sizes=\"(max-width: 587px) 100vw, 587px\" \/> <a href=\"https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/sequencer-nano.pdf\">sequencer-nano<\/a><\/p>\n<p>Pin D6 can be connected to the Power \/ SWR meter. If the Power meter detects an alarm.<br \/>\nThis pin will go high and switch of the sequencer without delays. Delays can be<br \/>\nset in the software. These advantages and the low part count make it hard to beat by a<br \/>\n&#8220;conventional&#8221; sequencer.<\/p>\n<p><img loading=\"lazy\" class=\"size-medium wp-image-957 aligncenter\" src=\"https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_5310-300x222.jpg\" alt=\"DSC_5310\" width=\"300\" height=\"222\" srcset=\"https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_5310-300x222.jpg 300w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_5310-600x445.jpg 600w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_5310-1024x759.jpg 1024w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_5310-80x60.jpg 80w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-medium wp-image-1108\" src=\"https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_6282-300x229.jpg\" alt=\"DSC_6282\" width=\"300\" height=\"229\" srcset=\"https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_6282-300x229.jpg 300w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_6282-600x459.jpg 600w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_6282-1024x783.jpg 1024w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_6282-80x60.jpg 80w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_6282.jpg 1914w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><img loading=\"lazy\" class=\"size-medium wp-image-1109 alignright\" src=\"https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_6284-300x232.jpg\" alt=\"DSC_6284\" width=\"300\" height=\"232\" srcset=\"https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_6284-300x232.jpg 300w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_6284-600x464.jpg 600w, https:\/\/pa3csg.nl\/wp-content\/uploads\/2015\/07\/DSC_6284-1024x791.jpg 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<div class=\"wrapcont\">\n<section id=\"content\">\n<div class=\"maincol\">\n<div class=\"cont\">\n<div class=\"item-page\">\n<div>\n<div id=\"highlighter_61793\" class=\"syntaxhighlighter xml\">\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td class=\"code\">\n<div class=\"container\">\n<div class=\"line number1 index0 alt2\"><code class=\"xml plain\">\/*<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"xml plain\">Sequencer veur Sjaek dae perse 2 processors in ein PA wiltj duuje<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"xml plain\">15 mei 2015<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"xml plain\">*\/<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">\/\/variables for the sequencer<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">int txgnd=2; \/\/ on pin Digital 2 PTT<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">int relay1=3; \/\/ on pin Digital 3<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">int relay2=4; \/\/ on pin Digital 4<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">int relay3=5; \/\/ on pin Digital 5<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">int alarminput = 6; \/\/on pin Digital 6<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">int alarmled = 7; \/\/ alarmled on pin 7<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">int txgndstate = 0;<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">int alarminputstate = 0;<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">void setup()\u00a0 {<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">\/\/setup sequencer<\/code><\/div>\n<div class=\"line number21 index20 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><\/div>\n<div class=\"line number22 index21 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">pinMode(relay1, OUTPUT); \/\/coaxrelay<\/code><\/div>\n<div class=\"line number23 index22 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">pinMode(relay2, OUTPUT); \/\/Power PA<\/code><\/div>\n<div class=\"line number24 index23 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">pinMode(relay3, OUTPUT);\u00a0 \/\/RF input relay<\/code><\/div>\n<div class=\"line number25 index24 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">pinMode(txgnd, INPUT_PULLUP);<\/code><\/div>\n<div class=\"line number26 index25 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">pinMode (alarminput, INPUT); \/\/ initialize alarminput as input<\/code><\/div>\n<div class=\"line number27 index26 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">pinMode(alarmled, OUTPUT); \/\/alarmled will light in case of alarm<\/code><\/div>\n<div class=\"line number28 index27 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><\/div>\n<div class=\"line number29 index28 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay1, LOW);<\/code><\/div>\n<div class=\"line number30 index29 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay2, LOW);<\/code><\/div>\n<div class=\"line number31 index30 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay3, LOW);<\/code><\/div>\n<div class=\"line number32 index31 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(alarmled, LOW);<\/code><\/div>\n<div class=\"line number33 index32 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(alarminput, LOW);<\/code><\/div>\n<div class=\"line number34 index33 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">}<\/code><\/div>\n<div class=\"line number35 index34 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><\/div>\n<div class=\"line number36 index35 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><\/div>\n<div class=\"line number37 index36 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">void loop() {<\/code><\/div>\n<div class=\"line number38 index37 alt1\"><code class=\"xml plain\">Serial.begin (9600);<\/code><\/div>\n<div class=\"line number39 index38 alt2\"><\/div>\n<div class=\"line number40 index39 alt1\"><code class=\"xml spaces\">\u00a0<\/code><code class=\"xml plain\">\/\/ code for sequencer<\/code><\/div>\n<div class=\"line number41 index40 alt2\"><code class=\"xml spaces\">\u00a0<\/code><\/div>\n<div class=\"line number42 index41 alt1\"><code class=\"xml plain\">txgndstate = digitalRead (txgnd);<\/code><\/div>\n<div class=\"line number43 index42 alt2\"><code class=\"xml spaces\">\u00a0<\/code><\/div>\n<div class=\"line number44 index43 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">if (txgndstate == LOW) { \/\/ go to transmit<\/code><\/div>\n<div class=\"line number45 index44 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay1, HIGH); \/\/coaxrelay ON<\/code><\/div>\n<div class=\"line number46 index45 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">delay(100); \/\/ 20 ms to let the coaxrelay switch<\/code><\/div>\n<div class=\"line number47 index46 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay2, HIGH); \/\/Power PA -ON<\/code><\/div>\n<div class=\"line number48 index47 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">delay(100); \/\/ 20 ms<\/code><\/div>\n<div class=\"line number49 index48 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay3, HIGH); \/\/RF-PA ON<\/code><\/div>\n<div class=\"line number50 index49 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">\/\/Serial.println<\/code><\/div>\n<div class=\"line number51 index50 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number52 index51 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">}<\/code><\/div>\n<div class=\"line number53 index52 alt2\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><\/div>\n<div class=\"line number54 index53 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">if (txgndstate == HIGH) { \/\/ go to receive<\/code><\/div>\n<div class=\"line number55 index54 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay3, LOW); \/\/RF-PA off<\/code><\/div>\n<div class=\"line number56 index55 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">delay(100); \/\/ 20 ms<\/code><\/div>\n<div class=\"line number57 index56 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay2, LOW); \/\/Power PA OFF<\/code><\/div>\n<div class=\"line number58 index57 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">delay(100); \/\/ 20 ms to let the coaxrelay switch<\/code><\/div>\n<div class=\"line number59 index58 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay1, LOW); \/\/coaxrelay OFF<\/code><\/div>\n<div class=\"line number60 index59 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number61 index60 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">}<\/code><\/div>\n<div class=\"line number62 index61 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number63 index62 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number64 index63 alt1\"><code class=\"xml spaces\">\u00a0<\/code><\/div>\n<div class=\"line number65 index64 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">alarminputstate = digitalRead (alarminput);<\/code><\/div>\n<div class=\"line number66 index65 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number67 index66 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">if (alarminputstate == HIGH) {<\/code><\/div>\n<div class=\"line number68 index67 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay3, LOW); \/\/RF-PA OFF<\/code><\/div>\n<div class=\"line number69 index68 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay2, LOW); \/\/Power PA OFF<\/code><\/div>\n<div class=\"line number70 index69 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(relay1, LOW); \/\/Coaxrelay OFF<\/code><\/div>\n<div class=\"line number71 index70 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">digitalWrite(alarmled, HIGH); \/\/Alarmled ON<\/code><\/div>\n<div class=\"line number72 index71 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">delay(10);<\/code><\/div>\n<div class=\"line number73 index72 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">while(1) { } \/\/endless loop to stop<\/code><\/div>\n<div class=\"line number74 index73 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number75 index74 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"xml plain\">}<\/code><\/div>\n<div class=\"line number76 index75 alt1\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number77 index76 alt2\"><code class=\"xml spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><\/div>\n<div class=\"line number78 index77 alt1\"><code class=\"xml spaces\">\u00a0\u00a0<\/code><code class=\"xml plain\">}<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"rightcol\">\n<div class=\"module\"><\/div>\n<div class=\"module\">\n<div>\n<div>\n<div>\n<h3>Google ads<\/h3>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"clr\"><\/div>\n<\/div>\n<\/section>\n<\/div>\n<footer>\u00a0<\/footer>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Arduino sequencer To work together with the Arduino Power SWR meter we made a simple sequencer with the Arduino nano. It is highly flexible and <a class=\"mh-excerpt-more\" href=\"https:\/\/pa3csg.nl\/?page_id=67\" title=\"Arduino sequencer\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":957,"parent":0,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"categories":[29],"tags":[],"_links":{"self":[{"href":"https:\/\/pa3csg.nl\/index.php?rest_route=\/wp\/v2\/pages\/67"}],"collection":[{"href":"https:\/\/pa3csg.nl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pa3csg.nl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pa3csg.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pa3csg.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=67"}],"version-history":[{"count":11,"href":"https:\/\/pa3csg.nl\/index.php?rest_route=\/wp\/v2\/pages\/67\/revisions"}],"predecessor-version":[{"id":1945,"href":"https:\/\/pa3csg.nl\/index.php?rest_route=\/wp\/v2\/pages\/67\/revisions\/1945"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pa3csg.nl\/index.php?rest_route=\/wp\/v2\/media\/957"}],"wp:attachment":[{"href":"https:\/\/pa3csg.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=67"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pa3csg.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=67"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pa3csg.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=67"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}