Skocz do zawartości

Kurs Arduino - #3 - UART (komunikacja z PC), zmienne


Pomocna odpowiedź

31 minut temu, ethanak napisał:

Jeśli to Serial Monitor z Arduino IDE to nie, nie ma takiej możliwości ani za pomocą wbudowanej funkcji, ani własnej.

Czyli, że jakakolwiek informacja  o tym co znajduje się na "konsoli", cokolwiek przez to rozumiem, nie  jest zapisywana  w pamięci arduino?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Przyznam się  szczerze , że nie posiadam arduino  realnie  i bawie się  nim tylko wirtualnie  przy pomocy symulatora   arduino udostępnionego w darmowym programie  "tinkerCad". Ale, że zbliżają się święta to  licze na   to, że  św. mikołaj   uwzględni    moje potrzeby  w trakcie rozwożenia  prezentów szczególnie, że prawie przez cały rok byłem grzeczny.

A tak na poważnie to chciałem sobie zasymulować dziewięcioklawiszową  klawiaturę (taką jak w "starych  telefonach" z klawiaturą🤔)  zbudowaną z oporników i przycisków połączonych z jednym pinem  oraz   napisać program  do jej obsługi. 

12 minut temu, ethanak napisał:

Dokładnie tak.

hmmm🤨

Jestem kompletnym dyletantem i  ignorantem jeżeli chodzi o  programowanie ale tak sobie myślę, że   co do  samej kwestii zapamiętywania   przez arduino   tego co samo wypisuje to  dałoby się   je  przekonać do  pamietania tylko    to chyba akurat   nie zmieni sytuacji  na kosnoli

Edytowano przez honotu
Link do komentarza
Share on other sites

8 minut temu, honotu napisał:

dziewięcioklawiszową  klawiaturę (taką jak w "starych  telefonach" z klawiaturą🤔

Ona ma 12 klawiszy a nie 9 🙂

Nie bardzo wiem po co kasowanie informacji na konsoli przy tego typu programie, ale pewnie da się to w jakiś sposób obejść. Przykładowo: jeśli chcesz mieć na konsoli ładnie narysowaną klawiaturę z zaznaczeniem który klawisz jest wciśnięty - możesz po prostu po każdym wciśnięciu/puszczeniu klawisza rysować ponownie całą klawiaturę (i parę pustych linii przed nią, aby poprzednia zginęła z ekranu).

15 minut temu, honotu napisał:

 co do  samej kwestii zapamiętywania   przez arduino   tego co samo wypisuje to  dałoby się   je  przekonać do  pamietania tylko    to chyba akurat   nie zmieni sytuacji  na kosnoli

I znów masz absolutną rację 🙂

 

  • Lubię! 1
Link do komentarza
Share on other sites

Ja to jednak jestem zarabisty.

Szkoda, że św. Mikołaj o tym nie wie.

Jakbyście go spotkali to mu szepnijcie słówko o mnie.

Dziękuję  za   wyjaśnienie wiekszej ilości   spraw niż   przewidziane   w moim pytaniu.

Jesteście zarąbiści👍

Edytowano przez honotu
Link do komentarza
Share on other sites

KURS ARDUINO #3 - u mnie po wykonaniu tego zadania ,,Interakcja z układem - sterowanie diodami przez UART'' niestety nic nie zadziałało... Może ktoś pomoże? Nawet po skopiowaniu programu od autora nic się nie zmieniło 😞

Link do komentarza
Share on other sites

#define ledRed 10
#define ledGreen 9
bool Red = false;
bool Green = false;

String recievedData = " " ;

void setup() {
  Serial.begin(9600); // Uruchomienie komunikacji

  pinMode(ledRed, OUTPUT);
  pinMode(ledGreen, OUTPUT);

  //digitalWrite(ledRed, LOW);
  //digitalWrite(ledGreen, LOW);
  
}

void loop() {
  if(Serial.available() > 0) { //Jeżeli Arduino odebrało dane
    recievedData = Serial.readStringUntil('\n'); //Jeżeli tak, to odczytaj dane do końca linii.
    if(recievedData == "lightRed"){ // Jeżeli odebrane dane to String "lightRed"
    
    if(Red == false){
      Red = true;
    }
    else if(Red == true){
      Red = false;
    }
    if(Red == true){
      digitalWrite(ledRed, HIGH);
    }
    else if(Red == false){
      digitalWrite(ledRed, LOW);
    }
    }
    if(recievedData == "lightGreen") { // Jeżeli Arduino odebrało String "lightGreen"
   if(Green == false){
      Green = true;
    }
    else if(Green == true){
      Green = false;
    }
    if(Green == true){
      digitalWrite(ledGreen, HIGH);
    }
    else if(Green == false){
      digitalWrite(ledGreen, LOW);
    }      
    }
    
    
  }

}

 

Link do komentarza
Share on other sites

#define zolta 8
#define zielona 9
boolean zolta=false;
boolean zielona=false;
String dane="";
void setup() {
  Serial.begin(9600);
  pinMode(zolta,OUTPUT);
  pinMode(zielona,OUTPUT);
  digitalWrite(zolta,LOW);
  digitalWrite(zielona,LOW);
  
}

void loop() {
  if(Serial.available()>0){
    dane=Serial.readStringUntil('\n');

    if (dane=="zielona" && boolean zielona=false) {
      digitalWrite(zielona,HIGH);
      boolean zielona=true;
    }
    if (dane=="zielona" && boolean zielona=true) {
      digitalWrite(zielona,LOW);
      boolean zielona=false;
    }
    if (dane=="zolta" && boolean zolta=false) {
      digitalWrite(zolta,HIGH);
      boolean zolta=true
    }
    if (dane=="zolta" && boolean zolta=true) {
      digitalWrite(zolta,LOW);
      boolean zolta=false
    }
    if(dane != "zielona" && dane !="zolta")
   {
     Serial.println("wpisales zla nazwe");
  }
  }
}

Mam pytanie odnośnie kodu który wykonałem do zadania 2.5. Co jest nie tak? Błąd w załączniku (aplikacja zaznacza linijkę pierwszą)image.thumb.png.d4b7327d8b7a53f825cae6fb2fa1b37e.png

Edytowano przez ProPizza41
poprawki
Link do komentarza
Share on other sites

Nieco zmieniłem kod, lecz nadal nie działa a błąd ten sam 😕. Zastanawiam się czy na pewno dobrze rozumiem zmienną boolean 🤔.

#define zolta 8
#define zielona 9
boolean zolta =false;
boolean zielona =false;
String dane="";


void setup() {
  Serial.begin(9600);
  pinMode(zolta,OUTPUT);
  pinMode(zielona,OUTPUT);
  digitalWrite(zolta,LOW);
  digitalWrite(zielona,LOW);
  
}

void loop() {
  if(Serial.available()>0){
    dane=Serial.readStringUntil('\n');

    if (dane=="zielona") {
      if (boolean zielona =false){
        digitalWrite(zielona,HIGH);
        boolean zielona =true;
      }
      else {
        digitalWrite (zielona,LOW);
        boolean zielona =false; 
      }
    }
    if (dane=="zolta") {
      if (boolean zolta =false){
        digitalWrite(zolta,HIGH);
        boolean zolta =true;
    }
      else {
        digitalWrite(zolta,LOW);
        boolean zolta =false;
      }
    }
    if(dane != "zielona" && dane !="zolta")
   {
     Serial.println("co ty mi tu wogole podajesz");
  }
  }
}

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.