Удаленный контроль состояния АФУ(состояние фидерного тракта)

Geka888
Offline
Зарегистрирован: 16.07.2018
Доброго дня!
Ребята, необходима ваша бесценная помощь в написание(или где взять) скетчи и объединении скетчей.
Прошу понять и простить...К сожаления не в полном объеме еще овладел программированием... Голову себе сломал, что-то найти не могу, где-то не получается.
Использую Arduino Mega 2560 R3.
Снизу представил схематично, чего я добиваюсь.
Используваться должны следующие скетчи:
1.Тактовая кнопка(вкл/выкл подсветки дисплея) - готов;
2.Тактовая кнопка(переключение каналов, по-очереди) - не готов; - нужна помощь в написании или где взять.
3.VSWR и LCD дисплей - готов;
4.ENC28J60 web server с авторизацией и отображением значений канала1 и канала2- тоже не готов.
Скетч №1:
void setup() {
  pinMode(9, OUTPUT);
  pinMode(6, INPUT);
  digitalWrite(6, HIGH);
}
byte onOff = 0;
byte cycle = 0;
 void loop() {
  if(!digitalRead(10))
 {
    while (!digitalRead(10))
  {
  delay(1);
  cycle++;
}
if ((0 ==onOff)&(10 < cycle))
{
  onOff = 1;
  digitalWrite(9,HIGH);
}
else
{
  onOff = 0;
  digitalWrite(9, LOW);
}
cycle = 0;
}
 }
 
Скетч №2(переключение каналов):
Не готов, незнаю как.
 
Скетч №3:
// КСВ Метр версия 1.0
// Разработано www.forklg.ru (С)
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей
 
void setup() {
  Serial.begin(9600); // инициируем СОМ порт
  lcd.init();                     
  lcd.backlight();// Включаем подсветку дисплея
  lcd.print(" KSV SWR METER");
  lcd.setCursor(6, 1);
  lcd.print("1.0");
  delay(3000); // задержка 1000 мс 
 
}
 
void loop() {
  int U1=0;// U прямое
  int U2=0;// U обратное
  int U12=0;// Сумма U
  float U21=0;// Разность U
  float KSV=0;// Значение отношения (КСВ)
  int Ur1 = analogRead(A0); // считываем значение U с аналогового входа 0
  int Ur2 = analogRead(A1); // считываем значение U с аналогового входа 1
  delay(50); // задержка 50 мс 
  int Ur3 = analogRead(A0); // считываем значение U с аналогового входа 0
  int Ur4 = analogRead(A1); // считываем значение U с аналогового входа 1
  delay(50); // задержка 50 мс 
  int Ur5 = analogRead(A0); // считываем значение U с аналогового входа 0
  int Ur6 = analogRead(A1); // считываем значение U с аналогового входа 1
  
  U1=(Ur1+Ur3+Ur5)/3; // присваиваем значение переменной
  U2=(Ur2+Ur4+Ur6)/3;// присваиваем значение переменной
  U12=U1+U2; // вычисляем сумму
  U21=U1-U2; // вычисляем разность
  KSV=U12/U21;// вычисляем отношение
lcd.setCursor(0, 0);
  // Устанавливаем курсор на первую строку и нулевой символ.
  lcd.print("PRA ");
  lcd.print(U1); // U прямое
  lcd.print(" OBR ");
  lcd.print(U2);// U обратное
  lcd.print("   ");
  lcd.setCursor(0, 1);
  lcd.print("KSV ");
  lcd.print(KSV);// Значение отношения (КСВ)
  lcd.print("       ");
 delay(500); // задержка 500 мс 
}
 
Скетч №4(пока только авторизация):
/*
  sign in (authentication) to the Web server Arduino
*/
#include <SPI.h>
#include <UIPEthernet.h
/*
  Настройки сети
*/
byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x32 };
IPAddress ip(10, 10, 10, 11);                        
 
EthernetServer server(80);
/*
  Переменные для авторизации через web
*/
String readString; // Буфер для данных от пользователя Web сервера
/*
  SETUP
*/
void setup() {
  Serial.begin(9600);
  // Поднимаем сеть  
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.println(Ethernet.localIP());
}
/*
  LOOP
*/
void loop() {
  EthernetClient client = server.available();
  if (client) {  
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        readString += c;
        if (c == '\n' && currentLineIsBlank) {
          if (readString.lastIndexOf(F("Authorization: Basic bG9naW46cGFzc3dvcmQ="))>-1) {
            if (readString.lastIndexOf(F("GET /favicon.ico"))>-1) {
              client.println(F("HTTP/1.0 404 Not Found"));
            }
            else {
              client.println(F("HTTP/1.0 200 OK"));
              client.println(F("Content-Type: text/html"));
              client.println(F("Pragma: no-cache\r\nRefresh: 30\r\n"));
              client.println(F("<html><head><meta charset=UTF-8\"><title>Arduino - iT4iT.CLUB</title>"));
              client.println(F("<style>body,table,tr,td{font-style:normal;font-family:verdana;font-size:11px;}body{background-color:#FFEBD5;}</style></head><body>"));
              client.print(F("Arduino on <a href=\"https://it4it.club\">iT4iT.CLUB</a>"));
              client.println(F("</body></html>"));
            }
          }
          else {
            client.println(F("HTTP/1.0 401 Unauthorized"));
            client.println(F("WWW-Authenticate: Basic realm=\"Arduino - iT4iT.CLUB\""));
          }
          break;
        }
 
        if (c == '\n') {
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          currentLineIsBlank = false;
        }
      } 
    }
    delay(30);
 
    readString = "";
    client.stop();
  }
}
Geka888
Offline
Зарегистрирован: 16.07.2018

Тема закрыта, спасибо.