Skončila zimní sezóna a tím i první testování přijímací antény SALA. Uživatelé se vesměs shodli na konstatování, že to chodí dobře. Není to lepší než Beverage, ale tím, že je to tichá anténa, je na ní DX lépe slyšet, než na vysílací anténu. Obecně panuje shoda, že je to lepší, než K9AY, ale srovnatelné s DHDL. Proti ní to má výhodu v bohatém směrování.

Schéma ovládací jednotky verze 2

(kliknout pro zvětšení)

Navrhl jsem nový ovládaci panel. Tentokrát na Arduinu Nano. Potřebné porty se získávaji na expandéru MCP23017 a spínání relé opět obstarává ULN2803. Neřešil jsem konektor pro ovládací kabel. Je k mání 8 pinů plus zem. Je na libovůli každého, co si tam dá. Nabízí se použít STP kabel a konektor Canon DB9. Hlavně využít stínění. U předešlého modelu bývá problém s pronikáním VF do Arduina. Ovládací kabel přeci jen funguje jako poměrně dlouhá anténa. A nezapomenout na propojeni zemí mezi ovládačkou a zdrojem pro napájeni antény. Ta je samozřejmě oddělena výhybkou, která byla na původni ovládačce.

Osazovací plán - vrchní strana desky

Osazovací plán - vrchní strana desky

 

Osazovací plán - spodní strana desky

Osazovací plán - spodní strana desky

 

Hotová deska - horní strana

Hotová deska - horní strana

 

 Hotová deska - spodní strana

Hotová deska - spodní strana

 

Ke stažení:

Schéma (formát PDF)

Podklady pro výrobu ploš. spojů (ZIP, formát Gerber)

Kód pro Arduino (shodný s následujícím textovým souborem, určen pro software Arduino a vhodný přímo k natažení do paměto modulu Arduino)

Standa OK1AU

Kód Arduino:

/* 
HARDSOFT 3/2017
Ovladaci panel pro anteny SALA Arduino Nano. 
Piny D2-D9 jsou pro tlacitka.

TABULKA PREPINANI:
NORTHWEST: Sepnout North_B & South_A
NORTHEAST: Sepnout East_B & West_A
SOUTHEAST: Sepnout South_B & North_A
SOUTHWEST: Sepnout West_B & East_A
NORTH: Sepnout North_B & East_B & South_A & West_A
EAST: Sepnout South_B & East_B & North_A & West_A
SOUTH: Sepnout South_B & West_B & North_A & East_A
WEST: Sepnout North_B & West_B & South_A & East_A

 */
#include "Wire.h"

byte a=1;
byte b=102;
byte c=0;
 
 void setup()
{
  Serial.begin (9600);
  // nastaveni pinu
  for (int i=2; i<10; i++){
   pinMode(i,INPUT);
   digitalWrite(i, HIGH);
  }
     Wire.begin();
     Wire.beginTransmission(0x20); //begins talking to the slave device
     Wire.write(0x00); //selects the IODIRA register
     Wire.write(0x00); //this sets all port A pins to outputs
     Wire.endTransmission(); //stops talking to device
     Wire.beginTransmission(0x20);//begins talking again to slave device
     Wire.write(0x01); //selects the IODIRB register
     Wire.write(0x00); // sets all port B pins to outputs
     Wire.endTransmission(); //ends communication with slave device
     test();
   }

 void loop()
{

  //----------------------------------------------- PORTa LED tlacitka,PORTb rele
                         if (digitalRead(2) == LOW){a = B00000001; b = B01100110;}  //NORTH
                    else if (digitalRead(3) == LOW){a = B00000010; b = B01100000;}  //NORTHEAST 
                    else if (digitalRead(4) == LOW){a = B00000100; b = B01101001;}  //EAST
                    else if (digitalRead(5) == LOW){a = B00001000; b = B00001001;}  //SOUTHEAST
                    else if (digitalRead(6) == LOW){a = B00010000; b = B10011001;}  //SOUTH
                    else if (digitalRead(7) == LOW){a = B00100000; b = B10010000;}  //SOUTHWEST
                    else if (digitalRead(8) == LOW){a = B01000000; b = B10010110;}  //WEST
                    else if (digitalRead(9) == LOW){a = B10000000; b = B00000110;}  //NORTHWEST
                    

        Wire.beginTransmission(0x20);
        Wire.write(0x12);                           // address port A
        Wire.write((byte)a);                        //value to send
        Wire.endTransmission();
        Wire.beginTransmission(0x20);
        Wire.write(0x13);                           // address port B
        Wire.write((byte)b);                        // value to send
        Wire.endTransmission();                 
                    
}
void test() 
{
  for (int i=0; i<8; i++){
      c = (1<<i);
        Wire.beginTransmission(0x20);
        Wire.write(0x12);                           // address port A
        Wire.write((byte)c);                        //value to send
        Wire.endTransmission();
        delay(300);
   }
}