Объединение 2-х скетчей

Тема в разделе "Arduino & Shields", создана пользователем vovik181083, 9 дек 2016.

  1. vovik181083

    vovik181083 Нуб

    Код (C++):
    //градусник


    #include <math.h>
    #include <LiquidCrystalRus.h>
                                                    // подключаем экран
    LiquidCrystalRus lcd(1, 2, 3, 4, 5, 6); // (RS, E, DB4, DB5, DB6, DB7)


    void setup()
    {
    lcd.begin(16, 2);                  // Задаем размерность экрана
    lcd.clear();
    lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки
    }


    // создаем метод для перевода показаний сенсора в градусы Цельсия
    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(31));  // считываем показания с сенсора
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Water Volt ");
      lcd.setCursor(11,0);
      lcd.print("Oil");
      lcd.setCursor(0,1);
      lcd.print(temp);
      lcd.setCursor(10,1);
      lcd.print(temp);
      }

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


    Код (C++):
     //Вольт амперметр на ардуино.


    #include <Wire.h>
    #include <LiquidCrystalRus.h>               // подключаем экран
                                                 
    LiquidCrystalRus lcd(1, 2, 3, 4, 5, 6); // (RS, E, DB4, DB5, DB6, DB7)
    int analogInput = 30;        //вход вольтметра
    int ampInput = 31;             //вход амперметра  
    float vin = 0;               //входное напряжение
    float ain = 0;               //входной ток мА


    void setup()
    {
    lcd.begin(16, 2);                        // Задаем размерность экрана
    pinMode(analogInput, INPUT);            // вход МК 30 пин
    pinMode(ampInput, INPUT);              // вход МА 31 пин
    }

    void loop() {
      vin = float(analogRead(analogInput))/19.75;    //растёт напряжения
      ain = float(analogRead(ampInput))*1.45;       //расчёт силы тока мА
      lcd.setCursor(0, 0);
      lcd.print("Volt =  ");                         //вывод напряжения
      lcd.print(vin);

      lcd.setCursor(0, 1);
      lcd.print("mA   =  ");                     // вывод миллиампер
      lcd.print(ain);
      delay(500);
    }
     
     
  2. vovik181083

    vovik181083 Нуб

    Как их объединить? при объединении выходит ошибка на функции loop, ошибка {
     
  3. Tomasina

    Tomasina Сушитель лампочек Модератор

    Код (C++):
    #include <Wire.h>
    #include <math.h>
    #include <LiquidCrystalRus.h>
    // подключаем экран
    LiquidCrystalRus lcd(1, 2, 3, 4, 5, 6); // (RS, E, DB4, DB5, DB6, DB7)

    int analogInput = 30;        //вход вольтметра
    int ampInput = 31;             //вход амперметра
    float vin = 0;               //входное напряжение
    float ain = 0;               //входной ток мА

    void setup()
    {
      pinMode(analogInput, INPUT);            // вход МК 30 пин
      pinMode(ampInput, INPUT);              // вход МА 31 пин
      lcd.begin(16, 2);                  // Задаем размерность экрана
      lcd.clear();
      // lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки -- не нужно, т.к. при clear это уже делается
    }


    // создаем метод для перевода показаний сенсора в градусы Цельсия
    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(31));  // считываем показания с сенсора
      lcd.clear();
      //lcd.setCursor(0, 0); -- не нужно, т.к. при clear это уже делается
      lcd.print("Water Volt ");
      lcd.setCursor(11, 0);
      lcd.print("Oil");
      lcd.setCursor(0, 1);
      lcd.print(temp);
      lcd.setCursor(10, 1);
      lcd.print(temp);
    }

    void printPower()
    {
      vin = float(analogRead(analogInput)) / 19.75;  //растёт напряжения
      ain = float(analogRead(ampInput)) * 1.45;     //расчёт силы тока мА
      lcd.clear();
      //lcd.setCursor(0, 0); -- не нужно, т.к. при clear это уже делается
      lcd.print("Volt =  ");                         //вывод напряжения
      lcd.print(vin);
      lcd.setCursor(0, 1);
      lcd.print("mA   =  ");                     // вывод миллиампер
      lcd.print(ain);
    }

    void loop()
    {
      printTemp(); // измеряем и отображаем температуру
      delay(1000);
      printPower(); // измеряем и отображаем напряжение и ток
      delay(1000);
    }
     
    vovik181083 нравится это.
  4. vovik181083

    vovik181083 Нуб

    Огромная благодарность за помощь!
     
  5. Tomasina

    Tomasina Сушитель лампочек Модератор

    в чем была разница между твоим объединенным скетчем и моим? Ведь все просто же.
     
  6. vovik181083

    vovik181083 Нуб

    ну для кого как! а для меня пока сложно