Skocz do zawartości

Pomocna odpowiedź

(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 przez ethanak

@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 😉

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:

5b593-2020-02-03_06-34-05-7875.png

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):

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 😉

  • Lubię! 1
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.

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 && 🙂

(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 przez Treker
PPF
(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 przez Vova
  • Lubię! 1
  • 2 tygodnie później...
#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'. 

(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 przez BananWszyscy
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ć.

 

(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 przez Gieneq
Zachęcam do używania bloku kodu
(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 przez Gieneq

@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;
  }
}

 

  • Lubię! 1
  • 2 tygodnie później...

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().

  • Lubię! 1

@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.

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ę »
×
×
  • Utwórz nowe...