ethanak Luty 2, 2020 Udostępnij Luty 2, 2020 (edytowany) 6 godzin temu, spider_pajak napisał: jaka jest różnica w stosowaniu i w jakim przypadku by to nie zadziałało To są dwie zupełnie różne rzeczy i trudno mówić o różnicach - to tak jakbyś zapytał jaka jest różnica między mlekiem a olejem napędowym i kiedy z oleju nie będzie można zrobić twarożku. Inaczej: 2 * 2 to 4, prawda? 2 + 2 to też 4, prawda? Czy więc pytanie, w jakim przypadku nie zadziała dodawanie zamiast mnożenia ma jakikolwiek sens? A tak w ogóle to użycie & zamiast && (o ile pozwoli na to kompilator) zadziała, jeśli co najmniej jedna ze stron jest zerem. W pozostałych przypadkach zadziała albo nie zadziała. Edytowano Luty 2, 2020 przez ethanak
spider_pajak Luty 2, 2020 Udostępnij Luty 2, 2020 @ethanak skoro są to dwie zupełnie różne rzeczy to bym chciał wiedzieć jaka jest różnica i dlaczego nie powinienem tego stosować, a nie na zasadzie "nie bo nie". 12 godzin temu, ethanak napisał: Inaczej: 2 * 2 to 4, prawda? 2 + 2 to też 4, prawda? Czy więc pytanie, w jakim przypadku nie zadziała dodawanie zamiast mnożenia ma jakikolwiek sens? Ma sens, ponieważ tu jest jasne że w innym przypadku, np. 2*3 jest różne od 2+3. Jeśli & i && się czymś różni to bym chciał wiedzieć czym i kiedy które stosować Jeśli trzeba stosować && to ok, ale czy & też się stosuje w takim programowaniu? Jeśli tak to proszę o przykład
Treker (Damian Szymański) Luty 3, 2020 Udostępnij Luty 3, 2020 8 godzin temu, spider_pajak napisał: to dwie zupełnie różne rzeczy to bym chciał wiedzieć jaka jest różnica i dlaczego nie powinienem tego stosować, a nie na zasadzie "nie bo nie". @spider_pajak to dość skomplikowane do wytłumaczenia na tym etapie nauki, bo to są naprawdę zupełnie różne rzeczy, które mają tylko "przypadkowo" zbieżny zapis. A co najgorsze operacje na bitach to temat, który jest dla wielu początkujących chyba najtrudniejszy do zrozumienia. W praktyce ten operator "&" mógłby mieć zupełnie inny zapis typu "$^%^%" i wtedy raczej nie miałbyś żadnej wątpliwości, że to nie jest to samo co "&&" Zapis "&&" jest operatorem, który stosuje się przy warunkach i za jego pomocą możesz sprawdzić czy warunek po prawej i po lewej jest jednocześnie spełniony. Pojedynczy "&" to operator matematyczny (taki jaki plus, minus czy znak mnożenia). W tym przypadku wykonujesz jednak sumę logiczną na bitach liczb. Nie sprawdzasz więc czy warunek po prawej i lewej jest spełniony tylko obliczasz nową liczbę na zasadzie "warunek A" & "warunek B". Przykład działania tego operatora (na liczbach binarnych): 1010 & 1100 = 1000. Czyli, w zapisie dziesiętnym, w wyniku działania 10 & 12 otrzymujemy 8. Operatory bitowe znajdziesz nawet w kalkulatorze w Windowsie: Reasumując, "&&" to operator logiczny do warunków, a "&" to operator bitowy do wykonywania koniunkcji na bitach dwóch (lub więcej liczb). To co mogę polecić do poczytania to (szczególnie pierwszy link): Technika cyfrowa – #2 – algebra Boole’a w praktyce https://www.arduino.cc/reference/en/language/structure/boolean-operators/logicaland/ https://www.arduino.cc/reference/en/language/structure/bitwise-operators/bitwiseand/ https://pl.wikipedia.org/wiki/Operator_bitowy https://pl.wikipedia.org/wiki/Koniunkcja_(logika) Naprawdę na ten moment najlepiej byłoby uwierzyć, że w warunkach trzeba używać "&&" i przejść dalej, bo nawet w ramach odpowiedzi nie możemy pokazać jakiegoś bardziej rozbudowanego przykładu, bo nie znasz jeszcze wielu innych innych aspektów programowania. Do tego, "co gorsze" później okaże się, że pojedynczy & ma inne, jeszcze bardziej zawiłe zastosowanie. To trochę tak jak z rozwiązywaniem równań kwadratowych. W szkole uczymy się, że jak delta wychodzi ujemna to nie ma rozwiązania równania, a później na studiach dowiadujemy się, że to nie jest prawdą, ale nikt tego od razu nie wprowadza, aby nie było zbyt trudno 1
spider_pajak Luty 3, 2020 Udostępnij Luty 3, 2020 1 godzinę temu, Treker napisał: @spider_pajak to dość skomplikowane do wytłumaczenia na tym etapie nauki, bo to są naprawdę zupełnie różne rzeczy, które mają tylko "przypadkowo" zbieżny zapis. A co najgorsze operacje na bitach to temat, który jest dla wielu początkujących chyba najtrudniejszy do zrozumienia. W praktyce ten operator "&" mógłby mieć zupełnie inny zapis typu "$^%^%" i wtedy raczej nie miałbyś żadnej wątpliwości, że to nie jest to samo co "&&" Naprawdę na ten moment najlepiej byłoby uwierzyć, że w warunkach trzeba używać "&&" i przejść dalej, bo nawet w ramach odpowiedzi nie możemy pokazać jakiegoś bardziej rozbudowanego przykładu, bo nie znasz jeszcze wielu innych innych aspektów programowania. Skąd założenie, że nie znam operacji bitowych i dopiero zaczynam przygodę z programowaniem? Tak się składa, że na studiach miałem programowanie i dużo rzeczy co jest z tym związane, znam podstawy, jednak nie Arduino. Obecnie zajmuje się też programowaniem sterowników PLC gdzie operacje na bitach to podstawa 1 godzinę temu, Treker napisał: Zapis "&&" jest operatorem, który stosuje się przy warunkach i za jego pomocą możesz sprawdzić czy warunek po prawej i po lewej jest jednocześnie spełniony. Pojedynczy "&" to operator matematyczny (taki jaki plus, minus czy znak mnożenia). W tym przypadku wykonujesz jednak sumę logiczną na bitach liczb. Nie sprawdzasz więc czy warunek po prawej i lewej jest spełniony tylko obliczasz nową liczbę na zasadzie "warunek A" & "warunek B". Przykład działania tego operatora (na liczbach binarnych): 1010 & 1100 = 1000. Czyli, w zapisie dziesiętnym, w wyniku działania 10 & 12 otrzymujemy 8. Myślę, że to dla mnie dobre i wystarczające wytłumaczenie. Dziwne tylko, że kompilator pozwala na zapis & w przypadku gdy nie operujemy na bitach, tylko np na matematycznych porównaniach.
Treker (Damian Szymański) Luty 3, 2020 Udostępnij Luty 3, 2020 17 minut temu, spider_pajak napisał: Dziwne tylko, że kompilator pozwala na zapis & w przypadku gdy nie operujemy na bitach, tylko np na matematycznych porównaniach. Kompilator pozwala na takie zagranie, bo myśli, że chcesz sprawdzić czy wynik operacji A & B jest prawdziwy, a za prawdę uznaje wszystko co jest równe lub większe od 1. Mógłbyś też np. specjalnie użyć warunku typu "if (losowa & 0b00000001)", który sprawdzałby czy wylosowana wartość jest nieparzysta, bo warunek byłby prawdziwy, jeśli "losowa" byłaby liczbą, która ma najmniej znaczący bit równy 1. Nie ma to jednak żadnego związku z operatorem &&
ethanak Luty 3, 2020 Udostępnij Luty 3, 2020 (edytowany) Bo dla kompilatora wszystko co jest liczbą całkowitą lub na taką da się bezpośrednio przekształcić jest po prostu paczką bitów. Co ciekawsze: odróżnienie "prawda" i "fałsz" polega na tym, że prawdą jest wszystko co nie jest zerem. Dlatego wyrażenie '0b10 && 0b01' będzie prawdą (bo po obu stronach mamy prawdę czyli liczby różne od zera) a '0b10 & 0b01' da w wyniku 0 (co doskonale wiesz, bo jak sam stwierdziłeś znasz podstawy operacji na bitach). Poza tym naprawdę warto zajrzeć sobie choćby z ciekawości do wykazu operatorów w C++ (nie, nie ma takiego języka jak Arduino). I nie uwierzę, że ktoś kto na studiach miał choćby podstawy programowania w dowolnym języku (C/C++, PHP, Python, Java, JavaScript) nie odróżniał operatorów bitowych od logicznych. [Ciach, zdanie usunięte na podstawie PPF]. Edytowano Luty 3, 2020 przez Treker PPF
Vova Luty 5, 2020 Udostępnij Luty 5, 2020 (edytowany) Poprawiona wersja 4.4. Musiałem podejrzeć na forum inne rozwiązania, bo miałem problem z ciągłym wyświetlaniem wartości odczytanych, kiedy dioda świeciła. Myślałem że i tutaj zadziała "pusta pętla" do oczekiwania na włączenie diody... int odczytanaWartosc = 0; //Zmienna do przechowywania odczytu ADC int prog = 0; //Próg włączenia światła - ustawiany potencjometrem float napiecie = 0;// Warotsc przeliczona na napiecie void setup() { Serial.begin(9600); pinMode(8, OUTPUT); //Konfiguracja wyjść pod diodę LED } void loop() { odczytanaWartosc = analogRead(A5);//Odczytanie wartości z ADC prog = analogRead(A4);//Odczytanie wartości z ADC if (odczytanaWartosc < prog) { //Czy jest ciemniej od ustawionego progu? digitalWrite(8, HIGH);//Włączenie diody napiecie = analogRead(A5);//Odczytanie wartosci napiecie = napiecie * (5.0 / 1024.0); //Przeliczenie wartości na napięcie Serial.println(napiecie);//Wysyłamy zmierzone napięcie while (odczytanaWartosc < prog) {//Zatrzymujemy sie w petli aby wysłac zmierzone napiecie tylko raz odczytanaWartosc = analogRead(A5);//Odczytanie wartości z ADC prog = analogRead(A4);//Odczytanie wartości z ADC delay(50);//Opóźnienie } } else { digitalWrite(8, LOW);//Wyłączenie diody } delay(50);//Opóźnienie } Edytowano Luty 5, 2020 przez Vova 1
Vova Luty 19, 2020 Udostępnij Luty 19, 2020 #define przycisk 7 #define zielona 8 #define pomaranczowa 9 #define czerwona 10 int pozycja = 0;//Pozycja potencjometru odczytana z ADC int gra = 3;// Ilosc mozliwosci String liczba = ""; // Drukuj tekst w "" int liczba_int = 0; // Konwersacja liczby void setup() { Serial.begin(9600);//Nawiazanie komunikacji pinMode(7, INPUT_PULLUP); //Konfiguracja wyjsc pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(A5, INPUT); } void loop() { if (digitalRead(przycisk) == LOW) { //Gdy przycisk wcisniety pozycja = analogRead(A5); //Sprawdzamy pozycje potencjometra Serial.println("PODAJ LICZBE");//Drukuj tekst digitalWrite(zielona, LOW); //Diody nie swieca digitalWrite(pomaranczowa, LOW); digitalWrite(czerwona, LOW); delay(200);//Opoznienie Serial.println(pozycja);//Drukuj pozycjre potencjometra } if (Serial.available() > 0) { //Gdy wpisano liczbe liczba = Serial.readStringUntil('\n'); liczba_int = liczba.toInt();//Konwersacja tekstu pozycja = analogRead(A5); //Sprawdzamy pozycje potencjometra if (liczba_int - pozycja <= 50 && liczba_int - pozycja >= -50) { //Gdy odczytane wartosci misccza sie w zakresie digitalWrite(zielona, HIGH); //Wlaczamy diode zelona delay(2000);//Opoznienie digitalWrite(zielona, LOW); gra = gra - 1; //O jedna mozliwosc mniej Serial.println("pozstalo" + String (gra) + " prob ");//Drukuj tekst }else{ digitalWrite(czerwona, HIGH); //Wlacza sie dioda czerwona gra = gra - 1; //O jedna mozliwosc mniej delay(2000);//Opoznienie digitalWrite(czerwona, LOW); //Wylacza sie dioda czerwona Serial.println("pozstalo" + String (gra) + " prob ");//Drukuj tekst }else if (gra = 1) {//Gdy zostala 1 mozliwosc digitalWrite(pomaranczowa, HIGH);//Wlacz dide pomaranczowa Serial.println("pozstalo" + String (gra) + " prob ");//Drukuj tekst delay(1000);//Opoznienie digitalWrite(pomaranczowa, LOW);//Wylacz diode pomaranczowa }else if (gra = 0) {//Gdy wyczerpano wszystkie mozliwosci digitalWrite(pomaranczowa, HIGH);//Wlacz diode pomaranczowa i czerwona digitalWrite(czerwona, HIGH); Serial.println("Koniec gry, wcisnij przycisk");//Drukuj tekst while (digitalRead(przycisk) == HIGH) {//czekaj na wcisniecie przycisku delay(25); } } } } Witam. Pomóżcie znaleźć problem. Nie kompiluje mi się powyższy kod . Podświetlony jest pierwszy else if i wyskakuje błąd exit status 1 expected '}' before 'else'.
BananWszyscy Luty 20, 2020 Udostępnij Luty 20, 2020 (edytowany) Sprawdź else przed tym else ifem, a właściwie całą konstrukcję tego ifa i pewnie się zorientujesz o co chodzi czyt. brakuje pewnie jakiegoś znaczka, ale sprawdź, czy konstrukcja jest poprawna + jak już dajesz pustą nieskończoną pętle while to delay tam jest zbędny Edytowano Luty 20, 2020 przez BananWszyscy
ethanak Luty 20, 2020 Udostępnij Luty 20, 2020 6 godzin temu, Vova napisał: Nie kompiluje mi się powyższy kod . Nic dziwnego. Co ma znaczyć taka konstrukcja: if (cośtam) { coś rób(); } else { rób coś innego(); } else { rób jeszcze cos innego(); } Albo faktycznie jakiegoś nawiasu zapomniałeś (to już Ty musisz wiedzieć gdzie), albo uważasz ją za poprawną. Jeśli to drugie, to wyjaśnij jak to ma działać.
michael_nitro Luty 20, 2020 Udostępnij Luty 20, 2020 (edytowany) 4.5 Co myślicie o tym? + dodałem przycisk reset, żeby można było grać wiele razy #define czerwona 4 #define zolta 5 #define zielona 6 #define przycisk 7 #define reset 8 int i=1; int odczytana_wartosc = 0; String dane_uzytkownika = ""; int wartosc_uzytkownika = 0; //wartosc wpisywana przez uzytkownika void setup() { Serial.begin(9600); pinMode(czerwona, OUTPUT); //Konfiguracja wyjść pod diodę LED pinMode(zolta, OUTPUT); //Konfiguracja wyjść pod diodę LED pinMode(zielona, OUTPUT); //Konfiguracja wyjść pod diodę LED pinMode(przycisk, INPUT_PULLUP); //Konfiguracja przycisku pinMode(reset, INPUT_PULLUP); //Konfiguracja przycisku reset digitalWrite(czerwona,LOW); digitalWrite(zolta,LOW); digitalWrite(zielona,LOW); } void loop() { while(digitalRead(przycisk)==HIGH) {delay(25);} while(i<=3) { Serial.println("Podaj liczbę: "); while(dane_uzytkownika==""){dane_uzytkownika=Serial.readStringUntil('\n');} wartosc_uzytkownika=dane_uzytkownika.toInt(); Serial.println(wartosc_uzytkownika); odczytana_wartosc=analogRead(A4); if(i==1 || i==2) { if((wartosc_uzytkownika > (odczytana_wartosc -50)) && (wartosc_uzytkownika <(odczytana_wartosc+50))) { digitalWrite(zielona,HIGH); delay(4000); Serial.println("Udało się! Wygrałeś!"); break; } else { digitalWrite(zolta,HIGH); delay(4000); } } else { if((wartosc_uzytkownika > (odczytana_wartosc -50)) && (wartosc_uzytkownika <(odczytana_wartosc+50))) { digitalWrite(zielona,HIGH); delay(4000); Serial.println("Udało się! Wygrałeś!"); break; } else { digitalWrite(czerwona,HIGH); delay(4000); } } digitalWrite(zolta,LOW); dane_uzytkownika=""; i++; } //Serial.println(analogRead(A4)); while(digitalRead(reset)==HIGH) {delay(25);} digitalWrite(czerwona,LOW); digitalWrite(zielona,LOW); dane_uzytkownika=""; } Edytowano Luty 21, 2020 przez Gieneq Zachęcam do używania bloku kodu
Infinitywny Luty 21, 2020 Udostępnij Luty 21, 2020 (edytowany) Zadanie 4.5 mój kod #define button 8 #define red 3 #define green 5 #define yellow 7 #define adc 0 String odebraneDane = ""; int odebraneDaneInt = 0; int odczytADC = 0; int wieksza = 0; // odczyt ADC + 50 int mniejsza = 0; // odczyt ADC - 50 int wynik = 0; // jeżeli wpisana liczba mieści się w zakresie int licznikProb = 0; int start = 0; int val = ""; void setup() { pinMode(red,OUTPUT); pinMode(green,OUTPUT); pinMode(yellow,OUTPUT); pinMode(button,INPUT_PULLUP); Serial.begin(9600); Serial.println("Witaj! Zapraszam do prostej gry, naciśnij guzik aby zacząć");} void loop(){ odczytADC = analogRead(adc); // odczyt z ADC wieksza = odczytADC + 50; // odczyt ADC + 50 mniejsza = odczytADC - 50; // odczyt ADC - 50 while (digitalRead (button) == LOW) { // jeżeli przycisk jest wciśnie daje informacje o starcie gry czyszczeniebuforu(); // czyści bufor z danych wpisanych ponad 3 próby digitalWrite (green, LOW); // czerwonaLed wyłączona digitalWrite (red, LOW); // zielonaLed wyłączona przycisk (); // Wyświetla informacje o zasadach gry start = 1; // pozwala uruchomić grę od nowa po wpisaniu 3 prób, ulazeżniając zasady od wciśniecia przycisku delay (500);} if(Serial.available () >0){ // uruchamia pobieranie danych if(Serial.available () >3){licznikProb = 0;} // kasuje licznik gry dla większej ilości niż 3, bufor czyści zapisane wyniki ale licznik wzrasta po każdym wpisaniu danych wiec też trzeba go wyzerować. if (licznikProb <= 3 && start == 1) { // licznikProb = licznikProb + 1; // po wpisaniu danych zwiększa licznik gry o jeden, maksymalnie do 3 if (licznikProb ==1) { Dane (); Serial.println (""); Serial.println ("podałeś: " + odebraneDane); if (odebraneDaneInt > mniejsza && odebraneDaneInt < wieksza) {wynik = 1;} else {wynik = 0;} if (wynik == 1){wygrana();} if (wynik != 1){szansa();} } if (licznikProb ==2){ Dane (); Serial.println(licznikProb); Serial.println (""); Serial.println ("podałeś: " + odebraneDane); if (odebraneDaneInt > mniejsza && odebraneDaneInt < wieksza) {wynik = 1;} else {wynik = 0;} if (wynik == 1){wygrana();} if (wynik != 1){szansa2();} } if (licznikProb == 3){ Dane (); Serial.println(licznikProb); Serial.println (""); Serial.println ("podałeś: " + odebraneDane); koniec();} } } } void Dane() { odebraneDane = Serial.readStringUntil ('\n'); odebraneDaneInt = odebraneDane.toInt();} void przycisk() { Serial.println (""); Serial.println ("Twoim zadaniem jest zgadnąć z dokładnościa +/- 50 odczyt z potenciometru"); Serial.println ("Ustaw potenciometr w dowolne miejsce"); Serial.println ("Podaj liczbę od 1 do 1022"); delay(1000);} void wygrana() { Serial.println ("Wygrałeś"); Serial.println (""); digitalWrite (green,HIGH); digitalWrite (yellow,LOW); digitalWrite (red,LOW); delay (1000); Serial.println ("Naciśni guzik by zacząć od nowa"); start = 0;} void szansa () { Serial.println ("Niesty, nie trafiłeś "); Serial.println ("Spróbuj jeszcze raz, masz dwie próby "); digitalWrite (yellow,HIGH); digitalWrite (green,LOW);} void szansa2 () { Serial.println ("Niesty, nie trafiłeś "); Serial.println ("Spróbuj jeszcze raz, masz jedną próbę "); digitalWrite (yellow,HIGH); digitalWrite (green,LOW);} void koniec () { Serial.println ("Koniec gry, nasiśnij przycisk by zacząc raz jeszcze "); digitalWrite (yellow,LOW); digitalWrite (green,LOW); digitalWrite (red,HIGH); start = 0;} void czyszczeniebuforu() { while(Serial.available()){ Serial.read(); } } Edytowano Luty 24, 2020 przez Gieneq
Vova Luty 27, 2020 Udostępnij Luty 27, 2020 @BananWszyscy @ethanak Diękuję za naprowadzenie na błedy. Oto nowy kod zadania 4.5 #define przycisk 7 #define zielona 8 #define pomaranczowa 9 #define czerwona 10 int pozycja = 0;//Pozycja potencjometru odczytana z ADC int gra = 3;// Ilosc zsans String liczba = ""; // Drukuj tekst w "" int liczba_int = 0; // Konwersacja liczby void setup() { Serial.begin(9600);//Nawiazanie komunikacji pinMode(7, INPUT_PULLUP); //Konfiguracja wyjsc pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(A5, INPUT); } void loop() { if (digitalRead(przycisk) == LOW) { //Gdy przycisk wcisniety delay(200);//Opoznienie pozycja = analogRead(A5); //Sprawdzamy pozycje potencjometra Serial.println("PODAJ LICZBE");//Drukuj tekst digitalWrite(zielona, LOW); //Diody nie swieca digitalWrite(pomaranczowa, LOW); digitalWrite(czerwona, LOW); delay(200);//Opoznienie } if (Serial.available() > 0) { //Gdy wpisano liczbe liczba = Serial.readStringUntil('\n'); liczba_int = liczba.toInt();//Konwersacja tekstu pozycja = analogRead(A5); //Sprawdzamy pozycje potencjometra if (liczba_int - pozycja <= 50 && liczba_int - pozycja >= -50) { //Gdy odczytane wartosci misccza sie w zakresie digitalWrite(zielona, HIGH); //Wlaczamy diode zelona delay(2000);//Opoznienie digitalWrite(zielona, LOW);//Wylaczamy diode Serial.println("Pozstalo " + String (gra) + " szanse ");//Drukuj tekst delay(100);//Opoznienie } else { digitalWrite(czerwona, HIGH); //Wlacza sie dioda czerwona delay(2000);//Opoznienie digitalWrite(czerwona, LOW); //Wylacza sie dioda czerwona gra = gra - 1;//O jedna szansa mniej delay(100);//Opoznienie Serial.println("Pozstalo " + String (gra) + " szanse ");//Drukuj tekst } while (Serial.available() > 0) {} // Oczekiwanie na wpisanie liczby if (gra < 2) { //Gdy zostala 1 szansa digitalWrite(pomaranczowa, HIGH);//Wlacz dide pomaranczowa delay(1000);//Opoznienie digitalWrite(pomaranczowa, LOW);//Wylacz diode pomaranczowa } while (Serial.available() > 0) {}// Oczekiwaine na wpisanie liczby } if (gra < 1) { //Gdy wyczerpano wszystkie szanse digitalWrite(pomaranczowa, HIGH);//Wlacz diode pomaranczowa i czerwona digitalWrite(czerwona, HIGH); Serial.println("Koniec gry, wcisnij przycisk");//Drukuj tekst while (digitalRead(przycisk) == HIGH) {}//Czekaj na wcisniecie przycisku gra = 3; } } 1
Wojtas002424 Marzec 12, 2020 Udostępnij Marzec 12, 2020 Hej, mam pytanie odnośnie zadania 4.6. Zrobiłem zadanie, diody pokazują kierunek gdzie jest więcej światła, dodałem opóźnienie delay(100) gdyż ładnie to wygląda jak LED-y reagują dość szybko na zachodzące zmiany, ale za to źle się odczytuje wartości fotorezystorów w monitorze portu. Czy jest jakaś komenda która kasuje dane w monitorze? Coś w stylu Serial.clear(). 1
Gieneq Marzec 13, 2020 Udostępnij Marzec 13, 2020 @Wojtas002424 możesz zrobić to sprytnie i wypisywać jedynie przejścia z pewną strefą nieczułości. Np jeżeli stan się zmienił i minęło 200ms to ustaw nowy i wyświetl wterminalu. 13 godzin temu, Wojtas002424 napisał: Czy jest jakaś komenda która kasuje dane w monitorze? Wątpię, bo Arduino nie steruje komputerem. Ale możesz wyłączyć autoscroll i podejrzeć co się działo.
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »