Topic: Построение двух графиков
Попытался построить одновременно два графика по следующей программе
// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__ESP8266WIFI_LIB_POINT
#include <ESP8266WiFi.h>
#include <RemoteXY.h>
// настройки соединения
#define REMOTEXY_WIFI_SSID "two"
#define REMOTEXY_WIFI_PASSWORD "12345678"
#define REMOTEXY_SERVER_PORT 6377
const byte dynPin=2;
//генерация звука на втором пине
const int IN_PIN = A0;
//прием звука на аналоговом пине а0
const int MAX_ADC_VALUE = 1023;//возможно изменить на 255
int frec;
char myStr[15];
// конфигурация интерфейса
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] = // 56 bytes
{ 255,1,0,8,0,49,0,16,126,0,68,50,7,7,87,42,94,186,135,70,
114,101,113,117,101,110,99,121,0,65,109,112,108,105,116,117,100,101,0,2,
0,33,51,22,11,2,26,31,31,79,78,0,79,70,70,0 };
// структура определяет все переменные и события вашего интерфейса управления
struct {
// input variables
uint8_t switch_1; // =1 если переключатель включен и =0 если отключен
// output variables
float onlineGraph_1_var1;
float onlineGraph_1_var2;
// other variable
uint8_t connect_flag; // =1 if wire connected, else =0
} RemoteXY;
#pragma pack(pop)
/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////
void setup()
{ RemoteXY_Init ();
pinMode(dynPin,OUTPUT);
pinMode(IN_PIN, INPUT);
frec=3000;//исходное значение частоты 3000 Гц
}
void loop()
{ RemoteXY_Handler ();
if (RemoteXY.switch_1!=0) {
/* выключатель включен */
if (frec<5000){
//инициализируем переменные
int mn = 1024;
int mx = 0;
tone(dynPin,frec);//запускаем генератор звука
for (int i=0; i < 1000; ++i) {//ищем макс и мин значения амплитуды
int val = analogRead(IN_PIN);
mn = min(mn, val);
mx = max(mx, val);
}
//нашли размах амплитуды
//RemoteXY.onlineGraph_1_var1 = float (frec);
RemoteXY.onlineGraph_1_var1 = 0.0;
RemoteXY.onlineGraph_1_var2 = float (5.0 / MAX_ADC_VALUE* (mx - mn));
frec=frec+100;//увеличиваем частоту на 100 для следующего измерения
noTone(dynPin);//отключаем звук
}
else {
/* выключатель выключен */
}
}
}
Графики не строятся, выдается только первая и последняя точка, хотя вроде в цикле должны быть построены два графика. В программе без вай-фая все точки выводятся в последовательный порт,т.е. точки вычисляются. ПОчему же здесь они не выводятся. Может кто объяснит мне причину. Видимо что-то связано с взаимодействием с сервером или я не туда вывод поставил. Может tone конфликтует с onlineGraph?
Переставил вывод на график после отключения звука, чтобы избавится от влияния tone -результат тот же.