Приветствую, давно тут не был, в общем нужна помощь! Надумал себе сделать коммутатор, поставил треугольник на 20м, блок реле на три антенны, провел витую пару вниз с 10 го на второй этаж, обжал ее под LAN штеккер, купил даже корпус от старого но компактного роутера. Ну это все отступление, в общем дошла очередь до логики, нашел скетч (
http://www.r9j.ru/news/19/466/) перевел его под три антенны, вроде работает, но светодиоды мне не очень нравиться, хотелось бы по I2C высвечивать на экране 16Х2 название включенной антенны, можно и бегущей строкой(если не трудно).
вот что я так сказать обрезал с того сайта:
//Порты для выходов переключаемых антенн
int ant1 = A2;
int ant2 = A1;
int ant3 = A0;
//Порты для кнопок
int bt1 = 2;
int bt2 = 3;
int bt3 = 4;
int NumButton; //Номер нажатой кнопки
void setup () {
// Назначаем порты на вход
pinMode (bt1,INPUT);
pinMode (bt2,INPUT);
pinMode (bt3,INPUT);
// Назначаем порты на выход
pinMode (ant1,OUTPUT);
pinMode (ant2,OUTPUT);
pinMode (ant3,OUTPUT);
}
void SetButton () //Определяем номер нажатой кнопки
{
if (digitalRead (bt1) == HIGH) {NumButton = 1;}
if (digitalRead (bt2) == HIGH) {NumButton = 2;}
if (digitalRead (bt3) == HIGH) {NumButton = 3;}
}
void loop ()
{
SetButton ();
switch (NumButton) { //Выбираем что и где нужно установить в зависимости от номера нажатой кнопки
case 1: {digitalWrite (ant1, HIGH); //Устанавливаем «1» выход антенны 1, остальные сбрасываем в «0»
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
break;
}
case 2: {digitalWrite (ant2, HIGH); //Устанавливаем «1» выход антенны 2, остальные сбрасываем в «0»
digitalWrite (ant1, LOW);
digitalWrite (ant3, LOW);
break;
}
case 3: {digitalWrite (ant3, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant1, LOW);
break;
}
}
}