Официальный сайт компании Arduino по адресу arduino.cc
Удаленный контроль состояния АФУ(состояние фидерного тракта)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пнд, 16/07/2018 - 18:06
Доброго дня!
Ребята, необходима ваша бесценная помощь в написание(или где взять) скетчи и объединении скетчей.
Прошу понять и простить...К сожаления не в полном объеме еще овладел программированием... Голову себе сломал, что-то найти не могу, где-то не получается.
Использую 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();
}
}
Тема закрыта, спасибо.