help вывод значения на экран

Тема в разделе "Arduino & Shields", создана пользователем lorgus, 30 ноя 2014.

  1. lorgus

    lorgus Нуб

    не бейте сильно, я новенький... помогите разобраться плиззззз. Есть значение, например
    int t = 10;
    как вывести это значение на экран?
    lcd.setCursor(1, 2);
    lcd.print(t); что тут не так.... ??? заранее спасибо.
    -------------------------------------------------
    #include <LiquidCrystal.h>
    #include <dht11.h>

    LiquidCrystal lcd(4, 5, 10, 11, 12, 13);
    dht11 sensor;

    #define DHT11PIN 8


    void setup() {
    lcd.begin(24, 4);
    lcd.clear();
    int t = 10;
    }

    void loop() {
    switch (sensor.read(DHT11PIN)) {
    case DHTLIB_OK:
    break;
    case DHTLIB_ERROR_CHECKSUM:
    lcd.print("Checksum error");
    delay(2000);
    return;
    case DHTLIB_ERROR_TIMEOUT:
    lcd.print("Time out error");
    delay(2000);
    return;
    default:
    lcd.print("Unknown error");
    delay(2000);
    return;
    }
    lcd.setCursor(1, 0);
    lcd.print("t,C:");
    lcd.print(sensor.temperature);

    lcd.setCursor(10, 0);
    lcd.print("v,%:");
    lcd.print(sensor.humidity);

    lcd.setCursor(1, 2);
    lcd.print("t");

    delay(2000);

    }
     
    Последнее редактирование: 30 ноя 2014
  2. Serdg

    Serdg Нерд

    а что не так? по коду не хватает инициализации датчика, проблема с выводом или с отображением?
     
  3. Salk

    Salk Гик

    Может надо удалить кавычки? Если хотите вывезти значение, а не то, что вы заключили в кавычки.
    Код (Text):
    lcd.setCursor(1, 2);
    lcd.print("t");
    lcd.print(t);
     
  4. lorgus

    lorgus Нуб

    датчики работают, все работает, за исключением того, что мне надо значение t на экран вывести
    lcd.print("t");
    lcd.print(t);
    не выводят, первый понятно букву t выведет, а мне ее значение нужно
     
  5. Alex19

    Alex19 Гуру

    Есть пару нюансов.
    1. int t = 10; объявлен в setup, в loop он будет не доступным. Объявите данный int вне setup
    2. Прежде, чем писать lcd.print("Checksum error"); надо уставить где, к примеру lcd.setCursor(1, 2); относится к switch.

    UPD. Вот код
    Код (Text):

    #include <LiquidCrystal.h>
    #include <dht11.h>

    LiquidCrystal lcd(4, 5, 10, 11, 12, 13);
    dht11 sensor;

    #define DHT11PIN 8

    int t = 10;

    void setup() {
        lcd.begin(24, 4);
        lcd.clear();
    }

    void loop() {
        switch (sensor.read(DHT11PIN)) {
        case DHTLIB_OK:
            break;
        case DHTLIB_ERROR_CHECKSUM:
            lcd.setCursor(1, 0);
            lcd.print("Checksum error");
            delay(2000);
            return;
        case DHTLIB_ERROR_TIMEOUT:
            lcd.setCursor(1, 0);
            lcd.print("Time out error");
            delay(2000);
            return;
        default:
            lcd.setCursor(1, 0);
            lcd.print("Unknown error");
            delay(2000);
            return;
        }
        lcd.setCursor(1, 0);
        lcd.print("t,C:");
        lcd.print(sensor.temperature);

        lcd.setCursor(10, 0);
        lcd.print("v,%:");
        lcd.print(sensor.humidity);

        lcd.setCursor(1, 2);
        lcd.print("t");

        delay(2000);

    }
     
  6. lorgus

    lorgus Нуб

    ааааааа плин как все просто..... ОГРОМНОЕ СПС
     
  7. Alex19

    Alex19 Гуру

    Не за что, почитайте область видимости переменных.
    Очень хороший конспект, данный момент описан в разделе Границы переменных
    http://robocraft.ru/files/books/arduino_notebook_rus_v1-1.pdf

    Да и просто будет полезен начинающим.
     
    Salk нравится это.
  8. lorgus

    lorgus Нуб

    спс, тогда уж еще один , последний вопрос....
    как сравнить t с температурой датчика и если температура датчика выше то написать на экране off
    ---------
    for sensor.temperature > t to
    lcd.setCursor(10, 3);
    lcd.print("off"); ??????



    тут http://robocraft.ru/files/books/arduino_notebook_rus_v1-1.pdf не оч понятно написали
     
  9. Salk

    Salk Гик

    Сравнение лучше всего осуществить условием. Если температура > t, то выполнится условие: вывод на экран.
    if (sensor.temperature > t)
    {
    lcd.setCursor(10, 3);
    lcd.print("off");
    }
     
  10. lorgus

    lorgus Нуб

    понял.... спс.... буду копать дальше сам, а то плин 4 месяц на больничном, решил ардуинкой заняться...
     
  11. Alex19

    Alex19 Гуру

    Вроде бы написано просто, но могу ошибаться.
    Может, кто порекомендует достойную книгу для начинающих.
     
  12. Salk

    Salk Гик

    Форум :D