Skocz do zawartości

Losowanie cyfry po naciśnięciu przycisku


Pomocna odpowiedź

Witam. Dostałem za darmo Arduino Uno,Mega i Leonard.Czwiczę i uczę się. Mam wyświetlacz 7 segmentowy LSD052BRS i próbowałem kilka programów. Wyświetlało mi głupoty. Dopiero jak przerobiłem program to dobrze wyświetlał cyfry. Usiłuję zrobić kostkę do gier. Mam już że wyświetla losowo. Jeden pomógł. A teraz chce zrobić aby jak nacisnę przycisk zapaliła się losowa cyfra i zgasła po 2 sek i znowu przycisk. Przycisk mam przez 10 k rezystor do +5,GND i pin 12. Jak to zrobić? Jak skonfgórowć pin 12?Plisss. Dalej się będę męczył sam bo chce na 3 wyświetlacze co najmniej. Podobno na mega można podepiąć więcej. 5? Da rady? I wyświetlacz LCD na IC2?W moim wieku już tak nie kapuję. 60 lat na karku.

#define SEG_C 3
#define SEG_E 6
#define SEG_D 5
#define SEG_B 7
#define SEG_G 2
#define SEG_A 11 
#define SEG_F 10

int losowaLiczba;
 
void setup() {

     Serial.begin(9600);
  //Konfiguracja pinow jako wyjscia
  pinMode(SEG_A, OUTPUT);
  pinMode(SEG_B, OUTPUT);
  pinMode(SEG_C, OUTPUT);
  pinMode(SEG_D, OUTPUT);
  pinMode(SEG_E, OUTPUT);
  pinMode(SEG_F, OUTPUT);
  pinMode(SEG_G, OUTPUT);

  pinMode(12, INPUT_PULLUP); //Przycisk jako wejście
}
 
void loop() {

  losowaLiczba = random(1, 7);
  Serial.println(losowaLiczba);
 {
    wyswietlacz(losowaLiczba); //Wyswietl wartosc na wyswietlaczu
    delay(1000); //Poczekaj 1s
  }
}
 
void wyswietlacz(int cyfra) {
  //Instrukcja switch ustawia odpowiednie stany na wyjsciach
  //w zaleznosci od podanej cyfry
  switch (cyfra) {
    case 0:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 2:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B,  LOW);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D,  LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 3:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 4:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 5:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 6:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break;
  }
}

Gdzie to wpisać aby po każdej cyfsze był czysty wyświetlacz?

 

        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);  

Mam wyświetlacz z wspólną anodą. Anoda podpięta do +5. Teraz działa tak że wyświetli cyfrę i po 2 sekudach gasi i następna. Jak zrobić aby przyciskiem to było? Przycisk-cyfra i gasi po 2 sek. i czeka na przycisk?

#define SEG_C 3
#define SEG_E 6
#define SEG_D 5
#define SEG_B 7
#define SEG_G 2
#define SEG_A 11 
#define SEG_F 10
#define PRZYCISK 12
int ostatniStan = HIGH; //BO PULLUP
int losowaLiczba;
 
void setup() {

     Serial.begin(9600);

   pinMode(PRZYCISK, INPUT_PULLUP);
  //Konfiguracja pinow jako wyjscia
  pinMode(SEG_A, OUTPUT);
  pinMode(SEG_B, OUTPUT);
  pinMode(SEG_C, OUTPUT);
  pinMode(SEG_D, OUTPUT);
  pinMode(SEG_E, OUTPUT);
  pinMode(SEG_F, OUTPUT);
  pinMode(SEG_G, OUTPUT);

}
 
void loop() {
  
pinMode(12, INPUT_PULLUP); //Przycisk jako wejście
//if (digitalRead(PRZYCISK) == HIGH) { // Sprawdzamy czy przycisk jest wciśnięty
//digitalWrite(wyswietlacz(, LOW); // Jeśli tak, zapala wyświetlscz 

  losowaLiczba = random(1, 7);
  Serial.println(losowaLiczba);
 digitalWrite(wyswietlacz,HIGH); 
 {
    wyswietlacz(losowaLiczba); //Wyswietl wartosc na wyswietlaczu
    
    delay(2000); //Poczekaj 2s

        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);  

        delay(5000); //Poczekaj 2s
  //      Jak wpisać czekaj na naciśnięcie przicisku?

  }
}
 
void wyswietlacz(int cyfra) {
  //Instrukcja switch ustawia odpowiednie stany na wyjsciach
  //w zaleznosci od podanej cyfry
  switch (cyfra) {
    
     case 0:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 2:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B,  LOW);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D,  LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 3:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 4:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 5:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 6:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break;
        
  }
}

 

 

Edytowano przez Kenshin
Poprawki kodu
Link to post
Share on other sites
16 godzin temu, Treker napisał:

@Kenshin witam na forum 🙂 Z czym dokładnie masz problem, czego konkretnie nie potrafisz zrobić? Opis wykorzystywania wejść znajdziesz np. w naszym kursie Arduino: https://forbot.pl/blog/kurs-arduino-podstawy-programowania-porty-io-id3648

Witam. Tyle zrobiłem. Mam kłopot z przyciskiem. Chce uzyskąc aby po naciśnięciu przycisku wyświetliło lczbę przez 2 sek i zgasł. I program czekał na następne naciśnięcie przicisku. Program poniżej.

#define SEG_C 3
#define SEG_E 6
#define SEG_D 5
#define SEG_B 7
#define SEG_G 2
#define SEG_A 11 
#define SEG_F 10
#define PRZYCISK 12
int ostatniStan = HIGH; //BO PULLUP
int losowaLiczba;
 
void setup() {

     Serial.begin(9600);

   pinMode(PRZYCISK, INPUT_PULLUP);
  //Konfiguracja pinow jako wyjscia
  pinMode(SEG_A, OUTPUT);
  pinMode(SEG_B, OUTPUT);
  pinMode(SEG_C, OUTPUT);
  pinMode(SEG_D, OUTPUT);
  pinMode(SEG_E, OUTPUT);
  pinMode(SEG_F, OUTPUT);
  pinMode(SEG_G, OUTPUT);

}
 
void loop() {
  
pinMode(12, INPUT_PULLUP); //Przycisk jako wejście
//if (digitalRead(PRZYCISK) == HIGH) { // Sprawdzamy czy przycisk jest wciśnięty
//digitalWrite(wyswietlacz(, LOW); // Jeśli tak, zapala wyświetlscz 

  losowaLiczba = random(1, 7);
  Serial.println(losowaLiczba);
 digitalWrite(wyswietlacz,HIGH); 
 {
    wyswietlacz(losowaLiczba); //Wyswietl wartosc na wyswietlaczu
    
    delay(2000); //Poczekaj 2s

        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);  

        delay(5000); //Poczekaj 2s
  //      Jak wpisać czekaj na naciśnięcie przicisku?

  }
}
 
void wyswietlacz(int cyfra) {
  //Instrukcja switch ustawia odpowiednie stany na wyjsciach
  //w zaleznosci od podanej cyfry
  switch (cyfra) {
    
     case 0:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 2:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B,  LOW);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D,  LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 3:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 4:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 5:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 6:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break;
        
  }
}

 

Link to post
Share on other sites
16 minut temu, Kenshin napisał:

Tyle zrobiłem. Mam kłopot z przyciskiem

Tak, widziałem program, ale nie wiem w czym dokładnie masz problem. Nie wiesz jak to zrobić konkretnie w programie, czy nie wiesz jaki powinien być algorytm takiego rozwiązania? W tym programie nigdzie nie sprawdzasz stanu przycisku, więc ciężko mi doradzić jakieś rozwiązanie, a nie chodzi o to, aby pisał ten program za Ciebie. Podlinkowałem Ci konkretny artykuł z kursu, w którym masz pokazane w jaki sposób można obsługiwać przyciski. Czy tamte przykłady są dla Ciebie niejasne?

Link to post
Share on other sites
(edytowany)

 Nie wiem jak to napisać ,mam od dwóch - trzech dni i próbowalem programy przykładowe. Wyświetlało mi głupoty. Tylko na 4 i 8 cyfrowym było poprawnie. Chce zrobić kostkę do gry. Jak napisać aby sprawdzał stan? Coś poknociłem. Chciałem prototyp na Arduino Uno zrobić do 6 grudnia. Ale nie dam chyba rady,sprzątanie zakupy i spacery z psem. Wiem już że można potemaprogramować układ scalony. I zrobić nie zależne od arduino.

Edytowano przez Kenshin
Dopisek
Link to post
Share on other sites
//Definiowanie pinów wyświetlacza i Arduino
#define SEG_C 3
#define SEG_E 6
#define SEG_D 5
#define SEG_B 7
#define SEG_G 2
#define SEG_A 11 
#define SEG_F 10

//Definiowanie pinu przycisku  12 i przycisk
//Arduino UNO +5
//Arduino UNO przez rezystor 10 k GND

#define PRZYCISK 12
int delayTime(20);// Drgania przycisku
int ostatniStan = HIGH; //BO PULLUP
int losowaLiczba;
int cyfra;
 
void setup() {

     Serial.begin(9600);

   pinMode(PRZYCISK, INPUT_PULLUP);
   
  //Konfiguracja pinow jako wyjscia
  
  pinMode(SEG_A, OUTPUT);
  pinMode(SEG_B, OUTPUT);
  pinMode(SEG_C, OUTPUT);
  pinMode(SEG_D, OUTPUT);
  pinMode(SEG_E, OUTPUT);
  pinMode(SEG_F, OUTPUT);
  pinMode(SEG_G, OUTPUT);

}
 
void loop() {
  
pinMode(12, INPUT_PULLUP); //Przycisk jako wejście
 
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);  


     
   losowaLiczba = random(1, 7);
   Serial.println(losowaLiczba);
 //  
 //   digitalWrite(wyswietlacz,LOW); 
    wyswietlacz(losowaLiczba); //Wyswietl wartosc na wyswietlaczu
    delay(2000);
    }  
     
void wyswietlacz(int cyfra) {
  //Instrukcja switch ustawia odpowiednie stany na wyjsciach
  //w zaleznosci od podanej cyfry
  switch (cyfra) {
     
    case 0:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 2:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B,  LOW);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D,  LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 3:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 4:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 5:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 6:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break;
        
  }
}

Mam problem z przyciskiem. Już kilka razy wstawiałwm i za każdym razem błąd. Gdzie,po jakiej lini wstawić opsługę przycisku aby za każdym przyciśnieńciem losowało liczbę? Próbowałem poleceniem if i za każdym razem inny błąd.Np. że wyswiedlacz nie zdeklarowany czy coś słabo u mnie z angelskim. Mnie uczyli ruskiego.

Link to post
Share on other sites

@Kenshin, @Treker podał Ci link, pod którym znajdziesz najprostszy sposób na obsługę przycisku. Przewiń do sekcji "Przykład - Włącznik światła z "czasomierzem"".

W miejscu, gdzie obecnie masz:

    wyswietlacz(losowaLiczba); //Wyswietl wartosc na wyswietlaczu
    delay(2000);

dorzuć warunek na przycisk:

if (digitalRead(PRZYCISK) == LOW) { //wyświetl liczbę tylko, jeśli naciśnięto przycisk
    wyswietlacz(losowaLiczba); //Wyswietl wartosc na wyswietlaczu
    delay(2000); //czekaj 2s
    wyswietlacz(-1); //jeśli chcesz wygasić wyświetlacz, to musisz dodać taką opcję - albo tak albo niezależna funkcja w stylu czysc()
}
delay(50); //oddech dla uC, tak dla świętego spokoju

/////
// ponieważ powyżej dodaliśmy -1 jako parametr w celu czyszczenia wyświetlacza, musimy dodać jego obsługę:
void wyswietlacz(int cyfra) {
  //Instrukcja switch ustawia odpowiednie stany na wyjsciach
  //w zaleznosci od podanej cyfry
  switch (cyfra) {
    case -1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);

Dodatkowo w funkcji setup masz już:

pinMode(PRZYCISK, INPUT_PULLUP);

więc absolutnie nie ma potrzeby byś w pętli (funkcja loop) na początku miał:

pinMode(12, INPUT_PULLUP); //Przycisk jako wejście

Usuń tę linię.

Edytowano przez Marooned
  • Lubię! 2
Link to post
Share on other sites
(edytowany)
//Definiowanie pinów wyświetlacza i Arduino
#define SEG_C 3
#define SEG_E 6
#define SEG_D 5
#define SEG_B 7
#define SEG_G 2
#define SEG_A 11 
#define SEG_F 10

//Definiowanie pinu przycisku  12 i przycisk
//Arduino UNO +5
//Arduino UNO przez rezystor 10 k GND

#define PRZYCISK 12
int delayTime(20);// Drgania przycisku
int ostatniStan = HIGH; //BO PULLUP
int losowaLiczba;
int cyfra;
 
void setup() {

     Serial.begin(9600);
     
  //Konfiguracja pinow jako wyjscia
  
  pinMode(SEG_A, OUTPUT);
  pinMode(SEG_B, OUTPUT);
  pinMode(SEG_C, OUTPUT);
  pinMode(SEG_D, OUTPUT);
  pinMode(SEG_E, OUTPUT);
  pinMode(SEG_F, OUTPUT);
  pinMode(SEG_G, OUTPUT);

}
 
void loop() {
  
pinMode(12, INPUT_PULLUP); //Przycisk jako wejście
      
   losowaLiczba = random(1, 7);
   Serial.println(losowaLiczba);
   
   if (digitalRead(PRZYCISK) == LOW) { //wyświetl liczbę tylko, jeśli naciśnięto przycisk
    wyswietlacz(losowaLiczba); //Wyswietl wartosc na wyswietlaczu
    delay(2000); //czekaj 2s
    
    wyswietlacz(-1); //jeśli chcesz wygasić wyświetlacz, to musisz dodać taką opcję - albo tak albo niezależna funkcja w stylu czysc()
}
delay(50); //oddech dla uC, tak dla świętego spokoju

/////
// ponieważ powyżej dodaliśmy -1 jako parametr w celu czyszczenia wyświetlacza, musimy dodać jego obsługę:
void wyswietlacz(int cyfra) {
  //Instrukcja switch ustawia odpowiednie stany na wyjsciach
  //w zaleznosci od podanej cyfry
  switch (cyfra) {
    case -1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);
     break; 
         
    case 0:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 2:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B,  LOW);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D,  LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 3:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 4:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 5:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 6:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break;
        
  }
}

Skasowałem najpierw i dobrze było a po dodaniu kodu od if - w tym miejcu to miało być? Wyskakuje wyswietalcz was not declaratet in this scope.  Co to za błąd?

Przepraszam za błąd.Spieszę się bo z psinką na spacer. Już czeka.

 

Arduino:1.8.13 (Windows 10), Płytka:"Arduino Uno"C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Orion\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=2A03_0043 -ide-version=10813 -build-path C:\Users\Orion\AppData\Local\Temp\arduino_build_363555 -warnings=none -build-cache C:\Users\Orion\AppData\Local\Temp\arduino_cache_623533 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Orion\Documents\Arduino\Kostka_losowanie_11\Kostka_losowanie_11.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Orion\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=2A03_0043 -ide-version=10813 -build-path C:\Users\Orion\AppData\Local\Temp\arduino_build_363555 -warnings=none -build-cache C:\Users\Orion\AppData\Local\Temp\arduino_cache_623533 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Orion\Documents\Arduino\Kostka_losowanie_11\Kostka_losowanie_11.ino
Using board 'uno' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "C:\\Users\\Orion\\AppData\\Local\\Temp\\arduino_build_363555\\sketch\\Kostka_losowanie_11.ino.cpp" -o nul -DARDUINO_LIB_DISCOVERY_PHASE
Generating function prototypes...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "C:\\Users\\Orion\\AppData\\Local\\Temp\\arduino_build_363555\\sketch\\Kostka_losowanie_11.ino.cpp" -o "C:\\Users\\Orion\\AppData\\Local\\Temp\\arduino_build_363555\\preproc\\ctags_target_for_gcc_minus_e.cpp" -DARDUINO_LIB_DISCOVERY_PHASE
"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\Orion\\AppData\\Local\\Temp\\arduino_build_363555\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Kompilowanie szkicu...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "C:\\Users\\Orion\\AppData\\Local\\Temp\\arduino_build_363555\\sketch\\Kostka_losowanie_11.ino.cpp" -o "C:\\Users\\Orion\\AppData\\Local\\Temp\\arduino_build_363555\\sketch\\Kostka_losowanie_11.ino.cpp.o"
C:\Users\Orion\Documents\Arduino\Kostka_losowanie_11\Kostka_losowanie_11.ino: In function 'void loop()':
Kostka_losowanie_11:47:5: error: 'wyswietlacz' was not declared in this scope
     wyswietlacz(losowaLiczba); //Wyswietl wartosc na wyswietlaczu
     ^~~~~~~~~~~
Kostka_losowanie_11:55:29: error: a function-definition is not allowed here before '{' token
 void wyswietlacz(int cyfra) {
                             ^
Kostka_losowanie_11:71:1: error: expected '}' at end of input
 }
 ^
exit status 1
'wyswietlacz' was not declared in this scope
 

 

 

Edytowano przez Kenshin
Poprawa błędu
Link to post
Share on other sites

1) Jeśli chcesz być brany na poważnie, pilnuj języka. W obecnych czasach poprawiania błędów przez każdą sensowną przeglądarkę walenie takich ortografów nie jest wytłumaczalne.
2) Usunąłeś poprawną linię pinMode(PRZYCISK, INPUT_PULLUP); z setup, a zostawiłeś ją w loop. Widać, że nawet nie chciało Ci się przeczytać oferowanej pomocy.
3) Zadbaj o jakość kodu i poprawne wcięcia.
4) Twój błąd wiąże się z tym, że funkcja wyswietlacz zdefiniowana jest niżej, niż następuje jej wywołanie. Składnia C wymaga, aby deklaracja była przed wywołaniem. Nie oznacza to, że trzeba przenosić całą definicję. Można dodać wyżej void wyswietlacz(int cyfra);
4a) Z jakiego środowiska korzystasz? Bo o ile każdy klasyczny kompilator C jak również alternatywne środowiska jak PlatrofmIO są zgodne ze standardem C (opisanym w punkcie 3), o tyle Arduino robi tę "magię" w tle, więc pisząc w Arduino IDE nie ma potrzeby wcześniej deklaracji, jest ona robiona za nas podczas kompilacji. Tutaj jest to wytłumaczone.

Generalnie gorąco polecam jakiś podstawowy kurs C oraz Arduino. Ktoś poświęcił czas by taki kurs stworzyć, wyjaśni on wszystkie Twoje dotychczasowe (i przyszłe) problemy. Nie będzie to czas zmarnowany.

Edytowano przez Marooned
  • Lubię! 1
Link to post
Share on other sites

Dopiero zauważyłem, że edytowałeś post. Jeśli już wrócisz z psem spójrz na swój kod a potem na mój punkt 3). Odpowiedź stanie się jasna i okaże się, że błąd zgłaszany przez kompilator nabierze sensu. Specjalnie nie podaję rozwiązania na tacy, bo umiejętność znalezienia takiego błędu uchroni Cię przed mnóstwem zmarnowanego czasu w przyszłości.

Edytowano przez Marooned
  • Lubię! 1
Link to post
Share on other sites
(edytowany)
//Definiowanie pinów wyświetlacza i Arduino
#define SEG_C 3
#define SEG_E 6
#define SEG_D 5
#define SEG_B 7
#define SEG_G 2
#define SEG_A 11 
#define SEG_F 10

//Definiowanie pinu przycisku  12 i przycisk
//Arduino UNO +5
//Arduino UNO przez rezystor 10 k GND

#define PRZYCISK 12
int delayTime(20);// Drgania przycisku
int ostatniStan = HIGH; //BO PULLUP
int losowaLiczba;
int cyfra;
 
void setup() {

     Serial.begin(9600);

   pinMode(PRZYCISK, INPUT_PULLUP);
   
  //Konfiguracja pinow jako wyjscia
  
  pinMode(SEG_A, OUTPUT);
  pinMode(SEG_B, OUTPUT);
  pinMode(SEG_C, OUTPUT);
  pinMode(SEG_D, OUTPUT);
  pinMode(SEG_E, OUTPUT);
  pinMode(SEG_F, OUTPUT);
  pinMode(SEG_G, OUTPUT);

}
 
void loop() {
     
   losowaLiczba = random(1, 7);
   Serial.println(losowaLiczba);
 if (digitalRead(PRZYCISK) == LOW) { //wyświetl liczbę tylko, jeśli naciśnięto przycisk
  digitalWrite(wyswietlacz,LOW); 
    
     wyswietlacz(-1); //jeśli chcesz wygasić wyświetlacz, to musisz dodać taką opcję - albo tak albo niezależna funkcja w stylu czysc()
wyswietlacz(losowaLiczba); //Wyswietl wartosc na wyswietlaczu
}
delay(50); //oddech dla uC, tak dla świętego spokoju
      }  
     
void wyswietlacz(int cyfra) {
  //Instrukcja switch ustawia odpowiednie stany na wyjsciach
  //w zaleznosci od podanej cyfry
  switch (cyfra) {
    case -1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);
    
     
    case 0:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 2:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B,  LOW);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D,  LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 3:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 4:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 5:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 6:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break;
        
  }
}

Narazie mam tak. Cyfry wyświetla szybko. Po naciśnięciu przycisku zatrzymuje się na cyfsze. Czyli można już grać.

Edytowano przez Kenshin
Link to post
Share on other sites

Dzisiaj będę dalej robił. Szedłem już spać i nie dokączyłem/ Tyle wczoraj zrobiłem. Skasuję to. Wiem że linie z HIGH można skasować z cyfr a zostawić tylko linie z LOW bo tu wyświetla segment.

Link to post
Share on other sites
(edytowany)
//Definiowanie pinów wyświetlacza i Arduino
#define SEG_C 3
#define SEG_E 6
#define SEG_D 5
#define SEG_B 7
#define SEG_G 2
#define SEG_A 11 
#define SEG_F 10

//Definiowanie pinu przycisku  12 i przycisk
//Arduino UNO +5
//Arduino UNO przez rezystor 10 k GND

#define PRZYCISK 12

int ostatniStan = LOW; //BO PULLUP
int losowaLiczba;
int cyfra;
 
void setup() {
   
  //Konfiguracja pinow jako wyjscia
  
  pinMode(SEG_A, OUTPUT);
  pinMode(SEG_B, OUTPUT);
  pinMode(SEG_C, OUTPUT);
  pinMode(SEG_D, OUTPUT);
  pinMode(SEG_E, OUTPUT);
  pinMode(SEG_F, OUTPUT);
  pinMode(SEG_G, OUTPUT);
  
  pinMode(PRZYCISK, INPUT_PULLUP);
}
 
void loop() {
      
      while (digitalRead(PRZYCISK) == LOW){} {
      digitalWrite(PRZYCISK, LOW);
      while (digitalRead(PRZYCISK) == HIGH){}
      digitalWrite(PRZYCISK, HIGH); //Czerwona włącz
    
      losowaLiczba = random(1, 7);
      Serial.println(losowaLiczba);
   
          }
        
      if (digitalRead(PRZYCISK) ==LOW) { //wyświetl liczbę tylko, jeśli naciśnięto przycisk
      wyswietlacz(-1); //jeśli chcesz wygasić wyświetlacz, to musisz dodać taką opcję - albo tak albo niezależna funkcja w stylu czysc()
      delay(PRZYCISK);//Czekaj na naciśnięcie przycisku
      wyswietlacz(losowaLiczba); //Wyswietl wartosc na wyswietlaczu
        
   }
 }  
void wyswietlacz(int cyfra) {

  //Instrukcja switch ustawia odpowiednie stany na wyjsciach
  //w zaleznosci od podanej cyfry
  switch (cyfra) {
    case -1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D, HIGH);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, HIGH);
        digitalWrite(SEG_G, HIGH);
     break;
     
    case 1:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
    break; 
    
    case 2:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B,  LOW);
        digitalWrite(SEG_C, HIGH);
        digitalWrite(SEG_D,  LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 3:
        digitalWrite(SEG_A,  LOW);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, HIGH);
    break; 
    
    case 4:
        digitalWrite(SEG_A, HIGH);
        digitalWrite(SEG_B, LOW);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 5:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, HIGH);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break; 
    
    case 6:
        digitalWrite(SEG_A, LOW);
        digitalWrite(SEG_B, HIGH);
        digitalWrite(SEG_C, LOW);
        digitalWrite(SEG_D, LOW);
        digitalWrite(SEG_E, LOW);
        digitalWrite(SEG_F, LOW);
        digitalWrite(SEG_G, LOW);
    break;
    }
}

Teraz mam tak--8 świeci na początku. Co przycisk naciśnięty to wyświetla inną liczbę z zakresu od 1 do 6.Coś nie wychodzi mi aby na początku wyświetlacz był zgaszony.Też nie wychodzi mi aby cyfra gasła po 2 sek. I czekał na naciśnięcie przycisku.Czasami losuje tą samą liczbę np. 2. i nie wiadomo czy to jest nowa czy już wylosowana.

Edytowano przez Kenshin
Link to post
Share on other sites

Panie @Kenshin (przy różnicy wieku 47 lat chyba muszę się tak wyrażać), aby zgasić wyświetlacz przy włączaniu musi Pan ustawić wszystkie wyjścia na HIGH na początku programu, dlatego że Pana wyświetlacz jest sterowany odwrotnie czyli HIGH to dioda zgaszona, a LOW to oświecona, aby gasić wyświetlacz 2s po losowaniu wystarczy delay(2000); i po opóźnieniu ustawić wszystkie wyjścia na HIGH. Radziłbym zajrzeć do Forbotowego kursu Arduino.

Edytowano przez aerograf7
Link to post
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

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.