Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2017-11-23 15:32:00

  qba1707 - Użytkownik

qba1707
Użytkownik
Zarejestrowany: 2011-08-16

atmega328p,rtc idht11

Witam.
Stworzyłem sobie układ, który wygląda jak na zdjęciach. Problem tkwi w tym, iz atmega nie trzyma żadnych ustawień(ustawiłem rtc, po zrestartowaniu godzina i data jest całkiem inna od tej ustawionej), za nic nie mogę zmusić dht11, aby wyświetlał temp. Co robię źle?Dodam,że program wgrany na arduino uno,l lub chińską podróbę arduino nano działa prawidłowo.
Kod wygląda

Kod:

#define przycisk1 9
#define przycisk2 10
#define d 3000
#include <LiquidCrystal_I2C.h>
#include <DS3231.h>
#include <DHT.h>
#include <Wire.h>
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
DS3231 rtc(SDA, SCL);
float wilgotnosc;
float temperatura;
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE); 

void setup() {
  Serial.begin(9600);
  lcd.begin(16,2);
  dht.begin ();
  rtc.begin ();
  lcd.noBacklight ();
  pinMode (przycisk1, INPUT_PULLUP);
  pinMode (przycisk2, INPUT_PULLUP);
  //rtc.setTime(11, 35, 10);
  //rtc.setDate(23, 11, 2017);
    
}

void loop() {
temperatura = dht.readTemperature();
wilgotnosc = dht.readHumidity();
  switch ((digitalRead(przycisk1) == LOW)) 
   {
    case 1:
      //instrukcje dla var=1
      lcd.clear();
      lcd.backlight();
      lcd.setCursor(0,0);
      lcd.print("TEMP");
      lcd.setCursor(0,1);
      lcd.print("WILG");
      lcd.setCursor(8,0);
      lcd.print(temperatura);
      lcd.print("*C");
      lcd.setCursor(8,1);
      lcd.print(wilgotnosc);
      lcd.print("%");
      delay(d);
      lcd.clear();
      break;
   default: 
        lcd.noBacklight();
      lcd.setCursor(0,0);
    lcd.print("Godz:   ");
     lcd.setCursor(0,1);
    lcd.print("Data:   ");
    lcd.setCursor(6,0);
    lcd.print(rtc.getTimeStr());
    lcd.setCursor(6,1);
    lcd.print(rtc.getDateStr());
         
   }
      if ((digitalRead(przycisk2) == LOW)) 
   {
    lcd.backlight();
  delay(1000);
     
  }
else if ((digitalRead(przycisk2) == HIGH))
{
  lcd.noBacklight ();
}
}

Offline

 

#2  2017-11-23 17:14:36

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: atmega328p,rtc idht11

Pokaż schemat.
BTW za ten delay(1000) to powinieneś dostać kopa w rzyć, i to centralnie w środek.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#3  2017-11-23 17:58:17

  qba1707 - Użytkownik

qba1707
Użytkownik
Zarejestrowany: 2011-08-16

Re: atmega328p,rtc idht11

schematu jako takiego nie mam, tu https://postimg.org/gallery/2wgut0pbw/ wsadziłem zdjęcia,aczkolwiek raczej pomocne nie będą...coś mi się tak wydaje.

BTW za ten delay(1000) to powinieneś dostać kopa w rzyć, i to centralnie w środek.[/quote]
Dlaczego za krótko?

Ostatnio edytowany przez qba1707 (2017-11-23 18:00:18)

Offline

 

#4  2017-11-23 18:22:15

  arecki - Użytkownik

arecki
Użytkownik
Skąd: 44 Bronson Lane Hensonville
Zarejestrowany: 2016-03-03

Re: atmega328p,rtc idht11

[quote=qba1707]schematu jako takiego nie mam, tu https://postimg.org/gallery/2wgut0pbw/ wsadziłem zdjęcia,aczkolwiek raczej pomocne nie będą...coś mi się tak wydaje.

BTW za ten delay(1000) to powinieneś dostać kopa w rzyć, i to centralnie w środek.[/quote]
Dlaczego za krótko?[/quote]
:D
W ogóle nie używać do takich zadań delay.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.025 seconds, 13 queries executed ]

Informacje debugowania

Time (s) Query
0.00021 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00252 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='54.81.58.140' WHERE u.id=1
0.00370 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '54.81.58.140', 1711706458)
0.00421 SELECT * FROM punbb_online WHERE logged<1711706158
0.00145 DELETE FROM punbb_online WHERE ident='35.175.133.71'
0.00093 DELETE FROM punbb_online WHERE ident='85.208.96.197'
0.00125 SELECT topic_id FROM punbb_posts WHERE id=315710
0.00153 SELECT id FROM punbb_posts WHERE topic_id=30080 ORDER BY posted
0.00174 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=30080 AND t.moved_to IS NULL
0.00007 SELECT search_for, replace_with FROM punbb_censoring
0.00185 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=30080 ORDER BY p.id LIMIT 0,25
0.00216 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30080
Total query time: 0.02169 s