Skocz do zawartości

Kurs Arduino - #9 - Czujnik odległości HC-SR04, funkcje


Komentator

Pomocna odpowiedź

int trigPin = 12;
int echoPin = 11;
int green1 = 3;
int green2 = 7;
int red1 = 5;
int red2 = 2;
int yellow1 = 6;
int yellow2 = 4;
void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(2, OUTPUT);
  pinMode(green1, OUTPUT);  //zielona
  pinMode(green2, OUTPUT);
  pinMode(red1, OUTPUT);  //czerwona
  pinMode(red2, OUTPUT);
  pinMode(yellow1, OUTPUT);
  pinMode(yellow2, OUTPUT);  //żółta
}

void loop() {
  zakresgreen1(6);    //odleglosc 5cm świeci
  zakresgreen2(10);   //odleglosc 10cm świeci
  zakresyellow1(15);  //odleglosc 15cm świeci
  zakresyellow2(20);  //odleglosc 20cm świeci
  zakresred1(25);     //odleglosc 25cm świeci
  zakresred2(30);     //odleglosc 30cm świeci

  Serial.print(zmierzOdleglosc());
  Serial.println(" cm");
  delay(100);
}
int zmierzOdleglosc() {
  long czas, dystans;

  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  czas = pulseIn(echoPin, HIGH);
  dystans = czas / 58;

  return dystans;
}

void zakresgreen1(int a) {
  int jakDaleko = zmierzOdleglosc();
  if ((jakDaleko >= a)) {  //jakDaleko większe lub równe 6cm świeci green1
    digitalWrite(green1, HIGH);
  } else {
    digitalWrite(green1, LOW);  //jesli jest mniejsze to gaśnie
  }
}
void zakresgreen2(int b) {
  int jakDaleko = zmierzOdleglosc();
  if ((jakDaleko >= b)) {  //jakDaleko większe lub równe 10cm świeci green2
    digitalWrite(green2, HIGH);
  } else {
    digitalWrite(green2, LOW);  //jesli jest mniejsze to gaśnie
  }
}
void zakresyellow1(int c) {
  int jakDaleko = zmierzOdleglosc();
  if ((jakDaleko >= c)) {  //jakDaleko większe lub równe 15cm świeci yellow1
    digitalWrite(yellow1, HIGH);
  } else {
    digitalWrite(yellow1, LOW);  //jesli jest mniejsze to gaśnie
  }
}
void zakresyellow2(int d) {
  int jakDaleko = zmierzOdleglosc();
  if ((jakDaleko >= d)) {  //jakDaleko większe lub równe 20cm świeci yellow2
    digitalWrite(yellow2, HIGH);
  } else {
    digitalWrite(yellow2, LOW);  //jesli jest mniejsze to gaśnie
  }
}
void zakresred1(int e) {
  int jakDaleko = zmierzOdleglosc();
  if ((jakDaleko >= e)) {  //jakDaleko większe lub równe 25cm świeci red1
    digitalWrite(red1, HIGH);
  } else {
    digitalWrite(red1, LOW);  //jesli jest mniejsze to gaśnie
  }
}
void zakresred2(int f) {
  int jakDaleko = zmierzOdleglosc();
  if ((jakDaleko >= f)) {  //jakDaleko większe lub równe 30cm świeci red2
    digitalWrite(red2, HIGH);
  } else {
    digitalWrite(red2, LOW);  //jesli jest mniejsze to gaśnie
  }
}

Moje rozwiązanie do zadania 9.4 to była super przygoda z nauką lecę poszerzać swoją wiedzę z kursem nr 2 :)))

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

include <Adafruit_NeoPixel.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

int trig = 3;
int echo = 2;
int redled = 8;
int yellowled = 9;
int greenled = 10;
int buzzer = 11;

#define NEOPIXEL_PIN 6
#define NUM_PIXELS 30

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_PIXELS, NEOPIXEL_PIN, NEO_GRB + NEO_KHZ800);

long czas;
int odleglosc;
int poprzednieOdczyty[10];
int indeksOdczytu = 0;

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(redled, OUTPUT);
  pinMode(yellowled, OUTPUT);
  pinMode(greenled, OUTPUT);
  pinMode(buzzer, OUTPUT);
  Serial.begin(9600);

  strip.begin();
  strip.show();

  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Odleglosc:");
}

void loop() {
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);

  czas = pulseIn(echo, HIGH);
  odleglosc = czas / 58;

  poprzednieOdczyty[indeksOdczytu] = odleglosc;
  indeksOdczytu = (indeksOdczytu + 1) % 10;
  int sumaOdczytow = 0;
  for (int i = 0; i < 10; i++) {
    sumaOdczytow += poprzednieOdczyty[i];
  }
  odleglosc = sumaOdczytow / 10;

  Serial.print("Odleglosc wynosi: ");
  Serial.print(odleglosc);
  Serial.println(" cm");

  lcd.setCursor(11, 1); // Ustaw kursor po słowie "Odleglosc"
  lcd.print("   "); // Wyczyść poprzednie dane
  lcd.setCursor(11, 1);
  lcd.print(odleglosc);
  lcd.print(" cm"); // Dodaj jednostkę po odległości

  if (odleglosc <= 30) {
    digitalWrite(redled, HIGH);
    digitalWrite(yellowled, LOW);
    digitalWrite(greenled, LOW);
    tone(buzzer, 900);
    for (int i = 0; i < NUM_PIXELS; i++) {
      strip.setPixelColor(i, strip.Color(255, 0, 0));
    }
    strip.show();
  } else if (odleglosc <= 50) {
    digitalWrite(redled, LOW);
    digitalWrite(yellowled, HIGH);
    digitalWrite(greenled, LOW);
    tone(buzzer, 400);
    for (int i = 0; i < NUM_PIXELS; i++) {
      strip.setPixelColor(i, strip.Color(255, 255, 0));
    }
    strip.show();
  } else {
    digitalWrite(redled, LOW);
    digitalWrite(yellowled, LOW);
    digitalWrite(greenled, HIGH);
    noTone(buzzer);
    for (int i = 0; i < NUM_PIXELS; i++) {
      strip.setPixelColor(i, strip.Color(0, 255, 0));
    }
    strip.show();
  }

  delay(100);

Hejka,

Mam delikatną sprawę, zrobiłem czujnik ultradźwiękowy plus wyświetlacz LCD plus diody led, neopixel8 oraz buzzer. Wszystko działa,  podam kod ale moja prośba brzmi czy może mnie ktoś poratować kodem np do Processing abym mógł dostać wizualny obraz tego co wykryje czujnik. Jestem początkującym elektronikiem, wiem że dużo pracy jeszcze przede mną ale taka pomoc na samym początku z pewnością by mi się przydała. Z góry dziękuję a teraz kod:

 

Edytowano przez jnowak
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

Witam 🙂

Poniżej rozwiązane zadania z obliczania pól:

-koła;

-trójkąta;

-prostokąta;

A na końcu :

-odległość pokazana za pomocą diod + buzzer

Pozdrawiam i dziękuję za świetne artykuły.

 

 

 

Obliczanie pola koła:

String odebraneDaneA = ""; //Pusty ciąg odebranych danych
String odebraneDaneB = "";


void setup()
{
  Serial.begin(9600);
  Serial.println("\nPodaj liczbę a, aby obliczyć pole kola."); //Intro
  Serial.println("Wciśnij enter.");
}

void loop()
{
  if(Serial.available() > 0) //Czy Arduino odebrało dane
  {
    odebraneDaneA = Serial.readStringUntil('\n'); //jeśli tak to odczytaj do końca linii
    double wynik = koloPole(odebraneDaneA.toDouble());
    Serial.print("3.14159");
    Serial.print(" * ");
    Serial.print("(");
    Serial.print(odebraneDaneA);
    Serial.print(" * ");
    Serial.print(odebraneDaneA);
    Serial.print(")");
    Serial.print(" = ");
    Serial.println(wynik); //wyświetl komunikat
  }
}
/*operacja zmiany typu zmiennej na inny oznaczamy rzutowaniem*/

double koloPole(double a)
{ 
  double wynik = 0;
  wynik = 3.14159 * (a*a);

  return wynik;
}

Obliczanie pola trojkata:

String odebraneDaneA = ""; //Pusty ciąg odebranych danych
String odebraneDaneH = "";

boolean prawda = true; //w celu przekierowania do podania kolejnej liczby

void setup()
{
  Serial.begin(9600);
  Serial.println("\nPodaj liczbę a i h, aby obliczyć pole trujkata."); //Intro
  Serial.println("Wciśnij enter, po podaniu każdej liczby");
}

void loop()
{
  if(prawda == true) //jeżeli podany warunek jest spełniony to
  if(Serial.available() > 0) //Czy Arduino odebrało dane
  {
    odebraneDaneA = Serial.readStringUntil('\n'); //jeśli tak to odczytaj do końca linii
    prawda = false;
  }
  if(prawda == false)
  if(Serial.available() > 0)
  {
    odebraneDaneH = Serial.readStringUntil('\n'); //jeśli tak to odczytaj do końca linii
    int wynik = trojkatPole(odebraneDaneA.toInt(), odebraneDaneH.toInt());
  
    Serial.print("(");
    Serial.print(odebraneDaneA);
    Serial.print(" * ");
    Serial.print(odebraneDaneH);
    Serial.print(")");
    Serial.print(" / ");
    Serial.print(" 2 ");
    Serial.print(" = ");
    Serial.println(wynik); //wyświetl komunikat
    prawda = true; //przyjmij true za prawdę, ażeby zacząć obliczanie od początku
  }
}
/*operacja zmiany typu zmiennej na inny oznaczamy rzutowaniem*/

int trojkatPole(int a, int h)
{ 
  int wynik = 0;
  wynik = (a * h) / 2;

  return wynik;
}



Obliczanie pola prostokąta:

String odebraneDaneA = ""; //Pusty ciąg odebranych danych
String odebraneDaneB = "";

boolean prawda = true; //żeby na każde wpisanie liczby był czas
void setup()
{
  Serial.begin(9600);
  Serial.println("\nPodaj dwie liczby, aby obliczyć pole prostokąta."); //Intro
  Serial.println("Po każdej podanej liczbie wciśnij enter.");
}

void loop()
{

  if(prawda == true)
  if(Serial.available() > 0) //Czy Arduino odebrało dane
  {
    odebraneDaneA = Serial.readStringUntil('\n'); //jeśli tak to odczytaj do końca linii
    prawda = false;
  }

  if(prawda == false)
  if(Serial.available() > 0) //Czy Arduino odebrało dane
  {
    odebraneDaneB = Serial.readStringUntil('\n'); //jeśli tak to odczytaj do końca linii
    int wynik = prostokatPole(odebraneDaneA.toInt(), odebraneDaneB.toInt());
    Serial.print(odebraneDaneA);
    Serial.print(" * ");
    Serial.print(odebraneDaneB);
    Serial.print(" = ");
    Serial.println(wynik); //wyświetl komunikat
    prawda = true;
  }
}
/*operacja zmiany typu zmiennej na inny oznaczamy rzutowaniem*/

int prostokatPole(int a, int b)
{ 
  int wynik = 0;
  wynik = a * b;

  return wynik;
}



Odległość pokazana za pomocą diod + buzzer

#define trigPin 12
#define echoPin 11

#define redLed1 3
#define redLed2 4
#define yellowLed1 5
#define yellowLed2 6
#define greenLed1 8
#define greenLed2 9 

#define buzzer 2

void setup()
{
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT); //Pin, do którego podłączamy trig jako wyjście
  pinMode(echoPin, INPUT); //a echo, jako wejście

  pinMode(redLed1, OUTPUT); //wyjście diod
  pinMode(redLed2, OUTPUT);
  pinMode(yellowLed1, OUTPUT);
  pinMode(yellowLed2, OUTPUT);
  pinMode(greenLed1, OUTPUT);
  pinMode(greenLed2, OUTPUT);

  pinMode(buzzer, OUTPUT); //wyjście dla buzzera
}

void loop()
{ 
 
  if((zmierzOdleglosc() < 1201) && (zmierzOdleglosc() >= 50)) //jeżeli odległość jest w przedziale od 50 do 1200 to
  {
    digitalWrite(greenLed2, HIGH); //zaświeć czerwone diody
    digitalWrite(greenLed1, HIGH);
    digitalWrite(yellowLed2, LOW);
    digitalWrite(yellowLed1, LOW);
    digitalWrite(redLed2, LOW);
    digitalWrite(redLed1, LOW);
  }
  else if((zmierzOdleglosc() <= 50 ) && (zmierzOdleglosc() >= 30)) //jeżeli odległość jest w przedziale od 50 do 30 to
  {
    digitalWrite(greenLed2, LOW);
    digitalWrite(greenLed1, LOW);
    digitalWrite(yellowLed2, HIGH); //zaświeć diody żółtte
    digitalWrite(yellowLed1, HIGH);
    digitalWrite(redLed2, LOW);
    digitalWrite(redLed1, LOW);
  }
  else if((zmierzOdleglosc() < 30) && (zmierzOdleglosc() >= 0)) //jeżeli odległość jest w przedziale od 29 do 0 to
  {
    digitalWrite(greenLed2, LOW);
    digitalWrite(greenLed1, LOW);
    digitalWrite(yellowLed2, LOW);
    digitalWrite(yellowLed1, LOW);
    digitalWrite(redLed2, HIGH); //zaświeć diody żółte
    digitalWrite(redLed1, HIGH);
  }

  zakres(10, 25); //włącz alarm jeśli wodległości od 10 do 25 cm jest przeszkoda
  Serial.print(zmierzOdleglosc());
  Serial.println(" cm");

  delay(500);

}

int zmierzOdleglosc()
{
  long czas, dystans;

  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  czas = pulseIn(echoPin, HIGH);
  dystans = czas / 58;

return dystans;
}

void zakres(int a, int b)
{
  int jakDaleko = zmierzOdleglosc();
  if((jakDaleko > a) && (jakDaleko < b))
  {
    digitalWrite(buzzer, HIGH); //włącz buzzer
  }
  else
  {
    digitalWrite(buzzer, LOW); //Wyłączamy buzzer,gdy obiekt poza zakresem 
  }
}

 

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

Zadanie domowe 9.1

void setup() {
pinMode(10, OUTPUT); // wyjście PWM
}

void loop() {
zamigajLED(); //miganie diodą w pętli
}
void zamigajLED(){ // funkja migania diodą
  int i = 0;
  for (i = 0; i < 255; i++) { //pętla rozjaśniająca
    analogWrite(10, i);
    delay(5);
  }
  for (i = 255; i > 0; i--) { //pętla przygaszająca
    analogWrite(10, i);
    delay(5);
  }
}

 

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

Zadanie domowe 9.3

#define trigPin 13
#define echoPin 8
#define LED1 2 //przypisanie nazw diod do pinów
#define LED2 3
#define LED3 4
#define LED4 5
#define LED5 6
#define LED6 7
 
void setup() {
  Serial.begin (9600); //komunikacja z UART (dla kontroli)
  pinMode(trigPin, OUTPUT); //Pin, do którego podłączymy trig jako wyjście
  pinMode(echoPin, INPUT); //a echo, jako wejście
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT); //wyjścia diod
}
 
void loop() {
  zakres(); //wykonywanie tej funkcji w pętli
  delay(25); //opóźnienie dla redukcji zakłóceń

}

int odleglosc() { //funckja zwracająca odległość w cm
  long czas, dystans;
 
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
 
  czas = pulseIn(echoPin, HIGH);
  dystans = czas / 58;
  Serial.println(dystans);
  return dystans;
}

void zakres() { //funkcja dzieląca odległość na podzakresy dla 6 diod i uruchamiająca je
  int jakDaleko = map(odleglosc(), 0, 130, 6, 1);
    switch(jakDaleko) {
    case 1:
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, LOW);
      digitalWrite(LED3, LOW);
      digitalWrite(LED4, LOW);
      digitalWrite(LED5, LOW);
      digitalWrite(LED6, LOW);
    break;
    case 2:
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, LOW);
      digitalWrite(LED4, LOW);
      digitalWrite(LED5, LOW);
      digitalWrite(LED6, LOW);
    break;
    case 3:
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, HIGH);
      digitalWrite(LED4, LOW);
      digitalWrite(LED5, LOW);
      digitalWrite(LED6, LOW);
    break;
    case 4:
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, HIGH);
      digitalWrite(LED4, HIGH);
      digitalWrite(LED5, LOW);
      digitalWrite(LED6, LOW);
    break;
    case 5:
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, HIGH);
      digitalWrite(LED4, HIGH);
      digitalWrite(LED5, HIGH);
      digitalWrite(LED6, LOW);
    break;
    case 6:
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
      digitalWrite(LED3, HIGH);
      digitalWrite(LED4, HIGH);
      digitalWrite(LED5, HIGH);
      digitalWrite(LED6, HIGH);
    break;

  }
}

 

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

(edytowany)

Cześć,

Moje rozwiązania:

Zadanie 9.1:
 

int fill = 0;
int step = 5;
bool isMax = false;
bool isLow = false;

void setup() {
  pinMode(3, OUTPUT);
}

void loop() {
  analogWrite(3, fill);
  dimmingLED();
}

void dimmingLED(){
  if (fill < 255 && isMax == false){
    fill = fill + step;
    if(fill == 255){
      isMax = true;
      isLow = false;
    }
  } else if(fill > 0 && isLow == false){
    fill = fill - step;
    if(fill == 0){
      isLow = true;
      isMax = false;
    }
  }

  delay(50);
}

Zadanie 9.2:

void setup() {
  //pinMode(13, OUTPUT);
  blinkLED(3, 1000, 2000, 5);
}

void loop() {

}

void blinkLED(int pin, int timeOn, int timeOff, int count){
  pinMode(pin, OUTPUT);
  for (int i = 0; i < count; i++){
    digitalWrite(pin, HIGH);
    delay(timeOn);
    digitalWrite(pin, LOW);
    delay(timeOff);
  }
}

 

Zadanie 9.3:

#define TRIGGPIN 10
#define ECHOPIN 11
#define PINLED2 2
#define PINLED3 3
#define PINLED4 4
#define PINLED5 5
#define PINLED6 6
#define PINLED7 7

int distance = 0;

void setup() {
  pinMode(TRIGGPIN, OUTPUT);
  pinMode(ECHOPIN, INPUT);
  Serial.begin(9600);

  // Ustawienie pinw od 2 do 7 jako OUTPUT oraz na stan LOW
  for(int i = 2; i < 8; i++){
    pinMode(i, OUTPUT);
    digitalWrite(i, LOW);
  }

}

void loop() {
  distance = calculateDistance(); 
  distanceLED(distance);
  delay(300);
}

// Funkcja wykonująca pomiary oraz zwracająca odległość w cm
int calculateDistance() {
  long echoTime, distance = 0;

  digitalWrite(TRIGGPIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIGGPIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGPIN, LOW);

  echoTime = pulseIn(ECHOPIN, HIGH);
  distance = echoTime / 58;

  return distance;
}

// Funkcja wyłączająca LEDy poza numerem LED przekazanym do funkcji
void turnOffLED(int excludeLED){
    for (int i = 0; i < excludeLED; i++){
      digitalWrite(i, LOW);
  }
}

// Funkcja włączająca LEDy w zależności od argumentów przekazanych do funkcji
void turnOnLED(int firstLED, int lastLED){
  for(firstLED; firstLED < lastLED; firstLED++){
    digitalWrite(firstLED, HIGH);
  }
}

// Funkcja włączająca i wyłączająca LEDy z logiką
void distanceLED(int distance){
  if (distance >= 0 && distance <= 50){
    turnOffLED(7);
    digitalWrite(PINLED7, HIGH);
  }else if(distance > 50 && distance <= 100){
    turnOffLED(6);
    turnOnLED(PINLED6, PINLED7);
  }else if(distance > 100 && distance<= 150){
    turnOffLED(5);
    turnOnLED(5, 7);
  }else if(distance > 150 && distance <= 200){
    turnOffLED(4);
    turnOnLED(4, 7);
  }else if(distance > 200 && distance <= 250){
    turnOffLED(3);
    turnOnLED(3, 7);
  }else if(distance > 250){
    turnOnLED(2, 7);
  }


}



 

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

void setup() {
  pinMode(11, OUTPUT); //pin 13 is configuration as output
}

void loop() {
  zamigajLED();
}

void zamigajLED () {
  for(int fill = 0; fill <= 255; fill++) {
    analogWrite(11, fill);
    delay(25);
  }
  for(int fill = 255; fill >= 0; fill--) { 
    analogWrite(11, fill);
    delay(25);
  }
}

zadanie 9.1

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

void setup() {
  pinMode(11, OUTPUT); //pin 13 is configuration as output
  zamigajLED(500, 100, 5);
}

void loop() {
  
}

void zamigajLED(int time_1, int time_2, int number) {
  for(int i = 0; i < number; i++) {
    digitalWrite(11, HIGH);
    delay(time_1);
    digitalWrite(11, LOW);
    delay(time_2);
  }
}

Zadanie 9.2

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.