On Friday, September 11, 2020 at 12:44:51 AM UTC+1, Brian Howie wrote:
On 09/09/2020 14:25, gareth evans wrote:
Just came in via email ...
https://thepihut.com/products/8-channel-relay-expansion-board-for-raspberry-pi?utm_source=The+Pi+Hut&utm_campaign=ddf54ca98b-EMAIL_CAMPAIGN_2020_09_09_08_00&utm_medium=email&utm_term=0_a4028431b8-ddf54ca98b-78131173&mc_cid=ddf54ca98b&mc_eid=22518990c8
It might be useful for MH preamp and linear changeover sequencing. I
know someone who uses an Arduino for this. Similar to this :-
https://radio.g4hsk.co.uk/2020/02/24/an-arduino-based-four-event-sequencer/
Here's a bit of Arduino code wot I wrote to select the appropriate low pass filter on a broadband amp (output stage of a Codan NGT commercial HF radio) from the "band data" of an FT-817ND. The band data is actually an analogue voltage which changes
according to the band.
The LPF board in the Codan NGT's amplifier just needs the appropriate pin to be grounded, and the Arduino's digital outputs are man enough for the job.
// December 28th 2019
// Mike Gathergood, G4KFK
// Interface between Yaesu FT-817ND
// and Codan NGT HF Amplifier
// Determines Codan NGT's LPF settings
// from Yaesu FT-817ND band data output
//
mike@g4kfk.co.uk
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x3F
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
int bandPin = A2; // Analog Input A2 reads band data from
int banddata = 0; // Yaesu FT-817ND accessory port
int band = 0; //
int pttPin = A0; // Digital Input A0 reads PTT from
int ptt = 0; // Yaesu FT-817ND accessory port
int band1Pin = 8; // d8 is low for 1.6 to 2.4MHz
int band3Pin = 9; // d9 is low for 2.4 to 5.6MHz
int band4Pin = 10; // d10 is low for 5.6 to 8.5MHz
int band5Pin = 11; // d11 is low for 8.5 to 13MHz
int band6Pin = 12; // d12 is low for 13 to 19.7MHz
int band7Pin = 13; // d13 is low for 19.7 to 30MHz
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);
void setup()
{
pinMode(band1Pin, OUTPUT);
pinMode(band3Pin, OUTPUT);
pinMode(band4Pin, OUTPUT);
pinMode(band5Pin, OUTPUT);
pinMode(band6Pin, OUTPUT);
pinMode(band7Pin, OUTPUT);
pinMode (pttPin, INPUT_PULLUP);
lcd.begin (16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.setCursor (0,0);
lcd.print("G4KFK Linear Amp");
lcd.setCursor (0,1);
lcd.print("V1.0 Dec 2019 ");
delay (2000);
lcd.setCursor (0,1);
lcd.print(" ");
}
void loop()
{
banddata = analogRead(bandPin);
lcd.setCursor (0,1);
if ((banddata >50) && (banddata <100))
{
lcd.print("160m");
digitalWrite(band1Pin,LOW);
digitalWrite(band3Pin,HIGH);
digitalWrite(band4Pin,HIGH);
digitalWrite(band5Pin,HIGH);
digitalWrite(band6Pin,HIGH);
digitalWrite(band7Pin,HIGH);
}
if ((banddata >100) && (banddata <150))
{
lcd.print("80m ");
digitalWrite(band1Pin,HIGH);
digitalWrite(band3Pin,LOW);
digitalWrite(band4Pin,HIGH);
digitalWrite(band5Pin,HIGH);
digitalWrite(band6Pin,HIGH);
digitalWrite(band7Pin,HIGH);
}
if ((banddata >150) && (banddata <230))
{
lcd.print("40m ");
digitalWrite(band1Pin,HIGH);
digitalWrite(band3Pin,HIGH);
digitalWrite(band4Pin,LOW);
digitalWrite(band5Pin,HIGH);
digitalWrite(band6Pin,HIGH);
digitalWrite(band7Pin,HIGH);
}
if ((banddata >230) && (banddata <300))
{
lcd.print("30m ");
digitalWrite(band1Pin,HIGH);
digitalWrite(band3Pin,HIGH);
digitalWrite(band4Pin,HIGH);
digitalWrite(band5Pin,LOW);
digitalWrite(band6Pin,HIGH);
digitalWrite(band7Pin,HIGH);
}
if ((banddata >300) && (banddata <360))
{
lcd.print("20m ");
digitalWrite(band1Pin,HIGH);
digitalWrite(band3Pin,HIGH);
digitalWrite(band4Pin,HIGH);
digitalWrite(band5Pin,HIGH);
digitalWrite(band6Pin,LOW);
digitalWrite(band7Pin,HIGH);
}
if ((banddata >380) && (banddata <450))
{
lcd.print("17m ");
digitalWrite(band1Pin,HIGH);
digitalWrite(band3Pin,HIGH);
digitalWrite(band4Pin,HIGH);
digitalWrite(band5Pin,HIGH);
digitalWrite(band6Pin,LOW);
digitalWrite(band7Pin,HIGH);
}
if ((banddata >450) && (banddata <500))
{
lcd.print("15m ");
digitalWrite(band1Pin,HIGH);
digitalWrite(band3Pin,HIGH);
digitalWrite(band4Pin,HIGH);
digitalWrite(band5Pin,HIGH);
digitalWrite(band6Pin,HIGH);
digitalWrite(band7Pin,LOW);
}
if ((banddata >500) && (banddata <560))
{
lcd.print("12m ");
digitalWrite(band1Pin,HIGH);
digitalWrite(band3Pin,HIGH);
digitalWrite(band4Pin,HIGH);
digitalWrite(band5Pin,HIGH);
digitalWrite(band6Pin,HIGH);
digitalWrite(band7Pin,LOW);
}
if ((banddata >560) && (banddata <610))
{
lcd.print("10m ");
digitalWrite(band1Pin,HIGH);
digitalWrite(band3Pin,HIGH);
digitalWrite(band4Pin,HIGH);
digitalWrite(band5Pin,HIGH);
digitalWrite(band6Pin,HIGH);
digitalWrite(band7Pin,LOW);
}
if ((banddata >610) && (banddata <700)) lcd.print("6m ");
if ((banddata >700) && (banddata <780)) lcd.print("2m ");
if ((banddata >780) && (banddata <900)) lcd.print("70cm");
lcd.setCursor (13,1);
ptt = digitalRead(pttPin);
if (ptt==HIGH) lcd.print("RCV");
if (ptt==LOW) lcd.print("XMT");
}
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)