#1 2020-04-09 18:49:19

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

прошу помощи

готовый скетч с интернета .выдает ошибку .  ссылка  http://rw9jd.qrz.ru/switch.php   очень нужно.написал бы автору - но его уже нет.

// Антенный переключатель 1х8 v.1.01
// © Игорь Уватенков (R9JD)
// Скетч написан под Arduino Pro Micro
// Возможно использование на других версиий МК с назначением соответствующих портов входа/выхода

int ant1 = A3; //Порты выходов переключаемых антенн
int ant2 = A2;
int ant3 = A1;
int ant4 = A0;
int ant5 = 15;
int ant6 = 14;
int ant7 = 16;
int ant8 = 10;

int dataD = 2; //Порты BAND DATA
int dataC = 3;
int dataB = 4;
int dataA = 5;

int btn = 9; //Порт кнопок
int btauto = 7; //Порт установки режимов Авто/Ручной
int dataIcom = 8; //Порт чтения диапазонного напряжения ICOM
int ledauto = 6; //Порт индикации
boolean setauto = true; //Режим авто
int NumButton = 1; //Номер нажатой кнопки
int Trcvr = 1; //Применяемое оборудование (1-Yaesu, 0-Icom)
int Band; // диапазон


union InBandData {
struct {
unsigned dt0: 1;
unsigned dt1: 1;
unsigned dt2: 1;
unsigned dt3: 1;
} bits ;
uint8_t value;
};
InBandData BD; // Переменная для хранения состояния кода диапазона

void setup () {
// Назначаем порты на вход
pinMode (dataA,INPUT);
pinMode (dataB,INPUT);
pinMode (dataC,INPUT);
pinMode (dataD,INPUT);
pinMode (btauto,INPUT);
// Назначаем порты на выход
pinMode (ant1,OUTPUT);
pinMode (ant2,OUTPUT);
pinMode (ant3,OUTPUT);
pinMode (ant4,OUTPUT);
pinMode (ant5,OUTPUT);
pinMode (ant6,OUTPUT);
pinMode (ant7,OUTPUT);
pinMode (ant8,OUTPUT);
pinMode (ledauto,OUTPUT);
}

void SetButton () //Определяем номер нажатой кнопки
{
if (analogRead (btn) >= 900 && analogRead (btn) ≤ 910) {NumButton = 1;}
if (analogRead (btn) >= 877 && analogRead (btn) ≤ 887) {NumButton = 2;}
if (analogRead (btn) >= 853 && analogRead (btn) ≤ 863) {NumButton = 3;}
if (analogRead (btn) >= 816 && analogRead (btn) ≤ 826) {NumButton = 4;}
if (analogRead (btn) >= 761 && analogRead (btn) ≤ 771) {NumButton = 5;}
if (analogRead (btn) >= 670 && analogRead (btn) ≤ 680) {NumButton = 6;}
if (analogRead (btn) >= 490 && analogRead (btn) ≤ 500) {NumButton = 7;}
if (analogRead (btn) ≤ 20) {NumButton = 8;}
}

void SetAntenna (int val)
{
switch (val) { //Выбираем порты которые нужно установить в зависимости от нажатой кнопки
case 1: {digitalWrite (ant1, HIGH); //Устанавливаем «1» выход антенны 1, остальные сбрасываем в «0»
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 2: {digitalWrite (ant2, HIGH); //Устанавливаем «1» выход антенны 2, остальные сбрасываем в «0»
digitalWrite (ant1, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 3: {digitalWrite (ant3, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 4: {digitalWrite (ant4, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 5: {digitalWrite (ant5, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 6: {digitalWrite (ant6, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 7: {digitalWrite (ant7, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant8, LOW);
break;
}
case 8: {digitalWrite (ant8, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant1, LOW);
break;
}
}
}

uint8_t BinBandData () //Считываем двоичный код Band Data Yaesu
{
BD.value = 0;
if (digitalRead (dataA) == HIGH) {BD.bits.dt0=1;} else {BD.bits.dt0=0;};
if (digitalRead (dataB) == HIGH) {BD.bits.dt1=1;} else {BD.bits.dt1=0;};
if (digitalRead (dataC) == HIGH) {BD.bits.dt2=1;} else {BD.bits.dt2=0;};
if (digitalRead (dataD) == HIGH) {BD.bits.dt3=1;} else {BD.bits.dt3=0;};
switch (BD.value){
case 1: Band = 160; break;
case 2: Band = 80; break;
case 3: Band = 40; break;
case 4: Band = 30; break;
case 5: Band = 20; break;
case 6: Band = 17; break;
case 7: Band = 15; break;
case 8: Band = 12; break;
case 9: Band = 10; break;
case 10: Band = 6; break;
}
}

void BandIcom () //Считываем уровень диапазонного напряжения Icom
{
if (analogRead (dataIcom) >= 910 && analogRead (dataIcom) ≤ 1023) {Band = 160;}
if (analogRead (dataIcom) >= 783 && analogRead (dataIcom) ≤ 837) {Band = 80;}
if (analogRead (dataIcom) >= 635 && analogRead (dataIcom) ≤ 711) {Band = 40;}
if (analogRead (dataIcom) >= 511 && analogRead (dataIcom) ≤ 574) {Band = 20;}
if (analogRead (dataIcom) >= 369 && analogRead (dataIcom) ≤ 437) {Band = 15;}
if (analogRead (dataIcom) >= 228 && analogRead (dataIcom) ≤ 294) {Band = 10;}
if (analogRead (dataIcom) >= 0 && analogRead (dataIcom) ≤ 127) {Band = 30;}
}

void loop ()
{

if (digitalRead (btauto) == HIGH && setauto == false) {setauto = true;}

if (digitalRead (btauto) == HIGH && setauto == true) {setauto = false;}

if (setauto == false) //Если ручной режим
{
digitalWrite (ledauto, LOW); //Тушим светодиод режима Авто
SetButton (); //Получаем номер кнопки
}
else //Если авторежим включаем каналы
{
digitalWrite (ledauto, HIGH); //Включаем светодиод режима Авто
if (Trcvr == 1){BinBandData ();} //Декодируем диапазон
else{BandIcom ();}
//Ниже, в блоке условий, нужно указать какая антенна будет включена в авторежиме,
//в зависимости от декодированного диапазона присвоить, NumButton номер нажатой кнопки.
//По номеру кнопки программа включит нужный канал,
//номер кнопки соответствует номеру канала (антенны)
if (Band == 160) {NumButton = 1;} //КВ диапазоны
if (Band == 80) {NumButton = 2;}
if (Band == 40) {NumButton = 3;}
if (Band == 20) {NumButton = 4;}
if (Band == 15) {NumButton = 5;}
if (Band == 10) {NumButton = 6;}
if (Band == 30) {NumButton = 7;} //WARC диапазоны
if (Band == 12) {NumButton = 8;}
//if (Band == 17) {NumButton = 7;}
//if (Band == 6) {NumButton = 8;}
}
SetAntenna (NumButton);

delay  (300); //Мониторим три раза в секунду, можете поставить свое время (в милисекундах)
}

#2 2020-04-09 18:56:23

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

благодагность безгранична,в пределах разумного.

#3 2020-04-09 19:15:50

Watchdog
Гость

Re: прошу помощи

+380505304388 пишет:

готовый скетч с интернета .выдает ошибку .  ссылка  http://rw9jd.qrz.ru/switch.php   очень нужно.написал бы автору - но его уже нет. .... благодагность безгранична,в пределах разумного.

А наследники копирайта? Никто скобки в столбик считать не захочет. Опубликуйте полный текст в читабельном виде, тогда может кто и поможет. sad

#4 2020-04-09 19:25:10

vvr
Участник
Зарегистрирован: 2015-04-12
Сообщений: 649

Re: прошу помощи

и ошибки публикуйте здесь.
по ссылкам никто лазить не будет.

#5 2020-04-09 20:05:43

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

а что такое "наследники копирайта" ?

#6 2020-04-09 20:09:05

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

ошибки:
Arduino: 1.8.12 (Windows 7), Плата:"Arduino Leonardo"

D:\Arduino\arduino-builder -dump-prefs -logger=machine -hardware D:\Arduino\hardware -tools D:\Arduino\tools-builder -tools D:\Arduino\hardware\tools\avr -built-in-libraries D:\Arduino\libraries -libraries C:\Users\Dell\Documents\Arduino\libraries -fqbn=arduino:avr:leonardo -vid-pid=0X2341_0X8037 -ide-version=10812 -build-path C:\Users\Dell\AppData\Local\Temp\arduino_build_507286 -warnings=none -build-cache C:\Users\Dell\AppData\Local\Temp\arduino_cache_667265 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=D:\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=D:\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=D:\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=D:\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=D:\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=D:\Arduino\hardware\tools\avr -verbose C:\Users\Dell\Documents\Arduino\pereklusatel\3_pereklushat\3_pereklushat.ino
D:\Arduino\arduino-builder -compile -logger=machine -hardware D:\Arduino\hardware -tools D:\Arduino\tools-builder -tools D:\Arduino\hardware\tools\avr -built-in-libraries D:\Arduino\libraries -libraries C:\Users\Dell\Documents\Arduino\libraries -fqbn=arduino:avr:leonardo -vid-pid=0X2341_0X8037 -ide-version=10812 -build-path C:\Users\Dell\AppData\Local\Temp\arduino_build_507286 -warnings=none -build-cache C:\Users\Dell\AppData\Local\Temp\arduino_cache_667265 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=D:\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=D:\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=D:\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=D:\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=D:\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=D:\Arduino\hardware\tools\avr -verbose C:\Users\Dell\Documents\Arduino\pereklusatel\3_pereklushat\3_pereklushat.ino
Using board 'leonardo' from platform in folder: D:\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: D:\Arduino\hardware\arduino\avr
Detecting libraries used...
"D:\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10812 -DARDUINO_AVR_LEONARDO -DARDUINO_ARCH_AVR -DUSB_VID=0x2341 -DUSB_PID=0x8036 "-DUSB_MANUFACTURER=\"Unknown\"" "-DUSB_PRODUCT=\"Arduino Leonardo\"" "-ID:\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Arduino\\hardware\\arduino\\avr\\variants\\leonardo" "C:\\Users\\Dell\\AppData\\Local\\Temp\\arduino_build_507286\\sketch\\3_pereklushat.ino.cpp" -o nul
Generating function prototypes...
"D:\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10812 -DARDUINO_AVR_LEONARDO -DARDUINO_ARCH_AVR -DUSB_VID=0x2341 -DUSB_PID=0x8036 "-DUSB_MANUFACTURER=\"Unknown\"" "-DUSB_PRODUCT=\"Arduino Leonardo\"" "-ID:\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Arduino\\hardware\\arduino\\avr\\variants\\leonardo" "C:\\Users\\Dell\\AppData\\Local\\Temp\\arduino_build_507286\\sketch\\3_pereklushat.ino.cpp" -o "C:\\Users\\Dell\\AppData\\Local\\Temp\\arduino_build_507286\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"D:\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\Dell\\AppData\\Local\\Temp\\arduino_build_507286\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Компиляция скетча...
"D:\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10812 -DARDUINO_AVR_LEONARDO -DARDUINO_ARCH_AVR -DUSB_VID=0x2341 -DUSB_PID=0x8036 "-DUSB_MANUFACTURER=\"Unknown\"" "-DUSB_PRODUCT=\"Arduino Leonardo\"" "-ID:\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-ID:\\Arduino\\hardware\\arduino\\avr\\variants\\leonardo" "C:\\Users\\Dell\\AppData\\Local\\Temp\\arduino_build_507286\\sketch\\3_pereklushat.ino.cpp" -o "C:\\Users\\Dell\\AppData\\Local\\Temp\\arduino_build_507286\\sketch\\3_pereklushat.ino.cpp.o"
3_pereklushat:62:49: error: stray '\342' in program

if (analogRead (btn) >= 900 && analogRead (btn) ≤ 910) {NumButton = 1;}

                                                 ^

3_pereklushat:62:50: error: stray '\211' in program

if (analogRead (btn) >= 900 && analogRead (btn) ≤ 910) {NumButton = 1;}

                                                  ^

3_pereklushat:62:51: error: stray '\244' in program

if (analogRead (btn) >= 900 && analogRead (btn) ≤ 910) {NumButton = 1;}

                                                   ^

3_pereklushat:63:49: error: stray '\342' in program

if (analogRead (btn) >= 877 && analogRead (btn) ≤ 887) {NumButton = 2;}

                                                 ^

3_pereklushat:63:50: error: stray '\211' in program

if (analogRead (btn) >= 877 && analogRead (btn) ≤ 887) {NumButton = 2;}

                                                  ^

3_pereklushat:63:51: error: stray '\244' in program

if (analogRead (btn) >= 877 && analogRead (btn) ≤ 887) {NumButton = 2;}

                                                   ^

3_pereklushat:64:49: error: stray '\342' in program

if (analogRead (btn) >= 853 && analogRead (btn) ≤ 863) {NumButton = 3;}

                                                 ^

3_pereklushat:64:50: error: stray '\211' in program

if (analogRead (btn) >= 853 && analogRead (btn) ≤ 863) {NumButton = 3;}

                                                  ^

3_pereklushat:64:51: error: stray '\244' in program

if (analogRead (btn) >= 853 && analogRead (btn) ≤ 863) {NumButton = 3;}

                                                   ^

3_pereklushat:65:49: error: stray '\342' in program

if (analogRead (btn) >= 816 && analogRead (btn) ≤ 826) {NumButton = 4;}

                                                 ^

3_pereklushat:65:50: error: stray '\211' in program

if (analogRead (btn) >= 816 && analogRead (btn) ≤ 826) {NumButton = 4;}

                                                  ^

3_pereklushat:65:51: error: stray '\244' in program

if (analogRead (btn) >= 816 && analogRead (btn) ≤ 826) {NumButton = 4;}

                                                   ^

3_pereklushat:66:49: error: stray '\342' in program

if (analogRead (btn) >= 761 && analogRead (btn) ≤ 771) {NumButton = 5;}

                                                 ^

3_pereklushat:66:50: error: stray '\211' in program

if (analogRead (btn) >= 761 && analogRead (btn) ≤ 771) {NumButton = 5;}

                                                  ^

3_pereklushat:66:51: error: stray '\244' in program

if (analogRead (btn) >= 761 && analogRead (btn) ≤ 771) {NumButton = 5;}

                                                   ^

3_pereklushat:67:49: error: stray '\342' in program

if (analogRead (btn) >= 670 && analogRead (btn) ≤ 680) {NumButton = 6;}

                                                 ^

3_pereklushat:67:50: error: stray '\211' in program

if (analogRead (btn) >= 670 && analogRead (btn) ≤ 680) {NumButton = 6;}

                                                  ^

3_pereklushat:67:51: error: stray '\244' in program

if (analogRead (btn) >= 670 && analogRead (btn) ≤ 680) {NumButton = 6;}

                                                   ^

3_pereklushat:68:49: error: stray '\342' in program

if (analogRead (btn) >= 490 && analogRead (btn) ≤ 500) {NumButton = 7;}

                                                 ^

3_pereklushat:68:50: error: stray '\211' in program

if (analogRead (btn) >= 490 && analogRead (btn) ≤ 500) {NumButton = 7;}

                                                  ^

3_pereklushat:68:51: error: stray '\244' in program

if (analogRead (btn) >= 490 && analogRead (btn) ≤ 500) {NumButton = 7;}

                                                   ^

3_pereklushat:69:22: error: stray '\342' in program

if (analogRead (btn) ≤ 20) {NumButton = 8;}

                      ^

3_pereklushat:69:23: error: stray '\211' in program

if (analogRead (btn) ≤ 20) {NumButton = 8;}

                       ^

3_pereklushat:69:24: error: stray '\244' in program

if (analogRead (btn) ≤ 20) {NumButton = 8;}

                        ^

3_pereklushat:181:59: error: stray '\342' in program

if (analogRead (dataIcom) >= 910 && analogRead (dataIcom) ≤ 1023) {Band = 160;}

                                                           ^

3_pereklushat:181:60: error: stray '\211' in program

if (analogRead (dataIcom) >= 910 && analogRead (dataIcom) ≤ 1023) {Band = 160;}

                                                            ^

3_pereklushat:181:61: error: stray '\244' in program

if (analogRead (dataIcom) >= 910 && analogRead (dataIcom) ≤ 1023) {Band = 160;}

                                                             ^

3_pereklushat:182:59: error: stray '\342' in program

if (analogRead (dataIcom) >= 783 && analogRead (dataIcom) ≤ 837) {Band = 80;}

                                                           ^

3_pereklushat:182:60: error: stray '\211' in program

if (analogRead (dataIcom) >= 783 && analogRead (dataIcom) ≤ 837) {Band = 80;}

                                                            ^

3_pereklushat:182:61: error: stray '\244' in program

if (analogRead (dataIcom) >= 783 && analogRead (dataIcom) ≤ 837) {Band = 80;}

                                                             ^

3_pereklushat:183:59: error: stray '\342' in program

if (analogRead (dataIcom) >= 635 && analogRead (dataIcom) ≤ 711) {Band = 40;}

                                                           ^

3_pereklushat:183:60: error: stray '\211' in program

if (analogRead (dataIcom) >= 635 && analogRead (dataIcom) ≤ 711) {Band = 40;}

                                                            ^

3_pereklushat:183:61: error: stray '\244' in program

if (analogRead (dataIcom) >= 635 && analogRead (dataIcom) ≤ 711) {Band = 40;}

                                                             ^

3_pereklushat:184:59: error: stray '\342' in program

if (analogRead (dataIcom) >= 511 && analogRead (dataIcom) ≤ 574) {Band = 20;}

                                                           ^

3_pereklushat:184:60: error: stray '\211' in program

if (analogRead (dataIcom) >= 511 && analogRead (dataIcom) ≤ 574) {Band = 20;}

                                                            ^

3_pereklushat:184:61: error: stray '\244' in program

if (analogRead (dataIcom) >= 511 && analogRead (dataIcom) ≤ 574) {Band = 20;}

                                                             ^

3_pereklushat:185:59: error: stray '\342' in program

if (analogRead (dataIcom) >= 369 && analogRead (dataIcom) ≤ 437) {Band = 15;}

                                                           ^

3_pereklushat:185:60: error: stray '\211' in program

if (analogRead (dataIcom) >= 369 && analogRead (dataIcom) ≤ 437) {Band = 15;}

                                                            ^

3_pereklushat:185:61: error: stray '\244' in program

if (analogRead (dataIcom) >= 369 && analogRead (dataIcom) ≤ 437) {Band = 15;}

                                                             ^

3_pereklushat:186:59: error: stray '\342' in program

if (analogRead (dataIcom) >= 228 && analogRead (dataIcom) ≤ 294) {Band = 10;}

                                                           ^

3_pereklushat:186:60: error: stray '\211' in program

if (analogRead (dataIcom) >= 228 && analogRead (dataIcom) ≤ 294) {Band = 10;}

                                                            ^

3_pereklushat:186:61: error: stray '\244' in program

if (analogRead (dataIcom) >= 228 && analogRead (dataIcom) ≤ 294) {Band = 10;}

                                                             ^

3_pereklushat:187:57: error: stray '\342' in program

if (analogRead (dataIcom) >= 0 && analogRead (dataIcom) ≤ 127) {Band = 30;}

                                                         ^

3_pereklushat:187:58: error: stray '\211' in program

if (analogRead (dataIcom) >= 0 && analogRead (dataIcom) ≤ 127) {Band = 30;}

                                                          ^

3_pereklushat:187:59: error: stray '\244' in program

if (analogRead (dataIcom) >= 0 && analogRead (dataIcom) ≤ 127) {Band = 30;}

                                                           ^

C:\Users\Dell\Documents\Arduino\pereklusatel\3_pereklushat\3_pereklushat.ino: In function 'void SetButton()':

3_pereklushat:62:53: error: expected ')' before numeric constant

if (analogRead (btn) >= 900 && analogRead (btn) ≤ 910) {NumButton = 1;}

                                                     ^~~

3_pereklushat:63:53: error: expected ')' before numeric constant

if (analogRead (btn) >= 877 && analogRead (btn) ≤ 887) {NumButton = 2;}

                                                     ^~~

3_pereklushat:64:53: error: expected ')' before numeric constant

if (analogRead (btn) >= 853 && analogRead (btn) ≤ 863) {NumButton = 3;}

                                                     ^~~

3_pereklushat:65:53: error: expected ')' before numeric constant

if (analogRead (btn) >= 816 && analogRead (btn) ≤ 826) {NumButton = 4;}

                                                     ^~~

3_pereklushat:66:53: error: expected ')' before numeric constant

if (analogRead (btn) >= 761 && analogRead (btn) ≤ 771) {NumButton = 5;}

                                                     ^~~

3_pereklushat:67:53: error: expected ')' before numeric constant

if (analogRead (btn) >= 670 && analogRead (btn) ≤ 680) {NumButton = 6;}

                                                     ^~~

3_pereklushat:68:53: error: expected ')' before numeric constant

if (analogRead (btn) >= 490 && analogRead (btn) ≤ 500) {NumButton = 7;}

                                                     ^~~

3_pereklushat:69:26: error: expected ')' before numeric constant

if (analogRead (btn) ≤ 20) {NumButton = 8;}

                          ^~

C:\Users\Dell\Documents\Arduino\pereklusatel\3_pereklushat\3_pereklushat.ino: In function 'void BandIcom()':

3_pereklushat:181:63: error: expected ')' before numeric constant

if (analogRead (dataIcom) >= 910 && analogRead (dataIcom) ≤ 1023) {Band = 160;}

                                                               ^~~~

3_pereklushat:182:63: error: expected ')' before numeric constant

if (analogRead (dataIcom) >= 783 && analogRead (dataIcom) ≤ 837) {Band = 80;}

                                                               ^~~

3_pereklushat:183:63: error: expected ')' before numeric constant

if (analogRead (dataIcom) >= 635 && analogRead (dataIcom) ≤ 711) {Band = 40;}

                                                               ^~~

3_pereklushat:184:63: error: expected ')' before numeric constant

if (analogRead (dataIcom) >= 511 && analogRead (dataIcom) ≤ 574) {Band = 20;}

                                                               ^~~

3_pereklushat:185:63: error: expected ')' before numeric constant

if (analogRead (dataIcom) >= 369 && analogRead (dataIcom) ≤ 437) {Band = 15;}

                                                               ^~~

3_pereklushat:186:63: error: expected ')' before numeric constant

if (analogRead (dataIcom) >= 228 && analogRead (dataIcom) ≤ 294) {Band = 10;}

                                                               ^~~

3_pereklushat:187:61: error: expected ')' before numeric constant

if (analogRead (dataIcom) >= 0 && analogRead (dataIcom) ≤ 127) {Band = 30;}

                                                             ^~~

exit status 1
stray '\342' in program

#7 2020-04-09 20:10:50

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

прошу прощения за необразованность. (старый потому что)

#8 2020-04-09 20:31:11

Watchdog
Гость

Re: прошу помощи

+380505304388 пишет:

прошу прощения за необразованность. (старый потому что)

Дело не в возрасте. В редакторе, на панели инструментов, есть кнопка вставки кода "Code ...". Жмите, появится окно, нужно указать язык и вставить текст. Только не лепите лог ошибок вместе с текстом программы С/С++. И где в вашей программе инклуды (#include "Arduino.h" // и т.п.)? Ну, если автора уже нет, то должны быть наследники его авторских прав.

#9 2020-04-09 20:36:20

ard125
Участник
Зарегистрирован: 2019-01-30
Сообщений: 59

Re: прошу помощи

Это что за бред ? Замените на <=

#10 2020-04-09 20:41:50

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

это радиолюбительские поделки. в инете в общем доступе.

#11 2020-04-09 20:48:40

Watchdog
Гость

Re: прошу помощи

+380505304388 пишет:

это радиолюбительские поделки. в инете в общем доступе.

Если вы совсем ничего не понимаете в программировании то вы наврядли доведёте до ума этот, полный "сюрпризов", скетч. По крайней мере, до освоения, хотя бы азов, программирования на языке С/С++.

#12 2020-04-09 20:48:51

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

заменил на <=   теперь в другом месте ошибка:


3_pereklushat:179:1: error: a function-definition is not allowed here before '{' token

{

^

3_pereklushat:213:1: error: expected '}' at end of input

}

^

exit status 1
a function-definition is not allowed here before '{' token

#13 2020-04-09 20:49:51

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

ну я ипрошу помощи . не  бесплатно.

#14 2020-04-09 20:50:55

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

Вы можете довести?

#15 2020-04-09 20:56:48

ard125
Участник
Зарегистрирован: 2019-01-30
Сообщений: 59

Re: прошу помощи

+380505304388 пишет:

заменил на <=   теперь в другом месте ошибка:

Скопируйте и выложите сюда исправленный код так как вам указали выше.

Редактировался ard125 (2020-04-09 21:00:40)

#16 2020-04-09 21:04:12

Watchdog
Гость

Re: прошу помощи

+380505304388 пишет:

Вы можете довести?

Я то могу, но тут таких много: https://forum.arduino.ua/viewtopic.php?id=1069 . Это список очереди писателей за деньгами. big_smile

#17 2020-04-09 21:18:13

renoshnik
Участник
Зарегистрирован: 2017-04-03
Сообщений: 738

Re: прошу помощи

+380505304388 пишет:

Вы можете довести?

2020_04_09_211516.jpg

все скомпилировалось ...   hmm

https://forum.arduino.ua/viewtopic.php?id=1069

Редактировался renoshnik (2020-04-09 21:19:04)

#18 2020-04-09 21:31:23

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

после того как заменил "равно или меньше " и еще некоторые удаления вышло так. ошибок нет но пишет "ошибка компиляции для ардуино микро"

int ant1 = A3; //Порты выходов переключаемых антенн
int ant2 = A2;
int ant3 = A1;
int ant4 = A0;
int ant5 = 15;
int ant6 = 14;
int ant7 = 16;
int ant8 = 10;

int dataD = 2; //Порты BAND DATA
int dataC = 3;
int dataB = 4;
int dataA = 5;

int btn = 9; //Порт кнопок
int btauto = 7; //Порт установки режимов Авто/Ручной
int dataIcom = 8; //Порт чтения диапазонного напряжения ICOM
int ledauto = 6; //Порт индикации
boolean setauto = true; //Режим авто
int NumButton = 1; //Номер нажатой кнопки
int Trcvr = 1; //Применяемое оборудование (1-Yaesu, 0-Icom)
int Band; // диапазон


union InBandData {
struct {
unsigned dt0: 1;
unsigned dt1: 1;
unsigned dt2: 1;
unsigned dt3: 1;
} bits ;
uint8_t value;
};
InBandData BD; // Переменная для хранения состояния кода диапазона

void setup () {
// Назначаем порты на вход
pinMode (dataA,INPUT);
pinMode (dataB,INPUT);
pinMode (dataC,INPUT);
pinMode (dataD,INPUT);
pinMode (btauto,INPUT);
// Назначаем порты на выход
pinMode (ant1,OUTPUT);
pinMode (ant2,OUTPUT);
pinMode (ant3,OUTPUT);
pinMode (ant4,OUTPUT);
pinMode (ant5,OUTPUT);
pinMode (ant6,OUTPUT);
pinMode (ant7,OUTPUT);
pinMode (ant8,OUTPUT);
pinMode (ledauto,OUTPUT);
}

void SetButton () //Определяем номер нажатой кнопки
{
if (analogRead (btn) >= 900 && analogRead (btn) <= 910) {NumButton = 1;}
if (analogRead (btn) >= 877 && analogRead (btn) <= 887) {NumButton = 2;}
if (analogRead (btn) >= 853 && analogRead (btn) <= 863) {NumButton = 3;}
if (analogRead (btn) >= 816 && analogRead (btn) <= 826) {NumButton = 4;}
if (analogRead (btn) >= 761 && analogRead (btn) <= 771) {NumButton = 5;}
if (analogRead (btn) >= 670 && analogRead (btn) <= 680) {NumButton = 6;}
if (analogRead (btn) >= 490 && analogRead (btn) <= 500) {NumButton = 7;}
if (analogRead (btn) <= 20) {NumButton = 8;}
}

void SetAntenna (int val)
{
switch (val) { //Выбираем порты которые нужно установить в зависимости от нажатой кнопки
case 1: {digitalWrite (ant1, HIGH); //Устанавливаем «1» выход антенны 1, остальные сбрасываем в «0»
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 2: {digitalWrite (ant2, HIGH); //Устанавливаем «1» выход антенны 2, остальные сбрасываем в «0»
digitalWrite (ant1, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 3: {digitalWrite (ant3, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 4: {digitalWrite (ant4, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 5: {digitalWrite (ant5, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 6: {digitalWrite (ant6, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 7: {digitalWrite (ant7, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant8, LOW);
break;
}
case 8: {digitalWrite (ant8, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant1, LOW);
break;
}
}
}

uint8_t BinBandData () //Считываем двоичный код Band Data Yaesu
{
BD.value = 0;
if (digitalRead (dataA) == HIGH) {BD.bits.dt0=1;} else {BD.bits.dt0=0;};
if (digitalRead (dataB) == HIGH) {BD.bits.dt1=1;} else {BD.bits.dt1=0;};
if (digitalRead (dataC) == HIGH) {BD.bits.dt2=1;} else {BD.bits.dt2=0;};
if (digitalRead (dataD) == HIGH) {BD.bits.dt3=1;} else {BD.bits.dt3=0;};
switch (BD.value){
case 1: Band = 160; break;
case 2: Band = 80; break;
case 3: Band = 40; break;
case 4: Band = 30; break;
case 5: Band = 20; break;
case 6: Band = 17; break;
case 7: Band = 15; break;
case 8: Band = 12; break;
case 9: Band = 10; break;
case 10: Band = 6; break;
}


if (digitalRead (btauto) == HIGH && setauto == false) {setauto = true;}

if (digitalRead (btauto) == HIGH && setauto == true) {setauto = false;}

if (setauto == false) //Если ручной режим
{
digitalWrite (ledauto, LOW); //Тушим светодиод режима Авто
SetButton (); //Получаем номер кнопки
}
else //Если авторежим включаем каналы
{
digitalWrite (ledauto, HIGH); //Включаем светодиод режима Авто
if (Trcvr == 1){BinBandData ();} //Декодируем диапазон
//Ниже, в блоке условий, нужно указать какая антенна будет включена в авторежиме,
//в зависимости от декодированного диапазона присвоить, NumButton номер нажатой кнопки.
//По номеру кнопки программа включит нужный канал,
//номер кнопки соответствует номеру канала (антенны)
if (Band == 160) {NumButton = 1;} //КВ диапазоны
if (Band == 80) {NumButton = 2;}
if (Band == 40) {NumButton = 3;}
if (Band == 20) {NumButton = 4;}
if (Band == 15) {NumButton = 5;}
if (Band == 10) {NumButton = 6;}
if (Band == 30) {NumButton = 7;} //WARC диапазоны
if (Band == 12) {NumButton = 8;}
//if (Band == 17) {NumButton = 7;}
//if (Band == 6) {NumButton = 8;}
}
SetAntenna (NumButton = 3);

delay  (300); //Мониторим три раза в секунду, можете поставить свое время (в милисекундах)
}

#19 2020-04-09 21:33:21

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

renoshnik пишет:
+380505304388 пишет:

Вы можете довести?

http://i.piccy.info/i9/00e498d88daff341d9a9091598b34605/1586456370/278423/1372053/2020_04_09_211516.jpg

все скомпилировалось ...   hmm

https://forum.arduino.ua/viewtopic.php?id=1069

Вы исправляли что то,или просто скомпилировалось.Может я не так делаю

#20 2020-04-09 21:34:51

renoshnik
Участник
Зарегистрирован: 2017-04-03
Сообщений: 738

Re: прошу помощи

+380505304388 пишет:
renoshnik пишет:
+380505304388 пишет:

Вы можете довести?

http://i.piccy.info/i9/00e498d88daff341d9a9091598b34605/1586456370/278423/1372053/2020_04_09_211516.jpg

все скомпилировалось ...   hmm

https://forum.arduino.ua/viewtopic.php?id=1069

Вы исправляли что то,или просто скомпилировалось.Может я не так делаю


А какой ответ вы хотите услышать ?

#21 2020-04-09 21:36:33

ard125
Участник
Зарегистрирован: 2019-01-30
Сообщений: 59

Re: прошу помощи

не знаю что вы там делали, но у меня нормально компилируется после замены на <=

// Антенный переключатель 1х8 v.1.01
// © Игорь Уватенков (R9JD)
// Скетч написан под Arduino Pro Micro
// Возможно использование на других версиий МК с назначением соответствующих портов входа/выхода

int ant1 = A3; //Порты выходов переключаемых антенн
int ant2 = A2;
int ant3 = A1;
int ant4 = A0;
int ant5 = 15;
int ant6 = 14;
int ant7 = 16;
int ant8 = 10;

int dataD = 2; //Порты BAND DATA
int dataC = 3;
int dataB = 4;
int dataA = 5;

int btn = 9; //Порт кнопок
int btauto = 7; //Порт установки режимов Авто/Ручной
int dataIcom = 8; //Порт чтения диапазонного напряжения ICOM
int ledauto = 6; //Порт индикации
boolean setauto = true; //Режим авто
int NumButton = 1; //Номер нажатой кнопки
int Trcvr = 1; //Применяемое оборудование (1-Yaesu, 0-Icom)
int Band; // диапазон

union InBandData {
struct {
unsigned dt0: 1;
unsigned dt1: 1;
unsigned dt2: 1;
unsigned dt3: 1;
} bits ;
uint8_t value;
};
InBandData BD; // Переменная для хранения состояния кода диапазона

void setup () {
// Назначаем порты на вход
pinMode (dataA,INPUT);
pinMode (dataB,INPUT);
pinMode (dataC,INPUT);
pinMode (dataD,INPUT);
pinMode (btauto,INPUT);
// Назначаем порты на выход
pinMode (ant1,OUTPUT);
pinMode (ant2,OUTPUT);
pinMode (ant3,OUTPUT);
pinMode (ant4,OUTPUT);
pinMode (ant5,OUTPUT);
pinMode (ant6,OUTPUT);
pinMode (ant7,OUTPUT);
pinMode (ant8,OUTPUT);
pinMode (ledauto,OUTPUT);
}

void SetButton () //Определяем номер нажатой кнопки
{
if (analogRead (btn) >= 900 && analogRead (btn) <= 910) {NumButton = 1;}
if (analogRead (btn) >= 877 && analogRead (btn) <= 887) {NumButton = 2;}
if (analogRead (btn) >= 853 && analogRead (btn) <= 863) {NumButton = 3;}
if (analogRead (btn) >= 816 && analogRead (btn) <= 826) {NumButton = 4;}
if (analogRead (btn) >= 761 && analogRead (btn) <= 771) {NumButton = 5;}
if (analogRead (btn) >= 670 && analogRead (btn) <= 680) {NumButton = 6;}
if (analogRead (btn) >= 490 && analogRead (btn) <= 500) {NumButton = 7;}
if (analogRead (btn) <= 20) {NumButton = 8;}
}

void SetAntenna (int val)
{
switch (val) { //Выбираем порты которые нужно установить в зависимости от нажатой кнопки
case 1: {digitalWrite (ant1, HIGH); //Устанавливаем «1» выход антенны 1, остальные сбрасываем в «0»
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 2: {digitalWrite (ant2, HIGH); //Устанавливаем «1» выход антенны 2, остальные сбрасываем в «0»
digitalWrite (ant1, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 3: {digitalWrite (ant3, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 4: {digitalWrite (ant4, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 5: {digitalWrite (ant5, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 6: {digitalWrite (ant6, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 7: {digitalWrite (ant7, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant8, LOW);
break;
}
case 8: {digitalWrite (ant8, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant1, LOW);
break;
}
}
}

uint8_t BinBandData () //Считываем двоичный код Band Data Yaesu
{
BD.value = 0;
if (digitalRead (dataA) == HIGH) {BD.bits.dt0=1;} else {BD.bits.dt0=0;};
if (digitalRead (dataB) == HIGH) {BD.bits.dt1=1;} else {BD.bits.dt1=0;};
if (digitalRead (dataC) == HIGH) {BD.bits.dt2=1;} else {BD.bits.dt2=0;};
if (digitalRead (dataD) == HIGH) {BD.bits.dt3=1;} else {BD.bits.dt3=0;};
switch (BD.value){
case 1: Band = 160; break;
case 2: Band = 80; break;
case 3: Band = 40; break;
case 4: Band = 30; break;
case 5: Band = 20; break;
case 6: Band = 17; break;
case 7: Band = 15; break;
case 8: Band = 12; break;
case 9: Band = 10; break;
case 10: Band = 6; break;
}
}

void BandIcom () //Считываем уровень диапазонного напряжения Icom
{
if (analogRead (dataIcom) >= 910 && analogRead (dataIcom) <= 1023) {Band = 160;}
if (analogRead (dataIcom) >= 783 && analogRead (dataIcom) <= 837) {Band = 80;}
if (analogRead (dataIcom) >= 635 && analogRead (dataIcom) <= 711) {Band = 40;}
if (analogRead (dataIcom) >= 511 && analogRead (dataIcom) <= 574) {Band = 20;}
if (analogRead (dataIcom) >= 369 && analogRead (dataIcom) <= 437) {Band = 15;}
if (analogRead (dataIcom) >= 228 && analogRead (dataIcom) <= 294) {Band = 10;}
if (analogRead (dataIcom) >= 0 && analogRead (dataIcom) <= 127) {Band = 30;}
}

void loop ()
{

if (digitalRead (btauto) == HIGH && setauto == false) {setauto = true;}

if (digitalRead (btauto) == HIGH && setauto == true) {setauto = false;}

if (setauto == false) //Если ручной режим
{
digitalWrite (ledauto, LOW); //Тушим светодиод режима Авто
SetButton (); //Получаем номер кнопки
}
else //Если авторежим включаем каналы
{
digitalWrite (ledauto, HIGH); //Включаем светодиод режима Авто
if (Trcvr == 1){BinBandData ();} //Декодируем диапазон
else{BandIcom ();}
//Ниже, в блоке условий, нужно указать какая антенна будет включена в авторежиме,
//в зависимости от декодированного диапазона присвоить, NumButton номер нажатой кнопки.
//По номеру кнопки программа включит нужный канал,
//номер кнопки соответствует номеру канала (антенны)
if (Band == 160) {NumButton = 1;} //КВ диапазоны
if (Band == 80) {NumButton = 2;}
if (Band == 40) {NumButton = 3;}
if (Band == 20) {NumButton = 4;}
if (Band == 15) {NumButton = 5;}
if (Band == 10) {NumButton = 6;}
if (Band == 30) {NumButton = 7;} //WARC диапазоны
if (Band == 12) {NumButton = 8;}
//if (Band == 17) {NumButton = 7;}
//if (Band == 6) {NumButton = 8;}
}
SetAntenna (NumButton);

delay  (300); //Мониторим три раза в секунду, можете поставить свое время (в милисекундах)
}

#22 2020-04-09 21:37:27

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

renoshnik пишет:
+380505304388 пишет:
renoshnik пишет:

http://i.piccy.info/i9/00e498d88daff341d9a9091598b34605/1586456370/278423/1372053/2020_04_09_211516.jpg

все скомпилировалось ...   hmm

https://forum.arduino.ua/viewtopic.php?id=1069

Вы исправляли что то,или просто скомпилировалось.Может я не так делаю


А какой ответ вы хотите услышать ?

вопрос потому что может я не умею загрузить или оборудование мое

#23 2020-04-09 21:39:47

+380505304388
Участник
Зарегистрирован: 2020-04-09
Сообщений: 22

Re: прошу помощи

ard125 пишет:

не знаю что вы там делали, но у меня нормально компилируется после замены на <=

// Антенный переключатель 1х8 v.1.01
// © Игорь Уватенков (R9JD)
// Скетч написан под Arduino Pro Micro
// Возможно использование на других версиий МК с назначением соответствующих портов входа/выхода

int ant1 = A3; //Порты выходов переключаемых антенн
int ant2 = A2;
int ant3 = A1;
int ant4 = A0;
int ant5 = 15;
int ant6 = 14;
int ant7 = 16;
int ant8 = 10;

int dataD = 2; //Порты BAND DATA
int dataC = 3;
int dataB = 4;
int dataA = 5;

int btn = 9; //Порт кнопок
int btauto = 7; //Порт установки режимов Авто/Ручной
int dataIcom = 8; //Порт чтения диапазонного напряжения ICOM
int ledauto = 6; //Порт индикации
boolean setauto = true; //Режим авто
int NumButton = 1; //Номер нажатой кнопки
int Trcvr = 1; //Применяемое оборудование (1-Yaesu, 0-Icom)
int Band; // диапазон

union InBandData {
struct {
unsigned dt0: 1;
unsigned dt1: 1;
unsigned dt2: 1;
unsigned dt3: 1;
} bits ;
uint8_t value;
};
InBandData BD; // Переменная для хранения состояния кода диапазона

void setup () {
// Назначаем порты на вход
pinMode (dataA,INPUT);
pinMode (dataB,INPUT);
pinMode (dataC,INPUT);
pinMode (dataD,INPUT);
pinMode (btauto,INPUT);
// Назначаем порты на выход
pinMode (ant1,OUTPUT);
pinMode (ant2,OUTPUT);
pinMode (ant3,OUTPUT);
pinMode (ant4,OUTPUT);
pinMode (ant5,OUTPUT);
pinMode (ant6,OUTPUT);
pinMode (ant7,OUTPUT);
pinMode (ant8,OUTPUT);
pinMode (ledauto,OUTPUT);
}

void SetButton () //Определяем номер нажатой кнопки
{
if (analogRead (btn) >= 900 && analogRead (btn) <= 910) {NumButton = 1;}
if (analogRead (btn) >= 877 && analogRead (btn) <= 887) {NumButton = 2;}
if (analogRead (btn) >= 853 && analogRead (btn) <= 863) {NumButton = 3;}
if (analogRead (btn) >= 816 && analogRead (btn) <= 826) {NumButton = 4;}
if (analogRead (btn) >= 761 && analogRead (btn) <= 771) {NumButton = 5;}
if (analogRead (btn) >= 670 && analogRead (btn) <= 680) {NumButton = 6;}
if (analogRead (btn) >= 490 && analogRead (btn) <= 500) {NumButton = 7;}
if (analogRead (btn) <= 20) {NumButton = 8;}
}

void SetAntenna (int val)
{
switch (val) { //Выбираем порты которые нужно установить в зависимости от нажатой кнопки
case 1: {digitalWrite (ant1, HIGH); //Устанавливаем «1» выход антенны 1, остальные сбрасываем в «0»
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 2: {digitalWrite (ant2, HIGH); //Устанавливаем «1» выход антенны 2, остальные сбрасываем в «0»
digitalWrite (ant1, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 3: {digitalWrite (ant3, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 4: {digitalWrite (ant4, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 5: {digitalWrite (ant5, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 6: {digitalWrite (ant6, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 7: {digitalWrite (ant7, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant8, LOW);
break;
}
case 8: {digitalWrite (ant8, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant1, LOW);
break;
}
}
}

uint8_t BinBandData () //Считываем двоичный код Band Data Yaesu
{
BD.value = 0;
if (digitalRead (dataA) == HIGH) {BD.bits.dt0=1;} else {BD.bits.dt0=0;};
if (digitalRead (dataB) == HIGH) {BD.bits.dt1=1;} else {BD.bits.dt1=0;};
if (digitalRead (dataC) == HIGH) {BD.bits.dt2=1;} else {BD.bits.dt2=0;};
if (digitalRead (dataD) == HIGH) {BD.bits.dt3=1;} else {BD.bits.dt3=0;};
switch (BD.value){
case 1: Band = 160; break;
case 2: Band = 80; break;
case 3: Band = 40; break;
case 4: Band = 30; break;
case 5: Band = 20; break;
case 6: Band = 17; break;
case 7: Band = 15; break;
case 8: Band = 12; break;
case 9: Band = 10; break;
case 10: Band = 6; break;
}
}

void BandIcom () //Считываем уровень диапазонного напряжения Icom
{
if (analogRead (dataIcom) >= 910 && analogRead (dataIcom) <= 1023) {Band = 160;}
if (analogRead (dataIcom) >= 783 && analogRead (dataIcom) <= 837) {Band = 80;}
if (analogRead (dataIcom) >= 635 && analogRead (dataIcom) <= 711) {Band = 40;}
if (analogRead (dataIcom) >= 511 && analogRead (dataIcom) <= 574) {Band = 20;}
if (analogRead (dataIcom) >= 369 && analogRead (dataIcom) <= 437) {Band = 15;}
if (analogRead (dataIcom) >= 228 && analogRead (dataIcom) <= 294) {Band = 10;}
if (analogRead (dataIcom) >= 0 && analogRead (dataIcom) <= 127) {Band = 30;}
}

void loop ()
{

if (digitalRead (btauto) == HIGH && setauto == false) {setauto = true;}

if (digitalRead (btauto) == HIGH && setauto == true) {setauto = false;}

if (setauto == false) //Если ручной режим
{
digitalWrite (ledauto, LOW); //Тушим светодиод режима Авто
SetButton (); //Получаем номер кнопки
}
else //Если авторежим включаем каналы
{
digitalWrite (ledauto, HIGH); //Включаем светодиод режима Авто
if (Trcvr == 1){BinBandData ();} //Декодируем диапазон
else{BandIcom ();}
//Ниже, в блоке условий, нужно указать какая антенна будет включена в авторежиме,
//в зависимости от декодированного диапазона присвоить, NumButton номер нажатой кнопки.
//По номеру кнопки программа включит нужный канал,
//номер кнопки соответствует номеру канала (антенны)
if (Band == 160) {NumButton = 1;} //КВ диапазоны
if (Band == 80) {NumButton = 2;}
if (Band == 40) {NumButton = 3;}
if (Band == 20) {NumButton = 4;}
if (Band == 15) {NumButton = 5;}
if (Band == 10) {NumButton = 6;}
if (Band == 30) {NumButton = 7;} //WARC диапазоны
if (Band == 12) {NumButton = 8;}
//if (Band == 17) {NumButton = 7;}
//if (Band == 6) {NumButton = 8;}
}
SetAntenna (NumButton);

delay  (300); //Мониторим три раза в секунду, можете поставить свое время (в милисекундах)
}

попробую еще раз.

#24 2020-04-09 21:41:48

renoshnik
Участник
Зарегистрирован: 2017-04-03
Сообщений: 738

Re: прошу помощи

ard125 пишет:

не знаю что вы там делали, но у меня нормально компилируется после замены на <=

// Антенный переключатель 1х8 v.1.01
// © Игорь Уватенков (R9JD)
// Скетч написан под Arduino Pro Micro
// Возможно использование на других версиий МК с назначением соответствующих портов входа/выхода

int ant1 = A3; //Порты выходов переключаемых антенн
int ant2 = A2;
int ant3 = A1;
int ant4 = A0;
int ant5 = 15;
int ant6 = 14;
int ant7 = 16;
int ant8 = 10;

int dataD = 2; //Порты BAND DATA
int dataC = 3;
int dataB = 4;
int dataA = 5;

int btn = 9; //Порт кнопок
int btauto = 7; //Порт установки режимов Авто/Ручной
int dataIcom = 8; //Порт чтения диапазонного напряжения ICOM
int ledauto = 6; //Порт индикации
boolean setauto = true; //Режим авто
int NumButton = 1; //Номер нажатой кнопки
int Trcvr = 1; //Применяемое оборудование (1-Yaesu, 0-Icom)
int Band; // диапазон

union InBandData {
struct {
unsigned dt0: 1;
unsigned dt1: 1;
unsigned dt2: 1;
unsigned dt3: 1;
} bits ;
uint8_t value;
};
InBandData BD; // Переменная для хранения состояния кода диапазона

void setup () {
// Назначаем порты на вход
pinMode (dataA,INPUT);
pinMode (dataB,INPUT);
pinMode (dataC,INPUT);
pinMode (dataD,INPUT);
pinMode (btauto,INPUT);
// Назначаем порты на выход
pinMode (ant1,OUTPUT);
pinMode (ant2,OUTPUT);
pinMode (ant3,OUTPUT);
pinMode (ant4,OUTPUT);
pinMode (ant5,OUTPUT);
pinMode (ant6,OUTPUT);
pinMode (ant7,OUTPUT);
pinMode (ant8,OUTPUT);
pinMode (ledauto,OUTPUT);
}

void SetButton () //Определяем номер нажатой кнопки
{
if (analogRead (btn) >= 900 && analogRead (btn) <= 910) {NumButton = 1;}
if (analogRead (btn) >= 877 && analogRead (btn) <= 887) {NumButton = 2;}
if (analogRead (btn) >= 853 && analogRead (btn) <= 863) {NumButton = 3;}
if (analogRead (btn) >= 816 && analogRead (btn) <= 826) {NumButton = 4;}
if (analogRead (btn) >= 761 && analogRead (btn) <= 771) {NumButton = 5;}
if (analogRead (btn) >= 670 && analogRead (btn) <= 680) {NumButton = 6;}
if (analogRead (btn) >= 490 && analogRead (btn) <= 500) {NumButton = 7;}
if (analogRead (btn) <= 20) {NumButton = 8;}
}

void SetAntenna (int val)
{
switch (val) { //Выбираем порты которые нужно установить в зависимости от нажатой кнопки
case 1: {digitalWrite (ant1, HIGH); //Устанавливаем «1» выход антенны 1, остальные сбрасываем в «0»
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 2: {digitalWrite (ant2, HIGH); //Устанавливаем «1» выход антенны 2, остальные сбрасываем в «0»
digitalWrite (ant1, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 3: {digitalWrite (ant3, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 4: {digitalWrite (ant4, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 5: {digitalWrite (ant5, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 6: {digitalWrite (ant6, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant8, LOW);
break;
}
case 7: {digitalWrite (ant7, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant1, LOW);
digitalWrite (ant8, LOW);
break;
}
case 8: {digitalWrite (ant8, HIGH);
digitalWrite (ant2, LOW);
digitalWrite (ant3, LOW);
digitalWrite (ant4, LOW);
digitalWrite (ant5, LOW);
digitalWrite (ant6, LOW);
digitalWrite (ant7, LOW);
digitalWrite (ant1, LOW);
break;
}
}
}

uint8_t BinBandData () //Считываем двоичный код Band Data Yaesu
{
BD.value = 0;
if (digitalRead (dataA) == HIGH) {BD.bits.dt0=1;} else {BD.bits.dt0=0;};
if (digitalRead (dataB) == HIGH) {BD.bits.dt1=1;} else {BD.bits.dt1=0;};
if (digitalRead (dataC) == HIGH) {BD.bits.dt2=1;} else {BD.bits.dt2=0;};
if (digitalRead (dataD) == HIGH) {BD.bits.dt3=1;} else {BD.bits.dt3=0;};
switch (BD.value){
case 1: Band = 160; break;
case 2: Band = 80; break;
case 3: Band = 40; break;
case 4: Band = 30; break;
case 5: Band = 20; break;
case 6: Band = 17; break;
case 7: Band = 15; break;
case 8: Band = 12; break;
case 9: Band = 10; break;
case 10: Band = 6; break;
}
}

void BandIcom () //Считываем уровень диапазонного напряжения Icom
{
if (analogRead (dataIcom) >= 910 && analogRead (dataIcom) <= 1023) {Band = 160;}
if (analogRead (dataIcom) >= 783 && analogRead (dataIcom) <= 837) {Band = 80;}
if (analogRead (dataIcom) >= 635 && analogRead (dataIcom) <= 711) {Band = 40;}
if (analogRead (dataIcom) >= 511 && analogRead (dataIcom) <= 574) {Band = 20;}
if (analogRead (dataIcom) >= 369 && analogRead (dataIcom) <= 437) {Band = 15;}
if (analogRead (dataIcom) >= 228 && analogRead (dataIcom) <= 294) {Band = 10;}
if (analogRead (dataIcom) >= 0 && analogRead (dataIcom) <= 127) {Band = 30;}
}

void loop ()
{

if (digitalRead (btauto) == HIGH && setauto == false) {setauto = true;}

if (digitalRead (btauto) == HIGH && setauto == true) {setauto = false;}

if (setauto == false) //Если ручной режим
{
digitalWrite (ledauto, LOW); //Тушим светодиод режима Авто
SetButton (); //Получаем номер кнопки
}
else //Если авторежим включаем каналы
{
digitalWrite (ledauto, HIGH); //Включаем светодиод режима Авто
if (Trcvr == 1){BinBandData ();} //Декодируем диапазон
else{BandIcom ();}
//Ниже, в блоке условий, нужно указать какая антенна будет включена в авторежиме,
//в зависимости от декодированного диапазона присвоить, NumButton номер нажатой кнопки.
//По номеру кнопки программа включит нужный канал,
//номер кнопки соответствует номеру канала (антенны)
if (Band == 160) {NumButton = 1;} //КВ диапазоны
if (Band == 80) {NumButton = 2;}
if (Band == 40) {NumButton = 3;}
if (Band == 20) {NumButton = 4;}
if (Band == 15) {NumButton = 5;}
if (Band == 10) {NumButton = 6;}
if (Band == 30) {NumButton = 7;} //WARC диапазоны
if (Band == 12) {NumButton = 8;}
//if (Band == 17) {NumButton = 7;}
//if (Band == 6) {NumButton = 8;}
}
SetAntenna (NumButton);

delay  (300); //Мониторим три раза в секунду, можете поставить свое время (в милисекундах)
}

Если выбрать плату "микро" тогда это ваш вариант решения.

Для другой платы (у меня "ПроМини") нужны изменения как в моем варианте.

А у ТС плата вообще Arduino Leonardo

Редактировался renoshnik (2020-04-09 21:43:19)

#25 2020-04-09 21:44:52

ard125
Участник
Зарегистрирован: 2019-01-30
Сообщений: 59

Re: прошу помощи

renoshnik пишет:

Для другой платы (у меня "ПроМини") нужны изменения как в моем варианте.

Не знаю как там будет работать (код просмотрел по диагонали), но для ПроМини и Леонардо тоже компилируется без каких либо изменений меня компилится тоже нормально.

+380505304388 пишет:

и еще некоторые удаления

Показывайте что вы там наудаляли

Редактировался ard125 (2020-04-09 21:47:09)

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела