Skocz do zawartości

KaPl

Użytkownicy
  • Zawartość

    2
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

KaPl wygrał w ostatnim dniu 19 stycznia

KaPl ma najbardziej lubianą zawartość!

Reputacja

2 Neutralna

O KaPl

  • Ranga
    1/10
  • Urodziny 17.02.2002

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Ostrów Wielkopolski

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Cześć Przychodzę z problemem z Arduino. Mianowicie robię projekt od sterowania ogrzewaniem w domu i używam wyświetlacza 20x2(zwykły, bez I2C), czujnika temperatury LM35(będą używane 3, ale na czas pisania kodu używam tylko jednego) oraz modułu RTC DS3231(I2C). Problem polega na tym, że gdy podłącze wszystko razem wychodzi mi zła temperatura(45*C). W momencie, gdy odłączę RTC(który jest podpięty pod SDA,SCL) to temperatura pokazuję się dobra(28*C). I teraz nie wiem czy to kwestia obliczeń, które zapisałem w kodzie, czy czegoś innego. I jeszcze jakby ktoś mógł podpowiedzieć, chcę dodać zmianę czasu z letniego na zimowy. Miałem pomysł aby zrobić dwa voidy(jeden odpowiadałby za czas letni, drugi za zimowy), ale zrezygnowałem z tego pomysłu. Stąd drugie pytanie: Macie jakieś pomysły jak by to zrobić? Pozdrawiam #include <DS3231.h> #include <LiquidCrystal.h> // includes the LiquidCrystal Library DS3231 rtc(SDA, SCL); LiquidCrystal lcd(12,11,5,4,3,2); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7) void setup() { rtc.begin(); // Initialize the rtc object // The following lines can be uncommented to set the date and time //rtc.setTime(18,3,20); // Set the time to 12:00:00 (24hr format) //rtc.setDate(2, 11, 2019); // Set the date to January 1st, 2014 pinMode(6, INPUT_PULLUP); pinMode(7, INPUT_PULLUP); pinMode(8, INPUT_PULLUP); Serial.begin(9600); lcd.begin(20,4); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } void loop() { float odczyt = analogRead(A5); float temp = analogRead(A5) * (5.0/1024.0) * 10; Serial.print("Odczyt: "); Serial.println(odczyt); Serial.print("Temp: "); Serial.println(temp); delay(1000); }
  2. Dzień dobry, a oto moja wersja zadania domowego 7.4, z tego co przeglądałem forum nie było takiego więc postanowiłem, że podzielę się moim pomysłem na rozwiązanie. Od razu mówię że mam inny rodzaj wyświetlacza, ale to tylko są inne biblioteki i inicjalizacja LCD Zad 7.4 Mówiono wiele razy ze mają być komentarze, więc proszę bardzo szczegółowo #include <LiquidCrystal_I2C.h> //Biblioteka #include <Wire.h> //Biblioteka LiquidCrystal_I2C lcd(0x3F, 16,2); //Tworze obiekt, dzięki któremu mogę odwołać się do wyświetlacza int sekunda = 0; //Zmienna int minuta = 0; //Zmienna int godzina = 0; //Zmienna void setup() { pinMode(7, INPUT_PULLUP); //Przycisk jako wejście pinMode(8, INPUT_PULLUP); //Przycisk jako wejscie lcd.init(); //Inicjalizacja LCD lcd.backlight(); //Właczenie podswietlenia } void loop() { lcd.setCursor(1,0); //Ustawienie kursora lcd.print("Aktualny czas:"); //Wyswietlamy tekst if(digitalRead(7) == LOW) { //Jesli przycisk wcisniety while(digitalRead(8) == HIGH) { //Do momentu gdy przycisk nie jest wcisniety delay(995); //Opoznienie[ms] sekunda = sekunda + 1; //Do zmiennej "sekunda" dodaje 1 if(sekunda < 10) { //Jesli sekunda jest mniejsza od 10 lcd.setCursor(11,1); //Ustawienie kursora lcd.print("0"); //Wyswietlenie "0" lcd.setCursor(12,1); //Ustawienie kursora lcd.print(sekunda); //Wyswietlenie zmiennej "sekunda" lcd.print("s"); //Jednostka } if(sekunda >= 10 && sekunda < 60) { //Jesli zmienna "sekunda" jest wieksza badz równa 10 i mniejsza od 60 lcd.setCursor(11,1); //Ustawienie kursora lcd.print(sekunda); //Wyswietlanie zmiennej "sekunda" lcd.print("s"); //Jednostka } if(sekunda == 60) { //Jesli sekunda bedzie równa 59 sekunda = 0; //Wyzerowanie zmiennej "sekunda" minuta = minuta + 1; //Do zmiennej "minuta" dodaje 1 lcd.setCursor(11,1); //Ustawienie kursora lcd.print("00"); //Wyswietlenie "00" lcd.setCursor(5,1); //Ustawienie kursora lcd.print(minuta); //Wyswietlanie zmiennej "minuta" lcd.print("min"); //Jednostka } if(minuta > 0 && minuta < 10) { //Jesli zmienna "minuta" jest wieksza 0 i mniejsza od 10 lcd.setCursor(5,1); //Ustawienie kursora lcd.print("0"); //Wyswietlenie "0" lcd.setCursor(6,1); //Ustawienie kursora lcd.print(minuta); //Wyswietlenie zmiennej "godzina" lcd.print("min"); //Jednostka } if(minuta >= 10 && minuta < 60) { //Jesli zmienna "minuta" jest wieksza badz równa 10 i mniejsza od 60 lcd.setCursor(5,1); //Ustawienie kursora lcd.print(minuta); //Wyswietlanie zmiennej "sekunda" lcd.print("min"); //Jednostka if(minuta == 60) { //Jesli minuta jest równa 59 minuta = 0; //Wyzerowanie zmiennej"minuta" godzina = godzina + 1; //Do zmiennej "godzina" dodaje 1 lcd.setCursor(5,1); //Ustawienie kursora lcd.print("00"); //Wyswietlenie "00" lcd.setCursor(0,1); //Ustawienie kursora na 10 miejsce w 2 wersie lcd.print(godzina); //Wyswietlenie zmiennej "godzina" lcd.print("h"); //Jednostka } } if(godzina > 0 && godzina < 10) { //Jesli godzina jest wieksza 0 i mniejsza od 10 lcd.setCursor(0,1); //Ustawienie kursora lcd.print("0"); //Wyswietlenie "0" lcd.setCursor(1,1); //Ustawienie kursora lcd.print(godzina); //Wyswietlenie zmiennej "godzina lcd.print("h"); //Jednostka } if(godzina >= 10 && godzina < 24) { //Jesli zmienna "godzina" jest wieksza badz równa 10 i mniejsza od 24 lcd.setCursor(0,1); //Ustawienie kursora lcd.print(godzina); //Wyswietlenie zmiennej "godzina" lcd.print("h"); //Jednostka } if(godzina == 24) { //Jesli zmienna "godzina" jest rowna 24 godzina = 0; //Zerujemy zmiennna "godzina" lcd.setCursor(0,1); //Ustawienie kursora lcd.print("00"); //Wyswietlenie "00" lcd.setCursor(0,1); //Ustawienie kursora lcd.print(godzina); //Wyswietlenie zmiennnej"godzina" lcd.print("h"); //Jednostka } } } //Zatrzymywanie stopera if(digitalRead(8) == LOW) { //Jesli przycisk wcisniety godzina = godzina; //Zeby nie zmieniac wartosci minuta = minuta; sekunda = sekunda; //Jesli jest godzina mniejsza od 10 if(godzina < 10) { lcd.setCursor(0,1); //Ustawienie kursora lcd.print("0"); //Wyswietlenie "0" lcd.setCursor(1,1); //Ustawienie kursora lcd.print(godzina); //Wyswietlenie zmiennnej "godzina" lcd.print("h"); //Jednostka } //Jesli minuta jest mniejsza od 10 if(minuta < 10) { lcd.setCursor(5,1); //Ustawienie kursora lcd.print("0"); //Wyswietlenie "0" lcd.setCursor(6,1); //Ustawienie kursora lcd.print(minuta); //Wyswietlenie zmiennnej "minuta" lcd.print("min"); //Jednostka } //Jesli sekunda jest mniejsza od 10 if(sekunda < 10) { lcd.setCursor(11,1); //Ustawienie kursora lcd.print("0"); //Wyswietlenie "0" lcd.setCursor(12,1); //Ustawienie kursora lcd.print(sekunda); //Wyswietlenie zmiennej "sekunda" lcd.print("s"); //Jednostka } //Jesli godzina jest wieksza badz równa 10 i mniejsza od 24 if(godzina >= 10 && godzina < 24) { lcd.setCursor(0,1); //Ustawienie kursora lcd.print(godzina); //Wyswietlenie zmiennnej "godzina" lcd.print("h"); //Jednostka } //Jesli minuta jest wieksza badz równa 10 i mniejsza od 60 if(minuta >= 10 && minuta < 60) { lcd.setCursor(5,1); //Ustawienie kursora lcd.print(minuta); //Wyswietlenie zmiennej "minuta" lcd.print("min"); //Jednostka } //Jesli sekunda jest wieksza badz równa 10 i mniejsza od 60 if(sekunda >= 10 && sekunda < 60) { lcd.setCursor(11,1); //Ustawienie kursora lcd.print(sekunda); //Wyswietlenie zmiennej "sekunda" lcd.print("s"); //Jednostka } } if(digitalRead(7) == LOW && digitalRead(8) == LOW) { //Jesli oba przyciski sa wcisniete to resetuje zegar sekunda = 0; //Zeruje zmienna "sekunda" minuta = 0; //Zeruje zmienna "minuta" godzina = 0; //Zeruje zmienna "godzina" } }
×
×
  • Utwórz nowe...