Нужна помощь с вызовом значения float

nick209
Offline
Зарегистрирован: 13.08.2017

В последней строчке не могу вызвать "bar". 'bar' was not declared in this scope.

Пробовал переносить, не выходит...

Пожалуйста, помогите! 


#define CAYENNE_PRINT Serial   // Comment this out to disable prints and save space
#include <CayenneEthernet.h>   // Change this to use a different communication device. See Communications examples.

// Cayenne authentication token. This should be obtained from the Cayenne Dashboard.
char token[] = "AuthenticationToken";

// Virtual Pin of the widget.
#define VIRTUAL_PIN V1

void setup()
{
  Serial.begin(9600);
  Cayenne.begin(token);
}

void loop()
{
  Cayenne.run();

    // MEASUREMENT
  // make 16 readings and average them (reduces some noise) you can tune the number 16 of course
  int count = 16;
  int raw = 0;
  for (int i=0; i< count; i++) raw += analogRead(A0);  // return 0..1023 representing 0..5V
  raw = raw / count;

  // CONVERT TO VOLTAGE
  float voltage = 5.0 * raw / 1023; // voltage = 0..5V;  we do the math in millivolts!!

  // INTERPRET VOLTAGES
    float bar = mapFloat(voltage, 0.5, 4.5, 0.0, 8.0);    // variation on the Arduino map() function
}


float mapFloat(float x, float in_min, float in_max, float out_min, float out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

// This function is called when the Cayenne widget requests data for the Virtual Pin.
CAYENNE_OUT(VIRTUAL_PIN)
{
  // Read data from the sensor and send it to the virtual channel here.
  // You can write data using virtualWrite or other Cayenne write functions.
  // For example, to send a temperature in Celsius you can use the following:
  // Cayenne.virtualWrite(VIRTUAL_PIN, 25.5, TEMPERATURE, CELSIUS);
   Cayenne.virtualWrite(VIRTUAL_PIN, bar, 2);
}

 

Logik
Offline
Зарегистрирован: 05.08.2014

nick209 пишет:

В последней строчке не могу вызвать "bar". 'bar' was not declared in this scope.

Пробовал переносить, не выходит...

Пожалуйста, помогите! 

 

Ни вопрос ни разу! Всегда рад помочь :) Читайте на здорове! http://cpp.com.ru/kr_cbook/index.html 

 

nick209
Offline
Зарегистрирован: 13.08.2017

Битая ссылка

nick209
Offline
Зарегистрирован: 13.08.2017

Открыл, ща почитаю. Подскажите, в каком разделе искать?

nick209
Offline
Зарегистрирован: 13.08.2017

Ну вот все равно не понимаю как вернуть значение этой функции в область доступную для

CAYENNE_OUT(VIRTUAL_PIN)

{

...

}

Logik
Offline
Зарегистрирован: 05.08.2014

nick209 пишет:

Открыл, ща почитаю. Подскажите, в каком разделе искать?

1.10 Внешние переменные и область видимости

nick209
Offline
Зарегистрирован: 13.08.2017

Получилось! Создал в начале программы float с новым именем pressureresult а потом после "float bar" передал pressureresult = bar;

ну и в CAYENNE_OUT вызывал уже pressureresult

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

nick209 пишет:

Открыл, ща почитаю. Подскажите, в каком разделе искать?

Читать всё подряд. Иначе не поможет.

nick209
Offline
Зарегистрирован: 13.08.2017

Да это понятно... но иногда ты вроде это уже читал, но как применить не помнишь, я ж не практикую ежедневное программирование ардуинки))) 

И действительно... ещё несколько раз прочитал и вроде сообразил...

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

вуд