system
April 1, 2014, 3:13pm
1
including, considered the provisions of the EEPROM capacitors and signal frequency, antenna number (1)
get a signal "start tuner":
1.determine the frequency
2.The number for the antenna
3.ischem memory
4.write if found from memory
4.1.check, if it is bad, then the next.
5.looking for a minimum SWR
6.Writes memory frequency, position, phone antenna
I can not understand. Help with code please
// ?????????? ?????????? ???????:
#include <LiquidCrystal.h>
// ?????????? ?????????? ???????? ?????????:
#include <AccelStepper.h>
// ??????? ????? ???????? ????????? ? ????????? ?????? ???????:
AccelStepper stepper(AccelStepper::FULL4WIRE, 8, 9, 10, 11);
AccelStepper stepper2(AccelStepper::FULL4WIRE, 2, 3, 4, 5);
// ?????????? EEPROM - ?????????? ?????? ?????????:
#include <EEPROM.h>
// ?????????? ?????????????? ???????:
#include "math.h"
// ????????? ?????????? ? ???????? ?? ? ???????:
float f = 0;
float SWRpad = 0;
float SWRotr = 0;
float SWR = 0;
// ??????????? ???? ??????????:
LiquidCrystal lcd(10, 11, 12, 13, 14, 15);
void setup ()
{
analogReference(DEFAULT); // ??????????? ??????? ?????????? 5 ?.
lcd.begin(16, 2); // ?????? ??????????? ??????, 2 ?????? ?? 16 ????????.
// ???????????? ???????? ???????? ????????? ? ???????? ? ?????? (RPM).
stepper.setMaxSpeed(300.0);
stepper.setAcceleration(100.0);
stepper.moveTo(1000000);
stepper2.setMaxSpeed(300.0);
stepper2.setAcceleration(100.0);
stepper2.moveTo(1000000);
// ????????? ???????? ?????? ? ??????:
Serial.begin(9600);
}
void loop ()
{
value = EEPROM.read(a);
f = analogRead(A0); // ?????? ??????? ???????.
SWRpad = analogRead(A2); // ?????? ?????????? ???????? ?????.
SWRotr = analogRead(A1); // ?????? ?????????? ?????????? ?????.
// ?????? ? ????? ???:
SWR = (SWRpad + SWRotr)/(SWRpad - SWRotr);
// ?????????? ????? ???? ? ???????? SWR - ??????????, ??? ????????? ???????, ???? ????? ???????? ?????, ?? ?????????? ????? ? ????? ????.
// ????? ??????? ??????? ???????? ??????.
lcd.setCursor(0, 0);
lcd.print("SWR");
if (SWR < 1.3) {
lcd.setCursor(4, 0);
lcd.print("<1.3");
}
else if (SWR > 3) {
// Read new position
int f = analogRead(A0);
stepper.moveTo(f);
stepper.setSpeed(100);
stepper.runSpeedToPosition();
if (SWR < 1.3) {
lcd.setCursor(4, 0);
lcd.print(SWR) {
delay(1000);
// ???????? ? ??????? ??????:
delay (100);
lcd.clear();
}
system
April 1, 2014, 3:15pm
2
I can not understand.
I can't either. Start with 1). What does EEPROM capacitors mean? What signal frequency? What antenna?
system
April 1, 2014, 3:20pm
3
determine the frequency
looking in the memory
if found set of memory, check if it is bad, then the next.
Looking for minimum SWR, record memory frequency position.
system
April 1, 2014, 3:23pm
4
If the SWR is more than 1.3 will be displayed if the SWR is greater than 3, then do a full step stepper motor, as long until we find the lowest SWR
This is a guess: The SWR is the Standing Wave Ratio between the impedance of the feedline to an (amateur radio) antenna and the impedance presented by the antenna. A perfect match sees a 1:1 ratio. My guess is that this is some kind of modeling software that reads an external impedance and uses capacitor values stored in EEPROM to construct a filter of some kind and keeps adjusting them until the SWR is minimized. It appears that A0 inputs the frequency while A1 and A2 supply the two impedances. Because the filter is often constructed from a capacitor and a coil, my guess is that the code jockeys the tap on a coil to change the inductance for a given capacitor. Since my Russian is a bit lacking (e.g., zero), all of this is a guess.
system
April 1, 2014, 7:31pm
6
All right, you can help with the code please?
It is very necessary, please
There are some basic issues with the code:
variables: value and a are not defined.
analogRead() does not return a floating point value.
you redefine f as an int later in the program. This is never a good idea.
There are missing semicolons and braces ({}) missing.
Guessing at what you're trying to do and supplying the missing braces, I get:
// ?????????? ?????????? ???????:
#include <LiquidCrystal.h>
// ?????????? ?????????? ???????? ?????????:
#include <AccelStepper.h>
// ??????? ????? ???????? ????????? ? ????????? ?????? ???????:
//AccelStepper stepper(AccelStepper::FULL4WIRE, 8, 9, 10, 11);
//AccelStepper stepper2(AccelStepper::FULL4WIRE, 2, 3, 4, 5);
// ?????????? EEPROM - ?????????? ?????? ?????????:
#include <EEPROM.h>
// ?????????? ?????????????? ???????:
#include "math.h"
// ????????? ?????????? ? ???????? ?? ? ???????:
float f = 0;
float SWRpad = 0;
float SWRotr = 0;
float SWR = 0;
// ??????????? ???? ??????????:
LiquidCrystal lcd(10, 11, 12, 13, 14, 15);
void setup ()
{
analogReference(DEFAULT); // ??????????? ??????? ?????????? 5 ?.
lcd.begin(16, 2); // ?????? ??????????? ??????, 2 ?????? ?? 16 ????????.
// ???????????? ???????? ???????? ????????? ? ???????? ? ?????? (RPM).
//stepper.setMaxSpeed(300.0);
//stepper.setAcceleration(100.0);
//stepper.moveTo(1000000);
//stepper2.setMaxSpeed(300.0);
//stepper2.setAcceleration(100.0);
//stepper2.moveTo(1000000);
// ????????? ???????? ?????? ? ??????:
Serial.begin(9600);
}
void loop ()
{
byte value = EEPROM.read(a);
f = analogRead(A0); // ?????? ??????? ???????.
SWRpad = analogRead(A2); // ?????? ?????????? ???????? ?????.
SWRotr = analogRead(A1); // ?????? ?????????? ?????????? ?????.
// ?????? ? ????? ???:
SWR = (SWRpad + SWRotr)/(SWRpad - SWRotr);
// ?????????? ????? ???? ? ???????? SWR - ??????????, ??? ????????? ???????, ???? ????? ???????? ?????, ?? ?????????? ????? ? ????? ????.
// ????? ??????? ??????? ???????? ??????.
lcd.setCursor(0, 0);
lcd.print("SWR");
if (SWR < 1.3) {
lcd.setCursor(4, 0);
lcd.print("<1.3");
}
else {
if (SWR > 3) {
// Read new position
byte f = analogRead(A0);
stepper.moveTo(f);
stepper.setSpeed(100);
stepper.runSpeedToPosition();
}
if (SWR < 1.3) {
lcd.setCursor(4, 0);
lcd.print(SWR);
}
delay(1000);
}
// ???????? ? ??????? ??????:
delay (100);
lcd.clear();
}
which still won't compile because of missing data, but at least it's more readable.
system
April 1, 2014, 8:09pm
8
Please correct the code, append, I will not stay in debt
Hi, you are building an AUTO ANTENNA MATCHING UNIT, I assume.
Have you googled ATU arduino it is surprising what has already been done.
Tom....
system
April 1, 2014, 10:33pm
11
Devil40rus:
I can not deal with code
Then this probably wasn't a good choice of projects for you to take on, since it involves you dealing with code. If you want somebody to do the coding for you, you should ask for help in the Gigs & Collaborations section. Note that most people would expect to be paid for working for you.
Are you trying to get people to do your homework for you? Heheh. Also, your thread title is terrible, I'm not even sure why I clicked on this thread as I usually ignore such vague and pointless titles. Just an FYI.
system
April 2, 2014, 1:19pm
14
Devil40rus:
I am willing to pay
Then Reply #10 tells you what to do.