SM5AUS Sequencer

Henrik SM5AUS have built a sequencer for his Ham Radio station, here is an article in Swedish.

En hembyggd ”sequencer” för tidsstyrning av externt PA och mastmonterade förförstärkare.
Av SM5AUS Henrik Lindh
Till min kommande utrustning som bl a ska möjliggöra månstuds-QSO:n behöver jag någon form av styrning med tidsfördröjning av ett kommande PA samt diverse förförstärkare i antennmasten. Allt ska styras från min IC 9100. Den har en utgång som ”nollar” en mittkontakt vid sändning.
Jag utgick från en ARDUINO MEGA processor tillsammans med ett tillhörande reläkort med fyra reläer. Allt byggdes in i en skärmbox tillsammans med ett par spänningsregulatorer. Alla in-och utgångar är försedda med avkopplingskondensatorer för att eliminera eventuella HF-problem. SEQUENCERN försörjs från en yttre spänningskälla.
Arbetskamraten Per hjälpte mig att skriva det enkla programmet. Som framgår av bilagd ritning och programsnutt så är tidsfördröjningen satt till 100 millisekunder. Denna delay kan man enkelt ändra i programmet.
Detta projekt är kanske löjligt enkelt för många amatörer som besitter mycket högre kompetens i teknik och programmering mm än vad jag har.
För min del blev det ett lyckat litet projekt som jag kommer att ha glädje av framöver. Eventuellt kan SEQUENCERN inspirera någon till ett liknande bygge –kanske utvecklat och förbättrat i sann amatöranda?
73 från Henrik SM5AUS

Schema

Code:

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 2;     // the number of the signal pin
const int ledPin1 =  13;     // the number of the relay pins
const int ledPin2 =  12;
const int ledPin3 =  11;
const int ledPin4 =  10;

// variables will change:
int buttonState = HIGH;         // variable for reading the signal status[/color]

void setup() {
  // initialize the relay pins as an output:
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  // initialize the signal pin as an input:
  pinMode(buttonPin, INPUT);    
}

void loop(){
  // read the state of the signal value:
  buttonState = digitalRead(buttonPin);

  // check if the signal is low.
  // if it is, the buttonState is LOW:
  if (buttonState == LOW) {    
    // turn relay on:
    digitalWrite(ledPin2, LOW); 
    digitalWrite(ledPin3, LOW); 
    digitalWrite(ledPin4, LOW);
    delay; //millisekunder
    digitalWrite(ledPin1, HIGH);  
  }
  else {
    // turn relay off:
    digitalWrite(ledPin1, LOW);
    delay(100); //millisekunder
    digitalWrite(ledPin2, HIGH);
    digitalWrite(ledPin3, HIGH);
    digitalWrite(ledPin4, HIGH);
  }
}

Front Inside