#1 2022-05-28 12:49:33

Cheburek
Учасник
Зареєстрований: 2022-05-17
Повідомлень: 24

не работает

при вигрузке скетча дает ошибку

D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino: In function 'void setup()':
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino:34:19: error: expected primary-expression before '.' token
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino:35:18: error: expected primary-expression before '.' token
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino: In function 'void loop()':
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino:45:23: error: expected primary-expression before '.' token
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino:47:18: error: expected primary-expression before '.' token
D:UserDatamikeOneDriveДокументыArduinosketch_may28asketch_may28a.ino:48:18: error: expected primary-expression before '.' token

Compilation error: exit status 1
вот код

#include <DHT.h>
#include <DHT_U.h>


#include <LiquidCrystal_I2C.h>
#include <Wire.h> 



LiquidCrystal_I2C lcd(0x27, 16, 2);
#define outPin 8	
#define DHTPIN 8
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);


unsigned long last_time2;

int seconds = 0;
int minutes = 0;
int hours = 0;
int days = 0;

float start_temp = 0;
float start_hum = 0;


void setup() {
  
  lcd.begin(16, 2);
	lcd.backlight();
	lcd.clear();
  start_temp = DHT.temperature;
  start_hum = DHT.humidity;



}

void loop() {
  timer();
  if (millis()- last_time2 > 1000){
    last_time2 = millis();
    int readData = DHT.read11(outPin);

    float t = DHT.temperature;	
    float h = DHT.humidity;		
    lcd.begin(16, 2);
    lcd.print(start_temp);
    lcd.print("C");
    lcd.print(start_hum);
    lcd.print(" H");
    lcd.setCursor(0,2);
    lcd.print(t);
    lcd.print("C ");
    lcd.print(h);
    lcd.print("H%");
    lcd.clear();
  }
}


void timer(){
  if (millis()- last_time2 > 1000){
    last_time2 = millis();
    seconds = seconds + 1;
  }
  if (seconds == 60){
    seconds = 0;
    minutes = minutes + 1;
    }
    
  if (minutes == 60){
    minutes = 0;
    hours = hours + 1;
    }  
  if (hours == 24){
    hours = 0;
    days = days + 1;
    } 

  }

Неактивний

#2 2022-05-28 14:58:29

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 874

Re: не работает

Переведите сообщение об ошибке.
Узнаете много интересного.
Можно его загуглить...

Неактивний

#3 2022-05-29 14:18:40

Cheburek
Учасник
Зареєстрований: 2022-05-17
Повідомлень: 24

Re: не работает

перевел загуглил, ничего не нашел

Неактивний

#4 2022-05-29 14:25:22

г0сть
Гість

Re: не работает

Неужели так тяжело посмотреть хотя бы примеры идущие с библиотекой если уже лень поискать в гугле который завален кодами для dht11 ?

#5 2022-05-29 14:27:03

Cheburek
Учасник
Зареєстрований: 2022-05-17
Повідомлень: 24

Re: не работает

посмотрел, скопировал, ошибка уже другая

Неактивний

#6 2022-05-29 14:35:23

г0сть
Гість

Re: не работает

в военное время хрустальные шары запрещены

#7 2022-05-29 14:36:52

Cheburek
Учасник
Зареєстрований: 2022-05-17
Повідомлень: 24

Re: не работает

от блин, а я себе один заказал

Неактивний

#8 2022-05-29 14:53:17

Cheburek
Учасник
Зареєстрований: 2022-05-17
Повідомлень: 24

Re: не работает

переделал код, не виводет нормально текст на lcd1602 ic2
не виводит темературу с влажностью сейчас

#include "DHT.h"
#include <LiquidCrystal_I2C.h>
#include <Wire.h> 


#define DHTPIN 3     

#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);

float start_temp = 10;
float start_hum = 10;
unsigned long last_time2;
float h;
float t;

void setup() {


  lcd.begin(16, 2);
  dht.begin();
  lcd.backlight();
  lcd.clear();
  h = dht.readHumidity();
  t = dht.readTemperature();
  start_temp = t;
  start_hum = h;
  
}

void loop() {
  if (millis()- last_time2 > 2000){
    last_time2 = millis();
    // Reading temperature or humidity takes about 250 milliseconds!
    // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
    h = dht.readHumidity();
    t = dht.readTemperature();
    
    if (isnan(h) || isnan(t)) {
      lcd.begin(16, 2);
      lcd.print("ERROR");
      
      return;
    }
  
    lcd.print(start_temp);
    lcd.print("C ");
    lcd.print(start_hum);
    lcd.print("% H ");
    lcd.setCursor(0,2);
    lcd.print(t);
    lcd.print("C "); 
    lcd.print(h);
    lcd.print("% H ");
    
  }
}

Остання редакція Cheburek (2022-05-29 15:02:06)

Неактивний

#9 2022-05-29 15:07:17

г0сть
Гість

Re: не работает

А стандартный Hello world! уже выводил?

#10 2022-05-29 15:20:15

Cheburek
Учасник
Зареєстрований: 2022-05-17
Повідомлень: 24

Re: не работает

да

Неактивний

#11 2022-05-29 15:27:39

u0cnm
Гість

Re: не работает

Ты здешнему Malyhin-у не родственник случайно? Тот тоже при каждом выводе на дисплей инициализирует его заново и с номерами строк экрана разобраться не может

#12 2022-05-29 15:38:13

Cheburek
Учасник
Зареєстрований: 2022-05-17
Повідомлень: 24

Re: не работает

родственик, а что? знакоми

Неактивний

#13 2022-05-29 15:40:17

г0сть
Гість

Re: не работает

пересекались

#14 2022-05-29 15:47:39

Cheburek
Учасник
Зареєстрований: 2022-05-17
Повідомлень: 24

Re: не работает

нет, делаем один проект вместе

Неактивний

#15 2022-05-29 15:56:07

г0сть
Гість

Re: не работает

Ну, тогда держи, изучайте https://wokwi.com/projects/332994822216352338
Не во всех библиотеках авторы предусмотрели есть защита от неучей

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму