HTML- вольтметр

SerP_89
Offline
Зарегистрирован: 31.01.2017

Гуру тырнет скурившие!!! П

[code]

#include "etherShield.h"
#include "ETHER_28J60.h"

static uint8_t mac[6] = {0x76,0x13,0x31,0x2b,0xab,0x48};                                                          
static uint8_t ip[4] = {192, 168, 0, 111};
static uint16_t port = 88;                                      

float analogInput = A0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // сопротивление R1 (100K)
float R2 = 10000.0; // сопротивление R2 (10K)
float value = 0.0;
float val = 0.0;




ETHER_28J60 ethernet;

void setup()
{ 
  ethernet.setup(mac, ip, port);
}

void loop()
{

   // считывание аналогового значения
   value = analogRead(analogInput);
   vout = (value * 5) / 1024.0; // 4.87 это показания питания коннтроллера - следует изменить значение по факту
   vin = vout / (R2/(R1+R2)); 
  if (ethernet.serviceRequest())
  {
    ethernet.print("<H1>вольтметр</H1>");
     e.print("<hr>");
    ethernet.print(vin);
    ethernet.respond();
    
  }
  delay(100);
}

[/code]

одскажите почему на странице не отображаеются десятые и сотые показания вольтметра

harus
Offline
Зарегистрирован: 29.06.2016

Вот так не пробовал:
ethernet.print(vin,2);
?

SerP_89
Offline
Зарегистрирован: 31.01.2017

пробовал , матерится -no matching function for call to 'ETHER_28J60::print(float&, int)'

derwesh
Offline
Зарегистрирован: 21.02.2017

Сам преобразовывай vin в строку и печатай, например так:

String ftos (float a ) {
// Преобразует float в String
	static char str[10];
	dtostrf(a, 4,2, str);
	return String (str);
}  

Ну и вывод

ethernet.print(ftos(vin));

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

SerP_89, функция не работает с float

SerP_89
Offline
Зарегистрирован: 31.01.2017

стою на асфальте я в лыжи обутый....

и на стринг матерится , температуру выводит с сотыми а вольты никак

24 числа головка вава у всех ? кто живой подправьте скетч ))

Panzerfunker
Offline
Зарегистрирован: 28.10.2016
 value = analogRead(analogInput);
  vout = (value * 5.0) / 1024.0; // 4.87 это показания питания коннтроллера - следует изменить значение по факту
     vin = vout / (R2/(R1+R2));
    if (ethernet.serviceRequest())
   {
     ethernet.print("<H1>вольтметр</H1>");
      e.print("<hr>");

          String V = vin;

 

     ethernet.print(V);
      ethernet.respond();
      
    }
   delay(100);

Попробуй так.

SerP_89
Offline
Зарегистрирован: 31.01.2017

н.да пробовать можно бесконечно, тута знать нада )))

он нашёл другое матерное слово- conversion from 'int' to 'String' is ambiguous

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

SerP_89 пишет:

стою на асфальте я в лыжи обутый....

Так переобуйтесь, неужели Он и это запретил?.

SerP_89 пишет:

н.да пробовать можно бесконечно, тута знать нада )))

Нет. Все хреновы библиотеки знать невозможно, надо обуваться по сезону - иметь голову, уметь ею пользоваться и не забывать иногда её включать.

Просто посмотрите какие типы данных может выводить Ваша библиотека, а дайте ей правильный.

SerP_89
Offline
Зарегистрирован: 31.01.2017

логично наверное- если бы я знал то бы не спрашивал ???

или вопрос непонятен?

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

SerP_89 пишет:

логично наверное- если бы я знал то бы не спрашивал ???

или вопрос непонятен?

Да, нет - это Вам ответ непонятен.

Что значит "если бы знал, то не спрашивал бы"? Я же Вам русским языком написал - всех быблиотек не знает никто. И то, что Вы не знаете - я не сомневаюсь. Я же Вам сказал - посмотрите!

SerP_89
Offline
Зарегистрирован: 31.01.2017

 

#include "etherShield.h"
#include "ETHER_28J60.h"
 
static uint8_t mac[6] = {0x76,0x13,0x31,0x2b,0xab,0x48};                                                          
static uint8_t ip[4] = {192, 168, 0, 111};
static uint16_t port = 88;                                      
 
float analogInput = A0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // сопротивление R1 (100K)
float R2 = 10000.0; // сопротивление R2 (10K)
float value = 0.0;
float val = 0.0;
 
char buf[30];
 
 
ETHER_28J60 ethernet;
 
void setup()
  ethernet.setup(mac, ip, port);
}
 
void loop()
{
 
   // считывание аналогового значения
   value = analogRead(analogInput);
   vout = (value * 5) / 1024.0; // 5 это показания питания коннтроллера - следует изменить значение по факту
   vin = vout / (R2/(R1+R2)); 
 
   float volt=vin;
   dtostrf(volt,5,2,buf);
   
  if (ethernet.serviceRequest())
  {
    ethernet.print("<H1>вольтметр</H1>");
     ethernet.print("<hr>");
    ethernet.print(buf);
    ethernet.respond();
    
  }
  delay(100);
}
 
SerP_89
Offline
Зарегистрирован: 31.01.2017

Пользуйтесь форумчане ) 

отдельное спасибо    { ЕвгенийП ооочень помог.