1

Topic: Не выводится строка

Добрый день!

скетч:

const int Level_hungr_1 = 50;      /* уровень влажности ниже которого - переполив */
const int Level_hungr_2 = 150;     /* уровень 50 - 150 норма */

#define REMOTEXY_MODE__SOFTSERIAL
#include <SoftwareSerial.h>
#include <RemoteXY.h>

/* настройки соединения */
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600

#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 0,23,33,0,6,8,0,67,1,7
  ,4,88,7,2,15,67,1,7,13,33
  ,7,2,6,65,4,85,15,9,9,2
  ,66,164,46,15,33,26,2 };

struct {
  char namber_lelev_water[6];     /* цифровой показатель уровня влажности */
  char text_water[15];                /* текстовая строка уровня влажности почвы */
  int8_t indication_level_water;  /* -100..100 стрелочный индикатор уровня влажности */
 
  uint8_t led_1_r_r;                /* =0..255 индикатор красного цвета повышенной или пониженной влажности */ 
  uint8_t connect_flag;           /* =1 if wire connected, else =0 */

} RemoteXY;
#pragma pack(pop)

int sensorPin = A7;
int sensorValue = 0;

void setup()
{
  RemoteXY_Init ();
}

void loop()
{
  RemoteXY_Handler ();
 
  sensorValue = analogRead(sensorPin);
  itoa(sensorValue, RemoteXY.namber_lelev_water, 10);
 
  if (sensorValue <= Level_hungr_1){
      strcpy (RemoteXY.text_water, "MUCH WATER!");
      }
    else if (sensorValue <= Level_hungr_2 && sensorValue > Level_hungr_1){
      strcpy (RemoteXY.text_water, "NORMAL");
      }
    else {
      strcpy (RemoteXY.text_water, "WATER");
      }
  delay(1000);
}

В  text_water не выводится текстовое значение.

В  text_water выводится цифровое значение namber_lelev_water.

В чём может быть причина?

2

Re: Не выводится строка

Сделайте тестовый скетч и проверьте, что то вроде этого.

strcpy (RemoteXY.namber_lelev_water, "TEST1");
strcpy (RemoteXY.text_water, "TEST2");

Если будет работать, значит ищите ошибки в вашем коде.
И уберите паузу delay(1000). Этим Вы тормозите связь.

3

Re: Не выводится строка

Да, еще вижу что у вас структура RemoteXY_CONF не соответствует структуре RemoteXY.
1. Либо вы сами поменяли местами переменные в структуре RemoteXY.
2. Либо изменили интерфейс в редакторе, заменили структуру RemoteXY_CONF, а структуру переменных RemoteXY оставили без изменений и не скопировали из редактора.
Обе структуры RemoteXY_CONF и RemoteXY существуют только совместно. Менять ничего нельзя.

4

Re: Не выводится строка

Всё работает. Спасибо!