Выдает ошибку: exit status 1 'lcd' does not name a type

Тема в разделе "Arduino & Shields", создана пользователем wasabisa, 24 ноя 2021.

  1. wasabisa

    wasabisa Нуб

    делаю часы с выводом реального времени
    плата mega 2560,экран 1602А,то что выделено жирным текстом выдает ошибку

    #include <iarduino_RTC.h>
    iarduino_RTC time(RTC_DS1302,10,11,12); // для модуля DS1302 - RST, CLK, DAT
    #include "LiquidCrystal.h"
    // библиотека для устройств I2C
    LiquidCrystal lcd(8,9,4,5,6,7);

    LCD.setCursor(0,0);

    void setup() {
    delay(300);
    LCD.init(); // инициализация LCD дисплея
    LCD.backlight(); // включение подсветки дисплея
    time.begin();
    time.settime(0, 30, 18, 12, 6, 20, 5); // 0 сек, 30 мин, 18 часов, 12, июня, 2020, четверг
    }

    void loop() {
    // если прошла 1 секунда выводим время на дисплей
    if (millis() % 1000 == 0) {
    LCD.print(time.gettime("d M Y, D"));
    LCD.setCursor(4,1);
    LCD.print(time.gettime("H:i:s"));

    delay(1);
    }
    }
     
  2. parovoZZ

    parovoZZ Гуру

    а чо, основы языка си совсем не ведомы? Ну так прежде чем браться за перо, необходимо открыть Кернигана и Ричи и почитать, как в языке си объявляются переменные.
     
    Airbus нравится это.
  3. Airbus

    Airbus Радиохулиган Модератор

    А что у нас в примерах библиотеки iarduino_RTC.h? Зачем отсебятиа! Причем такая жуткая
    Вот так правильно-код скомпилился и для Уно и для Меги. Ваши ашипки где то закоментил а где то поправил. вы взяли стыбзили код для I2С дисплея и подумали что он будет работать с обычным подключением?Но очень много косяков по работе с RTC. не факт что будет работать в таком виде как часы.Так что проверяйте
    Код (Text):
    #include <iarduino_RTC.h>
    iarduino_RTC time(RTC_DS1302,10,11,12); // для модуля DS1302 - RST, CLK, DAT
    #include "LiquidCrystal.h"
    // библиотека для устройств I2C//А оно там есть?
    LiquidCrystal lcd(8,9,4,5,6,7);

    //LCD.setCursor(0,0);//накуя?

    void setup() {
    delay(300);
    //LCD.init(); // инициализация LCD дисплея// какого?
    //LCD.backlight(); // включение подсветки дисплея //Зачем?
    lcd.begin(16, 2);//Надо так!
    time.begin();
    time.settime(0, 30, 18, 12, 6, 20, 5); // 0 сек, 30 мин, 18 часов, 12, июня, 2020, четверг
    }

    void loop() {
    // если прошла 1 секунда выводим время на дисплей
    if (millis() % 1000 == 0) {
    lcd.print(time.gettime("d M Y, D")); //Надо так!
    lcd.setCursor(4,1); //Надо так!
    lcd.print(time.gettime("H:i:s")); //Надо так!
    delay(1);
    }
    }
     
    Последнее редактирование: 25 ноя 2021
  4. Airbus

    Airbus Радиохулиган Модератор

    Ну и RTC работают иначе.Но это уже совсем другая песня
    Код (Text):
    #include <iarduino_RTC.h>                                   // Подключаем библиотеку iarduino_RTC для работы с модулями реального времени.
      iarduino_RTC watch(RTC_DS1302, 2, 3, 4);                // Объявляем объект watch для работы с RTC модулем на базе чипа DS1302, указывая выводы Arduino подключённые к выводам модуля RST, CLK, DAT.

    void setup(){                                               //
        delay(300);                                             // Ждем готовности модуля отвечать на запросы.
        Serial.begin(9600);                                     // Инициируем передачу данных в монитор последовательного порта на скорости 9600 бод.
        watch.begin();                                          // Инициируем работу с модулем.
    }                                                           //
    void loop(){                                                //
        if(millis()%1000==0){                                   // Если прошла 1 секунда.
          Serial.println(watch.gettime("d-m-Y, H:i:s, D"));     // Выводим время.
          delay(1);                                             // Приостанавливаем скетч на 1 мс, чтоб не выводить время несколько раз за 1мс.
        }                                                       //
    }                        
     
    wasabisa нравится это.