А с чего-бы вам про флоат писал?lopezmil писал(а):Хоть кто-нибудь, кроме Slavas ( который сделал этот пользовательский блок ТА12), себе в flprog, прикреплённый мной файл, закидывал, открывал?
Элементарно, Ватсон :lopezmil писал(а):а на монитор порта вывести эти переменные со входа и выхода можно?
Как вы проверяли вы не написали, так что напишу как-бы проверял я в вашей ситуации.lopezmil писал(а):Да, условие такое, только ничего не происходит, ни когда вход 2 меньше 600, ни когда больше. На пин 13 всё время 1.
Код: Выделить всё
float vpp;
float ncurr;
float rms;
float wire;
int sensorTA12=0; // Analog input pin that sensor is attached to
float nVPP; // Voltage measured across resistor
float nCurrThruResistorPP; // Peak Current Measured Through Resistor
float nCurrThruResistorRMS; // RMS current through Resistor
float nCurrentThruWire; // Actual RMS current in Wire
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
pinMode(sensorTA12, INPUT);
}
void loop()
{
nVPP = getVPP();
nCurrThruResistorPP = (nVPP/200.0) * 1000.0;
nCurrThruResistorRMS = nCurrThruResistorPP * 0.707;
nCurrentThruWire = nCurrThruResistorRMS * 1000;
Serial.print("Volts Peak : ");
Serial.println(nVPP,3);
vpp = nVPP ; // выход vpp
Serial.print("Current Through Resistor (Peak) : ");
Serial.print(nCurrThruResistorPP,3);
Serial.println(" mA Peak to Peak");
ncurr = nCurrThruResistorPP ; // выход ncurr
Serial.print("Current Through Resistor (RMS) : ");
Serial.print(nCurrThruResistorRMS,3);
Serial.println(" mA RMS");
rms = nCurrThruResistorRMS ; // выход rms
Serial.print("Current Through Wire : ");
Serial.print(nCurrentThruWire,3);
Serial.println(" mA RMS");
wire= nCurrentThruWire ; // выход wire
Serial.println();
}
float getVPP()
{
float result;
int readValue; //value read from the sensor
int maxValue = 0; // store max value here
uint32_t start_time = millis();
while((millis()-start_time) < 1000) //sample for 1 Sec
{
readValue = analogRead(sensorTA12);
// see if you have a new maxValue
if (readValue > maxValue)
{
/*record the maximum sensor value*/
maxValue = readValue;
}
}
// Convert the digital data to a voltage
result = (maxValue * 5.0)/1024.0;
return result;
digitalWrite(13, (600.00) < (wire));
}
Должно быть как то такlopezmil писал(а):digitalWrite(13, (600.00) < (wire));
Код: Выделить всё
if (wire > 600)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
вот так мне компилирует flprog. Я понимаю, что ошибка в компиляции проекта программой, но где она не знаю. Поэтому и выложил уже скомпилированый текст программы. Попробовал ваше исправление, не помогло.
А чем вам не нравится запись вида:Dev1 писал(а):Что то новенькое
Код: Выделить всё
digitalWrite(13, (600.00) < (wire));