Skocz do zawartości

jajaceek

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Informacje

  • Płeć
    Mężczyzna

Osiągnięcia użytkownika jajaceek

Aktywny debiutant

Aktywny debiutant (2/19)

  • To już rok!
  • Młodszy Juror

Odznaki

0

Reputacja

  1. Wielkie dzięki za pomoc. Przeniosłem piny 1 i 2 na 2 i 3 oraz usunąłem Serial.begin i jest wszystko ok. Nie usunąłem bloku czasowego z nawiasów klamrowych. Nie wiem czy to ma znaczenie i czy powinienem je usunąć. Problem polegał na tym, że czas (oraz data oraz wszystkie dane, które chciałem wyświetlać) były prawie poprawnie wyświetlane za pierwszym razem - tzn pewnie przy pierwszym odświeżeniu (przejściu) pętli, było tylko przesunięcie pozycji o jeden kursor w prawo. Następnie przy kolejnej pętli dane zamiast być wyświetlane na tej samej pozycji i zastępować poprzednie (np. aktualizacja czasu) to były wyświetlane sześć czy siedem kursorów w prawo czyli obok poprzednich danych. Było wrażenie srollowania danych. Nie wiem czy jasno to opisałem ale mam nadzieję, że przekazałem ideę tego jak to się wyświetlało. Jeszcze raz dzięki.
  2. Witam, Nie wiem czy w odpowiednim dziale zadaję pytanie ale siedzę jakiś czas z nad prostym zegarem z wykorzystaniem lcd 1602, modułem rtc DS3231 i czujnikiem HC-SR04. Idea jest taka: zegar zamontowany w kuchni pod szafką kuchenną i jak podchodzę to zaświeca podświetlenie tak, że można odczytać czas, dzień tygodnia i datę. Wykorzystałem kod z pomiaru odległości i włączania buzera (zamiast buzera włącza podświetlenie lcd z pinu 8) i działa to ok, ten kod wykorzystałem z kursu Arduino poziom 1. Jak koduje sam zegar to też jest ok. (czas i dzień tygodnia w pierwszym wierszu a data w drugim). Wyświetla wszystko zgodnie z oczekiwaniami. Natomiast jak próbuję połączyć to wszystko razem to niestety sypie się wyświetlanie danych, podświetlanie (reakcja na ruch) jest ok. Wyświetla tylko z przewijaniem. Nie wyświetla czasu i daty tak jak powinno. Byłbym wdzięczny za sugestie jak to mogę poprawić. Poniżej kod: #define trigPin 12 #define echoPin 11 #include <LiquidCrystal.h> LiquidCrystal lcd(1, 2, 4, 5, 6, 7); #include <DS3231.h> DS3231 rtc(SDA, SCL); void setup() { rtc.begin(); lcd.begin(16, 2); Serial.begin (9600); pinMode(trigPin, OUTPUT); //Pin, do którego podłączymy trig jako wyjście pinMode(echoPin, INPUT); //a echo, jako wejście pinMode(8, OUTPUT); //Wyjście dla buzzera - podswietlenie lcd } void loop() { zakres(15, 50); //Włącz alarm, jeśli w odległości od 10 do 25 cm od czujnika jest przeszkoda delay(100); } int zmierzOdleglosc() { long czas, dystans; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); czas = pulseIn(echoPin, HIGH); dystans = czas / 58; return dystans; } void zakres(int a, int b) { int jakDaleko = zmierzOdleglosc(); if ((jakDaleko > a) && (jakDaleko < b)) { digitalWrite(8, LOW); //Włączamy buzzer } else { digitalWrite(8, HIGH); //Wyłączamy buzzer, gdy obiekt poza zakresem } { lcd.setCursor(0,0); lcd.print("Czas: "); lcd.print(rtc.getTimeStr()); lcd.setCursor(0,1); lcd.print("Data: "); lcd.print(rtc.getDateStr()); // lcd.clear(); } } pozdrawiam i dzięki za pomoc.
  3. Witam, Siedzę jakiś czas z nad prostym zegarem z wykorzystaniem lcd 1602, modułem rtc DS3231 i czujnikiem HC-SR04. Idea jest taka: zegar zamontowany w kuchni pod szafką kuchenną i jak podchodzę to zaświeca podświetlenie tak, że można odczytać czas, dzień tygodnia i datę. Wykorzystałem kod z pomiaru odległości i włączania buzera (zamiast buzera włącza podświetlenie lcd z pinu 8) i działa to ok. Jak koduje sam zegar to też jest ok. (czas i dzień tygodnia w pierwszym wierszu a data w drugim). Wyświetla wszystko zgodnie z oczekiwaniami. Natomiast jak próbuję połączyć to wszystko razem to niestety sypie się wyświetlanie danych, podświetlanie (reakcja na ruch) jest ok. Wyświetla tylko z przewijaniem. Nie wyświetla czasu i daty tak jak powinno. Byłbym wdzięczny za sugestie jak to mogę poprawić. Poniżej kod: #define trigPin 12 #define echoPin 11 #include <LiquidCrystal.h> LiquidCrystal lcd(1, 2, 4, 5, 6, 7); #include <DS3231.h> DS3231 rtc(SDA, SCL); void setup() { rtc.begin(); lcd.begin(16, 2); Serial.begin (9600); pinMode(trigPin, OUTPUT); //Pin, do którego podłączymy trig jako wyjście pinMode(echoPin, INPUT); //a echo, jako wejście pinMode(8, OUTPUT); //Wyjście dla buzzera - podswietlenie lcd } void loop() { zakres(15, 50); //Włącz alarm, jeśli w odległości od 10 do 25 cm od czujnika jest przeszkoda delay(100); } int zmierzOdleglosc() { long czas, dystans; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); czas = pulseIn(echoPin, HIGH); dystans = czas / 58; return dystans; } void zakres(int a, int b) { int jakDaleko = zmierzOdleglosc(); if ((jakDaleko > a) && (jakDaleko < b)) { digitalWrite(8, LOW); //Włączamy buzzer } else { digitalWrite(8, HIGH); //Wyłączamy buzzer, gdy obiekt poza zakresem } { lcd.setCursor(0,0); lcd.print("Czas: "); lcd.print(rtc.getTimeStr()); lcd.setCursor(0,1); lcd.print("Data: "); lcd.print(rtc.getDateStr()); // lcd.clear(); } }
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.