Ошибка в коде

Тема в разделе "Arduino & Shields", создана пользователем anifeev, 13 июн 2017.

Метки:
  1. anifeev

    anifeev Нуб

    Ошибка выглядит так:
    Arduino: 1.8.2 (Windows 8.1), Плата:"Arduino/Genuino Uno"

    C:\Users\User\Documents\Arduino\zvuk\zvuk.ino: In function 'void loop()':

    zvuk:42: error: 'lcd' was not declared in this scope

    lcd.backlight();

    ^

    exit status 1
    'lcd' was not declared in this scope

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

    скетч:
    #include <Wire.h>

    boolean lcdon; // состояние лампы: true - включено, false - выключено
    #include <LiquidCrystal_I2C.h> // подключаем библиотеку ЖКИ
    #define printByte(args) write(args); //
    int Value=0;
    float Value_volt=0;

    void setup() // процедура setup

    {

    pinMode(12,OUTPUT); // пин 12 со светодиодом будет выходом (англ. «output»)

    pinMode(A0,INPUT); // к аналоговому входу A0 подключим датчик (англ. «intput»)

    lcdon=false; // начальное состояние - лампа выключена


    Serial.begin(9600); // подключаем монитор порта

    LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея

    lcd.init(); // Инициализация lcd
    lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки


    }

    void loop() // процедура loop

    {
    Serial.println (analogRead(A0)); // выводим значение датчика на монитор
    if(analogRead(A0)>28) // регистрация хлопка на датчике звука

    {
    lcdon=!lcdon; // меняем статус лампы при регистрации хлопка
    Value = analogRead(A0);
    lcd.backlight();
    lcd.print (Value)




    delay(20); // задержка, "дребезга" хлопков

    }

    }
     
  2. DetSimen

    DetSimen Guest

    вынеси обьявление lcd из setup() наружу
     
    Svyatslav нравится это.
  3. anifeev

    anifeev Нуб

    всмысле наружу?
     
  4. DetSimen

    DetSimen Guest

    переменные описанные в функции являются локальными и внутри другой функции не видны. lcd у тебя создаеца внутри функции setup(), соттвецтно loop() ничего про нее не знает.
     
  5. DetSimen

    DetSimen Guest

    пацкаска
    int Value=0;
    float Value_volt=0;
    видны внутри обеих функций, а lcd - только унутре setup()

    дальше жувать?
     
  6. anifeev

    anifeev Нуб

    ничего не изменилось

    #include <Wire.h>

    boolean lcdon; // состояние лампы: true - включено, false - выключено
    #include <LiquidCrystal_I2C.h> // подключаем библиотеку ЖКИ
    #define printByte(args) write(args); //
    int Value=0;
    float Value_volt=0;

    void setup() // процедура setup

    {

    pinMode(12,OUTPUT); // пин 12 со светодиодом будет выходом (англ. «output»)

    pinMode(A0,INPUT); // к аналоговому входу A0 подключим датчик (англ. «intput»)

    lcdon=false; // начальное состояние - лампа выключена


    Serial.begin(9600); // подключаем монитор порта

    LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размерность дисплея

    }

    void loop() // процедура loop

    {
    Serial.println (analogRead(A0)); // выводим значение датчика на монитор
    if(analogRead(A0)>28) // регистрация хлопка на датчике звука

    {
    lcdon=!lcdon; // меняем статус лампы при регистрации хлопка
    lcd.init(); // Инициализация lcd
    lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки


    Value = analogRead(A0);
    lcd.backlight();
    lcd.print (Value)




    delay(20); // задержка, "дребезга" хлопков

    }

    }
     
  7. DetSimen

    DetSimen Guest

    ничего не поменял - ничего и не изменилось.
    и этта, код вставляй какследовает.
     
    parovoZZ нравится это.
  8. anifeev

    anifeev Нуб

    перед setup вставлять lcd?
     
  9. DetSimen

    DetSimen Guest

    Именно к этому я тебя и веду
     
    anifeev нравится это.
  10. anifeev

    anifeev Нуб

    спасибо, очень помог