Arduino Forum

International => Россия - Russia => Topic started by: roman198127 on Jan 03, 2019, 01:25 am

Title: народ подскажите, не могу понять где ошибка
Post by: roman198127 on Jan 03, 2019, 01:25 am
пытаюсь соеденить термометр и вольтметр. я новичек. по отдельности все работает.
 пишет ошибку; Arduino: 1.8.2 (Windows 7), Плата:"Arduino/Genuino Uno"

rabochii_termometr:90: error: 'value' does not name a type

rabochii_termometr:91: error: 'vout' does not name a type

rabochii_termometr:92: error: 'vin' does not name a type

rabochii_termometr:93: error: expected unqualified-id before 'if'

rabochii_termometr:96: error: 'lcd' does not name a type

rabochii_termometr:97: error: 'lcd' does not name a type

rabochii_termometr:98: error: 'lcd' does not name a type

rabochii_termometr:99: error: expected constructor, destructor, or type conversion before '(' token

rabochii_termometr:100: error: expected declaration before '}' token

exit status 1
'value' does not name a type

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"


сам код; 
// подключаем две библиотеки для работы с LCD и математических вычислений
#include <LiquidCrystal.h>
#include <math.h>



LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // инициализируем LCD
// degree centigrade
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // resistance of R1 (100K) -see text!
float R2 = 10000.0; // resistance of R2 (10K) -- see text!
int value = 0;
int backLight = 13;

void setup(void) {
pinMode(analogInput, INPUT);
lcd.begin(16, 2);
lcd.setCursor(1,0);
lcd.write("-Privet Roman-");
delay(1000);
lcd.setCursor(1,1);
lcd.write("-Privet Roman-");
delay(1000);
lcd.setCursor(1,0);
lcd.write("              ");
delay(1000);
lcd.setCursor(1,1);
lcd.write("-Privet Roman-");
lcd.write("              ");
delay(1000);
lcd.setCursor(1,0);
lcd.write("              ");
lcd.setCursor(1,0);
lcd.write("-SCOOTER QT-9-");
delay(3000);
lcd.setCursor(1,0);
lcd.write("              ");

 
  // выбор типа дисплея, 16 символов и 2 строки
  lcd.begin(16, 2);

  // вывод символа на дисплей

  lcd.write((uint8_t)0);
  pinMode(backLight, OUTPUT);
 
  digitalWrite(backLight, HIGH);
               
                   
  lcd.setCursor(0,0);
  {
    pinMode(analogInput, INPUT);
lcd.begin(16, 2);
lcd.print("DC VOLTMETER");

  }



 // создаем метод для перевода показаний сенсора в градусы Цельсия
double Getterm(int RawADC) {
  double temp;
  temp = log(((10240000/RawADC) - 10000));
  temp = 1 / (0.001129148 + (0.000234125 * temp) + (0.0000000876741 * temp * temp * temp));
  temp = temp - 273.15;
  return temp;
}

// создаем метод для вывода на экран показаний сенсора
void printTemp(void) {
  double temp = Getterm(analogRead(4));  // считываем показания с сенсора
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("t motop:");
  lcd.setCursor(9,0);
  lcd.print(temp);
  lcd.print(" C");
 
  }


void loop(void) {
  printTemp(); // вызываем метод, созданный ранее
  delay(1000);
}
// считывание аналогового значения
   value = analogRead(analogInput);
   vout = (value * 5.0) / 1024.0;
   vin = vout / (R2/(R1+R2));
   if (vin<0.09) {
   vin=0.0;// обнуляем нежелательное значение
}
lcd.setCursor(0, 1);
lcd.print("INPUT V= ");
lcd.print(vin);
delay(500);
}

Title: Re: народ подскажите, не могу понять где ошибка
Post by: sterretje on Jan 03, 2019, 04:08 am
You have a whole lot of code outside a function.

Use IDE tools -> auto format to properly indent your code. You will see that starts at the beginning of a line which indicates that it's outside a function.

It's probably

void loop(void) {
  printTemp(); // вызываем метод, созданный ранее
  delay(1000);
}  <<<----------




PS
You posted this in the English part of the forum hence a reply in English. There is a russian section (http://forum.arduino.cc/index.php?board=120.0). It's also not a "installation and troubleshooting question"


Google translate
У вас есть много кода вне функции.

Используйте инструменты IDE -> автоформат для правильного отступа вашего кода. Вы увидите, что это начинается в начале строки, которая указывает на то, что она находится вне функции.

Это, вероятно

void loop(void) {
  printTemp(); // вызываем метод, созданный ранее
  delay(1000);
}  <<<----------



PS
Вы разместили это в английской части форума, поэтому ответ на английском. Существует [url = http: //forum.arduino.cc/index.php? Board = 120.0] русский раздел [/ url]. Это также не «вопрос установки и устранения неполадок»