Zendamateur.COM

24 uur per dag QRV
Het is nu 22 jan 2017, 17:11

Alle tijden zijn GMT + 1 uur




Plaats een nieuw onderwerp Antwoord op onderwerp  [ 4 berichten ] 
Auteur Bericht
 Berichttitel: S-Meter History Arduino
BerichtGeplaatst: 11 okt 2016, 19:48 
Offline
Avatar gebruiker

Geregistreerd: 08 mei 2011, 18:03
Berichten: 912
Hallo Allemaal,


Ik ben begonnen aan het maken van een arduino schakeling
voor aan een Yaesu FT817.

Het wordt dus een Arduino Nano met Pixel LCD display
aan een Nano met een RS232 naar cat control FT817

Dus een stand alone kastje aan het Yeasu setje

Ideaal voor Vossen-jagen maar natuurlijk ook
voor gewoon mee kijken als je via repaeter mobile mee luisterd etc

Ik zal regelmatig hier proberen vorderingen te tonen van de sketch en de hardware

Zie plaatje zoals ik het al werkend heb op de PC in MyMapping,exe software.


Bijlagen:
Opmerkingen bij bestand: Picture of ft817 on 144800
S meter history in MyMapping

FT817 APRS.png
FT817 APRS.png [ 128.3 KiB | 693 keer bekeken ]

_________________
73's
PA3BNX
Lodewijk

Mijn Credo!

Zelfbouw:
Minimaal hardware
en maximaal software.
Omhoog
 Profiel  
Antwoord met een citaat  
BerichtGeplaatst: 14 okt 2016, 13:33 
Offline
Avatar gebruiker

Geregistreerd: 08 mei 2011, 18:03
Berichten: 912
Hallo Allemaal,


Alvast een voor proefje

Met yaesu ft817 en cat62 kabel is een max232 nodig denk ik

Aangesloten op pin 0 en 1
Dus moet er af als je wilt programmeren via de USB<>PC

Nu nog op zoek naar een geschilkt Display

Dat moet een pixel display zijn denk ik dus geen Alfa nummeriek display


Setupje voor de FT817 Arduino Code.

Alleen nog aan de slag in de GFXDisplay() routine

Alle verzamelde Smeter values staan in arrS[]

Alle hulp en commentaar welkom !!!!

Code:

/* PA3BNX FT817 S-meter
 * 12-10-2016
 * 13-10-2016
 * I understand that the Arduino Uno and Nano have just one UART
 * so we must connect a max232 on pin 0 and 1
 * Todo communication to the FT817 with Cat62 Yaesu Cable
 * One INPUT pin with button for Reset The S meter display
 */

//Integer
const int cDelayTime=1000;
const byte cUarray=100;
const byte cEmpty=255;
const byte cResetPin=2;

//String
String inputString;
//Bool
bool bStringComplete;
//Array
byte arrS[cUarray];

//Functions
void AddNewSmeter(byte s)
{
static int c;

//With 255 just reset pointer
if (s==cEmpty) {c=0;return;}

c+=1;

if (c>cUarray)
{
  for (byte i=1;i<cUarray;i++)
  {
   arrS[i-1]=arrS[i];
  }
 c=cUarray;
}

arrS[c]=s;
}//Last StoreSmeter


void AskFreqFT817()
{
  //Read RX Status
  //x,x,x.x,e7 (231)
  byte buf[]={0,0,0,0,231};
  Serial.write(buf,5);
}//Last Ask


void ClearSmeter()
{
for (int i=0;i<cUarray;i++)
 {
  arrS[i]=cEmpty;
 }
}//Last ClearSmeter

byte ExtractFT817Smeter(String MyString)
{
  //Not ready yet
  //Read RX Status
  //x,x,x.x,f7  (247)
  //76543210
  //3210=S meter data
  //7=Squels
  byte x;
  byte buf[5];

  MyString.getBytes(buf,5);
     
  if (buf[4]==247)
  {
   if (buf[0] && 1) {x+=1;}
   if (buf[0] && 2){x+=2;}
   if (buf[0] && 4){x+=4;}
   if (buf[0] && 8){x+=8;}
   //x ranges between 0 and 15
   return x;
  }
   return cEmpty;
}//Last ExtractFT817Smeter

void SerialEvent()
 {
   while (Serial.available()) {
    //get the new byte:
    byte inByte=(byte)Serial.read();
   
    if (inputString.length() > 4 )
     {
      bStringComplete=true;
     }
     else
     {
      //add it to the inputString:
      inputString+=inByte;
     }
   }
 }//Last SerialEvent
   

void GFXDisplay()
{
//Show here the Values in arrS[]
//On a Display
for (byte i=0;i<cUarray;i++)
{
 if (arrS[i]=cEmpty){return;}
 //Draw here values from arrS[]
}
}//Last GFXDisplay

void setup() {
  // put your setup code here, to run once:
Serial.begin(4800);

pinMode(13,OUTPUT);//Led 13 as Received Cat-ft817 cmd
pinMode(cResetPin,INPUT_PULLUP);

ClearSmeter();
AddNewSmeter(cEmpty);

}

void loop() {
  // put your main code here, to run repeatedly:

byte count;

AskFreqFT817();

SerialEvent();

delay(cDelayTime);

 tryagain:

if (bStringComplete==true)
{
 digitalWrite(13,HIGH);//Something RXed

 if (digitalRead(cResetPin)==LOW)
 {
  ClearSmeter();
  AddNewSmeter(cEmpty);
  GFXDisplay();
 }
 
 if (inputString != "")
  {
   byte s = ExtractFT817Smeter(inputString); 
   AddNewSmeter(s);
   GFXDisplay();
  }
  digitalWrite(13,LOW);//Processed Something RXed
 }
else
 {
  //Try max 10 times before ask for new Smeter
  count+=1;
  if (count<10)
   {
    //Wait for RXed data
    SerialEvent();
    goto tryagain;
   }
   
 }//Last bStringComplete

 inputString="";
 bStringComplete=false;
 count=0; //Not needed I think because loop starts again

}//Last Loop




Bijlagen:
max232-ft817.jpg
max232-ft817.jpg [ 67.64 KiB | 587 keer bekeken ]

_________________
73's
PA3BNX
Lodewijk

Mijn Credo!

Zelfbouw:
Minimaal hardware
en maximaal software.
Omhoog
 Profiel  
Antwoord met een citaat  
BerichtGeplaatst: 14 okt 2016, 14:14 
Offline
Avatar gebruiker

Geregistreerd: 19 jul 2010, 14:43
Berichten: 484
Woonplaats: JO21tv
Vroeger gebruikte ik altijd braaf de MAX232 maar met het gebruik van USB to RS232 converters is het niet meer nodig, die dingen werken prima op 5 volt en er komt ook niet veel meer uit.

Let op dat de MAX232 het signaal inverteert.

Wat ik tegenwoordig doe is een FTDI chippie inbouwen, te koop voor een kleine 2 euro, dan kan ik mijn project direct op de USB poort aansluiten. geen geklooi meer fysieke met com poorten ( die op veel computers al helemaal niet meer aanwezig zijn)


Bijlagen:
FTDI-RS232.jpg
FTDI-RS232.jpg [ 19.37 KiB | 569 keer bekeken ]

_________________
73, Marcel

website: PG8M
Omhoog
 Profiel  
Antwoord met een citaat  
BerichtGeplaatst: 04 nov 2016, 19:41 
Offline
Avatar gebruiker

Geregistreerd: 08 mei 2011, 18:03
Berichten: 912
Hallo Allemaal,

Tsja toch een max232 op gaatjes print gezet.

Bij USb spreekt men van Master en slave
De bedoeling is van Arduino naar FT817 dus niet naar USB van de PC

Het Display moet ik nog uitzoeken
Ik wil het niet wagen om de poortjes
direct op 5 volt van de arduino uno te zetten.

Ben op zoek naat level converter printjes etc

morgen op DvRA


Bijlagen:
BackILS-1.jpg
BackILS-1.jpg [ 68.73 KiB | 399 keer bekeken ]
FrontILS-1.jpg
FrontILS-1.jpg [ 74.73 KiB | 399 keer bekeken ]
Max232-2-1.jpg
Max232-2-1.jpg [ 76.54 KiB | 399 keer bekeken ]

_________________
73's
PA3BNX
Lodewijk

Mijn Credo!

Zelfbouw:
Minimaal hardware
en maximaal software.
Omhoog
 Profiel  
Antwoord met een citaat  
Geef de vorige berichten weer:  Sorteer op  
Plaats een nieuw onderwerp Antwoord op onderwerp  [ 4 berichten ] 

Alle tijden zijn GMT + 1 uur


Wie is er online

Gebruikers op dit forum: Google Feedfetcher en 1 gast


Je mag geen nieuwe onderwerpen in dit forum plaatsen
Je mag niet antwoorden op een onderwerp in dit forum
Je mag je berichten in dit forum niet wijzigen
Je mag je berichten niet uit dit forum verwijderen
Je mag geen bijlagen toevoegen in dit forum

Zoek naar:
Ga naar:  
Powered by phpBB® Forum Software © phpBB Group
phpBB.nl Vertaling