Skocz do zawartości

Vova

Użytkownicy
  • Zawartość

    49
  • Rejestracja

  • Ostatnio

Reputacja

19 Dobra

O Vova

  • Ranga
    3/10

Ostatnio na profilu byli

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

  1. Co do numeracji w tablicach od zera to wiem (czytałem to co było polecane). U mnie wiersz 0 to wszystkie diody zgaszone ( czyli miał być wykorzystany zamiast default) . A pierwszy warunek- jedna doda zapalona ( czyli wiersz numer 1 z tablicy)... Zdania z podręcznika raczej też mi nie pomogą, przeczytałem je w podręczniku kilkanaście razy. Raczej liczyłem na to, że ktoś w wolnej chwili i z dobrej woli napisze ze dwie linijki kodu, których mi brakuje do pełni szczęścia. Wtedy mógłbym je wykorzystać do wykonania zadania i przeanalizować na swój sposób i czegoś się nauczyć, bo chyba po to był stworzony dany kurs... Przecież za wykonanie zadań nikt żadnych nagród nie daje, to też i praktyczne przykłady rozwiązań nie są jakąś tajemnicą... Czytać podręcznik fajna sprawa, ale dla kogoś, kto z programowaniem spotyka się po raz pierwszy nie wszystko, tam opisane, jest takie przejrzyste oczywiste i zrozumiałe . . . Dzięki za poświęcony czas. Pozdrawiam
  2. #define trigPin 12 #define echoPin 11 #define ledPin2 2 #define ledPin3 3 #define ledPin4 4 #define ledPin5 5 #define ledPin6 6 #define ledPin7 7 int wynik;// Zmienna liczbowa globalna void setup() { Serial.begin (9600);//Komunikacja z monitorem szeregowym pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(ledPin2, OUTPUT);//Ustawianie pinow jako wyjscia na diody pinMode(ledPin3, OUTPUT); pinMode(ledPin4, OUTPUT); pinMode(ledPin5, OUTPUT); pinMode(ledPin6, OUTPUT); pinMode(ledPin7, OUTPUT); digitalWrite(ledPin2, LOW);//Diody poczatkowo zgaszone digitalWrite(ledPin3, LOW); digitalWrite(ledPin4, LOW); digitalWrite(ledPin5, LOW); digitalWrite(ledPin6, LOW); digitalWrite(ledPin7, LOW); } void loop() { zmierzOdleglosc();//Wywolanie funkcji delay (100);//Opoznienie } int zmierzOdleglosc() {//Deklaracja funkcji zwracajacej wynik laczbowy long czas, dystans;//Zmienna liczbowa do obliczania digitalWrite(trigPin, LOW);//Pomiar odleglosci delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); czas = pulseIn(echoPin, HIGH); dystans = czas / 58; wynik = map(dystans, 1, 30, 1, 6);//Podzial odleglosci na 6 odcinkow(warunkow) i zapisujemy do nowej zmiennej Serial.println(dystans);//Drukuj wynik pomiaru w monitorze szeregowym int piny[6] = {ledPin2, ledPin3, ledPin4, ledPin5, ledPin6, ledPin7}; int odleglosc[7][6] = { {LOW, LOW, LOW, LOW, LOW, LOW}, {HIGH, LOW, LOW, LOW, LOW, LOW}, {HIGH, HIGH, LOW, LOW, LOW, LOW}, {HIGH, HIGH, HIGH, LOW, LOW, LOW}, {HIGH, HIGH, HIGH, HIGH, LOW, LOW}, {HIGH, HIGH, HIGH, HIGH, HIGH, LOW}, {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH} }; if (wynik == 6){ digitalWrite ????? Jak odwołać się do wiersza z tablicy??? } return dystans; } Utknąłem w tym miejscu, Jak odwołać się do wiersza z tablicy? W podanych przykładach z poradnika jest jest tylko jak przechowywać dane zapisane w tablicy ( w sensie nie wiem w jaki sposób zapisać zapalanie diod ? Tak rozumiem że za pomocą digitalWrite ... a co w miejscu kropek? odleglosc [1] ? jak ma się tam znaleźć np. pierwszy wiersz z tablicy wielowymiarowej? ) , w części z klawiaturą też nie znalazłem odpowiedzi... Pomożecie? Z góry przepraszam za głupie pytania...
  3. @Gieneq Przeczytałem część #5 Kursu II od deski do deski i jest tam tylko wspomniane że, cytuje: "W kursie Arduino, do tablic jeszcze wrócimy - więc, jeśli ktoś ich nie zna, to nie musi się teraz niczego obawiać", ale tak i nie zostało to wyjaśnione tylko jest ponownie wykorzystane w dalszej części kursu. Czyli pozostaje ten poradnik z GOOGLE...
  4. @Gieneq Chętnie się zmierzę z postawionym zadaniem, tylko nie wiem czy "tablice" już były omawiane wcześniej i coś mi umknęło. Może podrzucisz jakiegoś linka, gdzie można zaczerpnąć trochę informacji o wykorzystaniu "tablic". . .
  5. Dziękuje za nakierowanie. Oto końcowa wersja kodu. Działa jak należy digitalWrite(trigPin, LOW);//Pomiar odleglosci delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); czas = pulseIn(echoPin, HIGH); dystans = czas / 58; wynik = map(dystans, 1, 30, 1, 6);//Podzial odleglosci na 6 odcinkow(warunkow) i zapisujemy do nowej zmiennej Serial.println(dystans);//Drukuj wynik pomiaru w monitorze szeregowym switch (wynik) {//Sprawdzamy warunki i zapalamy / gasimy odpowiednie diody case 6: digitalWrite(ledPin2, HIGH); digitalWrite(ledPin3, LOW); digitalWrite(ledPin4, LOW); digitalWrite(ledPin5, LOW); digitalWrite(ledPin6, LOW); digitalWrite(ledPin7, LOW); break; case 5: digitalWrite(ledPin2, HIGH); digitalWrite(ledPin3, HIGH); digitalWrite(ledPin4, LOW); digitalWrite(ledPin5, LOW); digitalWrite(ledPin6, LOW); digitalWrite(ledPin7, LOW); break; case 4: digitalWrite(ledPin2, HIGH); digitalWrite(ledPin3, HIGH); digitalWrite(ledPin4, HIGH); digitalWrite(ledPin5, LOW); digitalWrite(ledPin6, LOW); digitalWrite(ledPin7, LOW); break; case 3: digitalWrite(ledPin2, HIGH); digitalWrite(ledPin3, HIGH); digitalWrite(ledPin4, HIGH); digitalWrite(ledPin5, HIGH); digitalWrite(ledPin6, LOW); digitalWrite(ledPin7, LOW); break; case 2: digitalWrite(ledPin2, HIGH); digitalWrite(ledPin3, HIGH); digitalWrite(ledPin4, HIGH); digitalWrite(ledPin5, HIGH); digitalWrite(ledPin6, HIGH); digitalWrite(ledPin7, LOW); break; case 1: digitalWrite(ledPin2, HIGH); digitalWrite(ledPin3, HIGH); digitalWrite(ledPin4, HIGH); digitalWrite(ledPin5, HIGH); digitalWrite(ledPin6, HIGH); digitalWrite(ledPin7, HIGH); break; default: digitalWrite(ledPin2, LOW);//Ddiody zgaszone, gdy żaden z warunków nie spełniony digitalWrite(ledPin3, LOW); digitalWrite(ledPin4, LOW); digitalWrite(ledPin5, LOW); digitalWrite(ledPin6, LOW); digitalWrite(ledPin7, LOW); return dystans; } }
  6. @Gieneq Wszystko fajnie, tylko w jaki sposób się tego używa? A tym czasem może ktoś żuci okiem na moje nie działające bazgroły i naprowadzi na drogą właściwą . Przeglądałem rozwiązania kolegów (niektóre kody kopiowałem i próbowałem uruchomić, ale niektóre nawet się nie kompilują...) #define trigPin 12 #define echoPin 11 int wynik;// Zmienna liczbowa globalna void setup() { Serial.begin (9600);//Komunikacja z monitorem szeregowym pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(2, OUTPUT);//Ustawianie pinow jako wyjscia na diody pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); digitalWrite(2, LOW);//Diody poczatkowo zgaszone digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); } void loop(){ zmierzOdleglosc();//Wywolanie funkcji delay (500);//Opoznienie } int zmierzOdleglosc() {//Deklaracja funkcji zwracajacej wynik laczbowy long czas, dystans;//Zmienna liczbowa do obliczania digitalWrite(trigPin, LOW);//Pomiar odleglosci delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); czas = pulseIn(echoPin, HIGH); dystans = czas / 58; return dystans; wynik = map(zmierzOdleglosc, 3, 30, 1, 6);//Podzial odleglosci na 6 odcinkow(warunkow) i zapisujemy do nowej zmiennej Serial.println(wynik);//Drukuj wynik pomiaru w monitorze szeregowym switch (wynik) {//Sprawdzamy warunki i zapalamy odpowiednie diody case 1: digitalWrite(2, HIGH); break; case 2: digitalWrite(2, HIGH); digitalWrite(3, HIGH); break; case 3: digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); break; case 4: digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5,HIGH); break; case 5: digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); break; case 6: digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); break; } } Z góry dziękuje za poświęcony czas
  7. @Treker Nie próbowałem, bo nawet nie mam pomysłu jak można było by wykorzystać diodę do sprawdzenia działania programu obliczenia pola. Myślałem że w samym kodzie będzie widać jakiś błąd. Dobra, udało się rozwiązać problem. trzeba było trochę zmodyfikować kod i teraz działa poprawnie String rozmiarStrony1 = "";//Deklaracja tekstowych zmiennych String rozmiarStrony2 = ""; void setup() { Serial.begin(9600); //Nawiązanie komunikacji przez UART } void loop() { if (Serial.available() > 0) {// Gdy dane zostały odczytane while (Serial.available() <= 0) {} // Poczekaj na wprowadzenie danych rozmiarStrony1 = Serial.readStringUntil('\n');//Zapisywanie wprowadzonych danych do zmiennej while (Serial.available() <= 0) {} //Poczekaj na wprowadzenie danych rozmiarStrony2 = Serial.readStringUntil('\n');//Zapisywanie wprowadzonych danych do zmiennej int wynik = prostokatPole(rozmiarStrony1.toInt(), rozmiarStrony2.toInt());//Rrutowanie danych tekstowych na liczbowe Serial.println(wynik);//Drukuj tekst } } int prostokatPole(int a, int b) {//Wykonaj obliczenie int wynik = 0; wynik = a * b; return wynik;//Podaj wynik }
  8. Witam. Mam problem z którym nie mogę sobie poradzić. Program działa tylko za pierwszym razem. Później przy wprowadzeniu pierwszej strony cały czas wyświetla wynik poprzedniego wyliczenia . String rozmiarStrony1 = "";//Deklaracja tekstowych zmiennych String rozmiarStrony2 = ""; void setup() { Serial.begin(9600); //Nawiązanie komunikacji przez UART } void loop() { if (Serial.available() > 0) {// Gdy dane zostały odczytane while (rozmiarStrony1 == "") {// Poczekaj na wprowadzenie danych rozmiarStrony1 = Serial.readStringUntil('\n');//Zapisywanie wprowadzonych danych do zmiennej } while (rozmiarStrony2 == "") {//Poczekaj na wprowadzenie danych rozmiarStrony2 = Serial.readStringUntil('\n');//Zapisywanie wprowadzonych danych do zmiennej } int wynik = prostokatPole(rozmiarStrony1.toInt(), rozmiarStrony2.toInt());//Rrutowanie danych tekstowych na liczbowe Serial.println(wynik);//Drukuj tekst } } int prostokatPole(int a, int b) { int wynik = 0; wynik = a * b; return wynik; }
  9. I znowu przy wsparciu forum (posiliłem się rozwiązaniem kolegi bakardi92 ) zadanie 8.3 String liczba = "";//Zmienna do wprowadzania tekstu int ilosc = liczba.toInt();//Zmaina tekstu na liczby void setup() { Serial.begin(9600);//Nawiazanie komunikacji przez UART } void loop() { if (Serial.available() > 0) {//Czy Arduino odebrało dane? liczba = Serial.readStringUntil('\n');//Zapisz danie do zmiennej ilosc = liczba.toInt();//Przeksztalcenie ciagu znakow na liczby for (int i = 0; i < ilosc; i++) {//Drukuj test gdy warunki sa spelnione Serial.print("*"); } Serial.print('\n');//Zacznij od nowej linii }
  10. @Gieneq Z tym 6 pinem jest tak że ten fragment kodu skopiowałem i nie usunąłem tego a tylko dopisałem część do sterowania drugim silnikiem Wiem że tak nie można... A tym czasem zadanie 8.4 (tak może trochę z drugiej strony zacznę) Dale popracuje nad 8.2 i 8.3... void setup() { pinMode(6, OUTPUT); //Sygnał PWM silnika nr 1 pinMode(7, OUTPUT); //Sygnały sterujące kierunkiem obrotów silnika nr 1 pinMode(8, OUTPUT); digitalWrite(7, LOW);//Silnik nr 1 obroty w lewo digitalWrite(8, HIGH); } void loop() { for (int i = 0; i <= 255; i++) { analogWrite(6, i);// Spokojne rozpedzanie silnika delay(25); } for (int i = 255; i >= 0; i--) { analogWrite(6, i); // Spokojne zatrzymywanie silnika delay(25); } } Jest i 8.2 void setup() { pinMode(7, OUTPUT);//Pin 7 jako wyjscie digitalWrite(7, LOW);//Nisk początkowy stan pinu 7 } void loop() { for (int d = 0; d <= 4; d++) { digitalWrite(7, HIGH);//Zaswiec diode 5 razy na 20 ms delay(200); digitalWrite(7, LOW); delay(200); } delay(3000);//Odczekaj 3 sek }
  11. Zadanie 8.1 void setup() { pinMode(6,OUTPUT); //Sygnał PWM silnika nr 1 digitalWrite(6,HIGH);//Ustawiamy (na stałe) stan wysoki na pinie 6 pinMode(7, OUTPUT);//Sygnały sterujące kierunkiem obrotów silnika nr 1 pinMode(8,OUTPUT); pinMode(2,OUTPUT);//Sygnały sterujące kierunkiem obrotów silnika nr 2 pinMode(3,OUTPUT); } void loop() { digitalWrite(7,LOW);//Silniki nr 1 i 2 - obroty w lewo digitalWrite(8,HIGH); digitalWrite(2,LOW); digitalWrite(3,HIGH); delay(2000); digitalWrite(7,HIGH);//Silnik nr 1 - obroty w prawo digitalWrite(8,LOW); digitalWrite(2,LOW);//Silnik nr 2 - obroty w lewo digitalWrite(3,HIGH); delay(2000); digitalWrite(7,HIGH);//Silniki nr 1 i 2 - obroty w prawo digitalWrite(8,LOW); digitalWrite(2,HIGH); digitalWrite(3,LOW); delay(2000); }
  12. @Gieneq Faktycznie ten ostatni if był zbędny. Już poprawiłem if (digitalRead(przyciskStop) == LOW) {//Gdy wcisnieto przycisk "Stop" stan_przyciskuStart = 0;//Zresetuj stan przycisku "Start" stoper = STOP; lcd.clear();//Wyczysc wyswietlacz lcd.setCursor(0, 0);//Ustaw kursor w pierwszym wierszu lcd.print("STOP");//Drukuj tekst lcd.setCursor(0, 1);//Ustaw kursor w drugim wierszu lcd.print( wyliczony_czas / 1000);//Drukuj tekst
  13. @Treker Dzięki za pomoc. Skończyłem zadanie 7.4 i nareszcie mogę przejść do następnej części kursu. Chętnie poczytam komentarze i uwagi co do kodu #include <LiquidCrystal.h> //Dołączenie bilbioteki #define przyciskStart 8 #define przyciskStop 9 #define STOP 0 #define START 1 #define INTERVAL 1000 LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Informacja o podłączeniu nowego wyświetlacza int stoper = STOP; long aktualny_czas = 0;// Zmienne do mierzenia czasu long zapamietany_czas = 0; long czas_start = 0; long wyliczony_czas = 0; bool stan_przyciskuStart = 0;//Zmienne do zapamietania stanu przycisków Start i Stop bool stan_przyciskuStop = 0; void setup() { pinMode(8, INPUT_PULLUP);//Piny 8 i 9 jako przyciki pinMode(9, INPUT_PULLUP); lcd.begin(16, 2); //Deklaracja typu lcd.clear();// Wyczysc wyswietlacz } void loop() { if (digitalRead(przyciskStart) == LOW) {//Gdy wcisnieto przycisk "Start" stan_przyciskuStart = 1;//Zpamietaj stan przycisku "Start" } if (stan_przyciskuStart == 1) {//Gdy przycisk "Start" został wcisniety if (stoper == STOP) {//Przy zatrzymanym stoperze stoper = START;//Zacznij odliczanie czas_start = millis();//Odczytaj czas startu z Arduino zapamietany_czas = czas_start;//Zapamietaj czas startu lcd.clear();//Wyczysc wyswietlacz lcd.setCursor(0, 0);//Ustawienie kursora w pierwszej linijce lcd.print("START");//Drukuj tekst } if (stoper == START ) {//Gdy odliczanie trwa aktualny_czas = millis();//Zapisz aktualy czas do zmiennej wyliczony_czas = aktualny_czas - czas_start;//Oblicz: ile czasu mineło od startu if (aktualny_czas - zapamietany_czas > INTERVAL) { //Gdy mineło wiecej czasu niz 1 sekunda zapamietany_czas += INTERVAL; //Dodaj roznice do odczytanego czasu lcd.clear();//Wyczysc wyswietlacz lcd.setCursor(0, 0); //Ustaw kursor w pierwszym wierszu lcd.print("START");//Drukuj tekst lcd.setCursor(0, 1);//Ustawienie kursora w drugiej linijce lcd.print(wyliczony_czas / 1000); //Drukuj tekst } if (digitalRead(przyciskStop) == LOW) {//Gdy wcisnieto przycisk "Stop" stan_przyciskuStart = 0;//Zresetuj stan przycisku "Start" stoper = STOP;//Zatrymaj stoper } if (stoper == STOP) {//Gdy stoper zatrzymany lcd.clear();//Wyczysc wyswietlacz lcd.setCursor(0, 0);//Ustaw kursor w pierwszym wierszu lcd.print("STOP");//Drukuj tekst lcd.setCursor(0, 1);//Ustaw kursor w drugim wierszu lcd.print(wyliczony_czas / 1000);//Drukuj tekst } } } }
  14. Ostatnia wersja działa bez trzymania przycisku. Teraz myślę jak to zatrzymać i zresetować (niby miał być temat poświęcony obsłudze lcd a ja już tydzień mecze się ze stoperem) #include <LiquidCrystal.h> //Dołączenie bilbioteki #define przyciskStart 8 #define przyciskStop 9 #define STOP 0 #define START 1 #define INTERVAL 1000 LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Informacja o podłączeniu nowego wyświetlacza int ostatniStan = digitalRead(przyciskStart); int stoper = STOP; long aktualny_czas = 0;// Zmienne do mierzenia czasu long zapamietany_czas = 0; long czas_start = 0; long wyliczony_czas = 0; bool stan_przyciskuStart = 0;//Zmienne do zapamietania stanu przycisków Start i Stop bool stan_przyciskuStop = 0; void setup() { pinMode(8, INPUT_PULLUP);//Piny 8 i 9 jako przyciki pinMode(9, INPUT_PULLUP); lcd.begin(16, 2); //Deklaracja typu lcd.clear();// Wyczysc wyswietlacz } void loop() { if (digitalRead(przyciskStart) == LOW) {//Gdy wcisnieto przycisk "Start" stan_przyciskuStart = 1;//Zpamietaj stan przycisku "Start" } if (stan_przyciskuStart == 1) { if (stoper == STOP) { stoper = START; czas_start = millis(); zapamietany_czas = czas_start; lcd.clear();//Wyczysc wyswietlacz lcd.setCursor(0, 0);//Ustawienie kursora w pierwszej linijce lcd.print("START");//Drukuj tekst lcd.setCursor(0, 1);//Ustaw kursor w drugiej linijce lcd.print(zapamietany_czas / 1000);//Drukuj tekst } if (stoper == START ) {//Gdy odliczanie trwa aktualny_czas = millis();//Zapisz aktualy czas do zmiennej wyliczony_czas = aktualny_czas - czas_start;//Oblicz: ile czasu mineło od startu if (aktualny_czas - zapamietany_czas > INTERVAL) { //Gdy mineło wiecej czasu niz 1 sekunda zapamietany_czas += INTERVAL; //Dodaj roznice do odczytanego czasu lcd.setCursor(0, 1);//Ustawienie kursora w drugiej linijce lcd.print(wyliczony_czas / 1000); //Drukuj tekst } } } }
  15. @Gieneq Na razie jestem na takim etapieDziała w taki sposób, że gdy trzymam przycisk- wyświetla aktualne odliczanie. A gdy przycisk zwolniony - odliczanie odbywa się "w tle " i w momencie wciśnięcia dodaje się do wyświetlonej wartości. Żeby sprawdzić działanie resetuje przyciskiem "RESET" na Arduino (właśnie też nie wiem czy to jest bezpieczne dla samego Arduino takie resetowanie?) no i nie za każdym razem po resecie mi startuje po wciśnięciu "START". . . Wydaje mi się że ten kod jakiś za bardzo skomplikowany ( jak dla mnie) jak na zwykły stoper... I to jeszcze nie koniec... #include <LiquidCrystal.h> //Dołączenie bilbioteki #define przyciskSTART 8 #define przyciskSTOP 9 #define STOP 0 #define COUNTING 1 #define INTERVAL 1000 LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Informacja o podłączeniu nowego wyświetlacza int mode = STOP; int last_state = digitalRead(przyciskSTART); long startTime = 0; long lastTime = 0; long timeDiff = 0; long currentTime = 0; void setup() { pinMode(8, INPUT_PULLUP);//Piny 8 i 9 jako przyciki pinMode(9, INPUT_PULLUP); lcd.begin(16, 2); //Deklaracja typu lcd.clear();// Wyczysc wyswietlacz } void loop() { int current_state = digitalRead(przyciskSTART);//Gdy wcisnieto przycisk "Start" if (current_state == LOW && last_state == HIGH) {//ZApamietuje wcisniecie przycisku if (mode == STOP) {//Gdy stoper zatrzymany mode = COUNTING;//Zaczynamy odliczanie startTime = millis();//Zapisz czas oczytany z Arduino do zmiennej lastTime = startTime; lcd.clear();//Wyczysc wyswietlacz lcd.setCursor(0, 0);//Ustawienie kursora w pierwszej linijce lcd.print("START");//Drukuj tekst lcd.setCursor(0, 1);//Ustaw kursor w drugiej linijce lcd.print(lastTime / 1000);//Drukuj tekst } if (mode == COUNTING) {//Gdy odliczanie trwa long currentTime = millis();//Zapisz aktualy czas do zmiennej long timeDiff = currentTime - startTime;//Oblicz: ile czasu mineło od startu if (currentTime - lastTime > INTERVAL) {//Gdy mineło wiecej czasu niz 1 sekunda lastTime += INTERVAL;//Dodaj roznice do odczytanego czasu lcd.setCursor(0, 1);// Ustaw kursor w drugiej linijce lcd.print(timeDiff / 1000);//Drukuj tekst } } } }
×
×
  • Utwórz nowe...