Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję

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

Autor Wiadomość
SOYER 



Posty: 216
Pomógł: 1 raz
Otrzymał 10 piw(a)
Skąd: Kryry
Wysłany: 29-12-2017, 07:58   

Kompletnie nie wiem o czym pisz Elvis, ale wiem jedno, miałem rację pisząc, że
Kod programu: Zaznacz cały
String odebraneDane =""
jest nie do końca sensowne.
Pzdr

Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 8101
Pomógł: 122 razy
Otrzymał 511 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 30-12-2017, 12:55   

SOYER, jeśli nie rozumiesz co napisał Elvis, to raczej warto się zastanowić, czy masz rację ;) Z wiadomości tamtej wynika, że nie ma praktycznie żadnej różnicy, czy dopiszemy = "";, czy go nie dodamy i wcale nie rozwiązuje to problemu, o który pytał ferb01 (swoją drogą nadal nie wiemy jaki napotkał on dokładnie problem)...


Zachęcam do korzystania z forum - nie pomagam indywidualnie przez PW/maila.
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
SOYER 



Posty: 216
Pomógł: 1 raz
Otrzymał 10 piw(a)
Skąd: Kryry
Wysłany: 30-12-2017, 17:34   

Ok Treker, właśnie o to mi chodziło, że ten dopisek raczej był zbędny, nigdzie nigdzie nie napsałem, że to rozwiazanie jego problemu... Luzik, wiem, że mało wiem, dlatego tu jestem.... :mrgreen: Szczęsliwego Nowego Roku.

Postaw piwo autorowi tego posta
 
 
mistus 



Posty: 12
Otrzymał 1 piw(a)
Skąd: OPOLE
Wysłany: 02-01-2018, 06:25   

Ja zadanie pierwsze i drugie połączyłem razem i zrobiłem tak ;)
Kod programu: Zaznacz cały

#define czerwona 8 // nadaj pinowi 8 nazwe
#define zielona 7  // nadaj pinowi 7 nazwe
boolean zmien = true; // ustaw zmieną stan zmien na prawde
boolean wymiana = true; // ustaw zmieną stan wymiana na prawde
String wczytaj = "";  // ustaw zmiena wczytaj jako pusty ciąg
void setup() {//wykonaj na początek
  Serial.begin(9600); //połacz się z komputerem
  Serial.println("Podaj kolor"); // wpisz kolor w monitorze portu szeregowego
  pinMode(czerwona, OUTPUT);// ustaw pin 8 jako wyjście
  pinMode(zielona, OUTPUT);// ustaw pin 7 jako wyjście
  digitalWrite(czerwona, LOW);// wpisz stan niski na pin 8
  digitalWrite(zielona, LOW);// wpisz stan niski na pin 7
 }
 void czerwon(){// uruchomienie diody czerwonej w dwa stany
      if (zmien == true){ //jesli zmien jest prawdziwa
        Serial.println("wlaczyles czerwona");
        digitalWrite(czerwona, HIGH);// stan właczony
        zmien = false;
      }
      else{
        if(zmien == false){// jesli zmien jest nie prawdziwa
     
        Serial.println("wylaczyles czerwona");
        digitalWrite(czerwona, LOW);//stan wyłączony
        zmien = true;}
       
  }
 }
  void zielon(){//uruchomienie diody zielonej w dwa stany
        if(wymiana == true){//jesli wymiana jest prawdziwa
        Serial.println("wlaczyles zielona");
        digitalWrite(zielona, HIGH);//stan włączony
        wymiana = false;
      }
      else{
        if(wymiana == false){//jeśli wymiana jest nie prawdziwa
        Serial.println("wylaczyles zielona");
        digitalWrite(zielona, LOW);//stan wyłączony
        wymiana = true;
      }
 
       }
 }
 
void loop() {//wykonuj wkółko mechanike
  if(Serial.available() > 0 ){//sprawdz czy coś jest w buforze
    wczytaj = Serial.readStringUntil('\n');//jeśli jest wczytaj dane do wczytaj i ustaw w nowej lini
    if((wczytaj == "czerwona")||(wczytaj == "czerwony")){//jeśli wczytaj jest wpisane czerwona lub czerwony
    czerwon();//wykonaj funkcje czerwon
  }
   else{//jeśli nie to
    if((wczytaj == "zielona")||(wczytaj == "zielony")){//jeśli wpisane jest zielona lub zielony
    zielon();// wykonaj funkcje zielon
    }
    else{//jeśli nie jest żadna z nazw wpisana
      Serial.println("nie ma takiego koloru");//wypisz monitorze portu szeregowego
    }
   
}
}
}

właśnie się zastanawiałem jak wy to robicie dzięki już będzie jak trzeba ;)
__________
Komentarz dodany przez: Treker
Kod programu, dla lepszej czytelności, należy umieszczać w tagach [code]. Proszę to poprawić.

Ostatnio zmieniony przez mistus 02-01-2018, 14:56, w całości zmieniany 2 razy  
Postaw piwo autorowi tego posta
 
 
ciemny 



Posty: 4
Wysłany: 13-01-2018, 20:04   

Mi w końcu też wyszło:

Kod programu: Zaznacz cały

#define zielona 10
#define czerwona 9

String odbiorDanych = ""; // Pusty ciąg znaków
boolean stanZielonej = false;
boolean stanCzerwonej = false;

void setup() {
  Serial.begin(9600); // włączenie komunikacji
  pinMode(zielona, OUTPUT); //Konfiguracja wyjść
  pinMode(czerwona, OUTPUT);

  digitalWrite(zielona, LOW); //Konfigurujemy stan wyjść
  digitalWrite(czerwona, LOW);
}

void loop() {
    if(Serial.available() > 0) { // jeśli Arduino odbiera dane
    odbiorDanych = Serial.readStringUntil('\n'); // to zapisuje ciąg wpisanych znaków do wciśnięcia "enter"

    if (odbiorDanych == "zielona") { // jeśli odebrano słowo "zielona"
      if (stanZielonej == false) { // i jeśli zielona dioda jest wyłączona
      digitalWrite(zielona, HIGH); // to włącz diodę
      stanZielonej = true; // jej stan teraz to włączony
      } else { //jeśli jest włączona
              digitalWrite(zielona, LOW); // to wyłącz diodę
              stanZielonej = false; // jej stan teraz to wyłączony
             }
    } else {
            if (odbiorDanych == "czerwona") {// jeśli  odbebrano słow "czerwona"
            if(stanCzerwonej == false) { // i jeśli czerwona dioda jest wyłączona
            digitalWrite(czerwona, HIGH); // to włącz diodę
            stanCzerwonej = true; // jej stan teraz to włączony
            } else { // jeśli jest włączona
                   digitalWrite(czerwona, LOW); // to wyłącz diodę
                   stanCzerwonej = false; // jej stan teraz to wyłączony
                   }
            } else {
                   Serial.println("zły kolor diody!!");
            }
            }
     }
}

         
     
 

Postaw piwo autorowi tego posta
 
 
Treker 




Posty: 8101
Pomógł: 122 razy
Otrzymał 511 piw(a)
Skąd: Gdynia
Programuję w:
C, Arduino
Moje roboty:
Spectrum, Fuzzy

Wysłany: 13-01-2018, 20:29   

ciemny, super, dzięki za podzielenie się Twoim rozwiązaniem :) Powodzenia w dalszej nauce!


Zachęcam do korzystania z forum - nie pomagam indywidualnie przez PW/maila.
Sprawdź » Kurs ARDUINOKurs podstaw elektronikiZbuduj swojego robota - kurs!
Postaw piwo autorowi tego posta
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Wersja do druku

Skocz do:  

Nie rozwiązałeś swojego problemu? Zobacz podobne tematy: Kurs Arduino - #9 - ... Kurs Arduino - #8 - ... Kurs STM32 - #3 - Pł... Kurs STM32 - #2 - Po...
lub przeszukaj forum po wybranych tagach: artykulow, do, komentarze


Powered by phpBB modified by Przemo © 2003 phpBB Group
Popularne kursy: Arduinopodstawy elektroniki