Skocz do zawartości

Kurs Arduino - #10 - wykresy, liczby losowe, warunki cd.


Komentator

Pomocna odpowiedź

1 godzinę temu, StefanekP napisał:

Jest dużo warsztatów i obozów z programowania(przynajmniej w mojej okolicy, np. politechnika warszawska organizuje dużo obozów naukowych

Hehe, no Ty chyba jesteś tu uprzywilejowany. Co stolica to stolica!

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

@StefanekP to pewnie zależy co dokładnie chcesz robić. W programiowaniu embedded na pewno znajomość działania czujników i czytanie datasheet jest ważne. Gdybyś chciał np robić automatykę domowa to i tak używa się głównie gotowców już więc bardziej przydaje się ich znajomość niż datasheet. Przynajmniej z tego co rozmawiam ze znajomymi.

Z projektami to zasadniczy problem jest taki że nawet gdy znajdziesz inspiracje w necie to gdy masz robić tylko dla siebie to się tak nie chcę. Dlatego w tym wypadku robienie projektów na studia czy szkole jest dużo bardziej motywujące. 

Link do komentarza
Share on other sites

10 minut temu, Dantey napisał:

Dlatego w tym wypadku robienie projektów na studia czy szkole jest dużo bardziej motywujące. 

Niestety, do studiów mam jeszcze parę lat. Nie wiem, co rozumiesz przez robienie projektów do szkoły, wątpię żeby to było możliwe. Pomijając już fakt, że w szkole już nie byłem w stanie wytrzymać i po 6 klasie się zapisałem na edukację domową. Ale myślę, że jakbym już miał jakiś fajny pomysł to mógłbym go zrealizować dla samej przyjemności z robienia.😃

Edytowano przez StefanekP
Link do komentarza
Share on other sites

11 minut temu, StefanekP napisał:

Pomijając już fakt, że w szkole już nie byłem w stanie wytrzymać i po 6 klasie się zapisałem na edukację domową.

No nie mów, że w Warszawie nie można znaleźć fajnej szkoły! Fajnej i z kolegami, którzy też mieliby elektrozajawkę. To motywuje, jak jest jakaś mała rywalizacja.

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

52 minuty temu, trainee napisał:

No nie mów, że w Warszawie nie można znaleźć fajnej szkoły! Fajnej i z kolegami, którzy też mieliby elektrozajawkę. To motywuje, jak jest jakaś mała rywalizacja.

Może i można ale trzeba mieć farta. Poza tym elektroniką zacząłem się interesować dopiero jak się stamtąd wypisałem

 

Link do komentarza
Share on other sites

@StefanekP no trudno. Masz po prostu większe wyzwanie przed sobą, musząc motywować się samemu. Będziesz od tego lepiej zahartowany. 🙂

A tak, to jak sam sugerowałeś z tymi warsztatami z programowania itp. Rozglądaj się, może trafi się coś z elektroniką, np. na uczelni pod opieką tamtejszych pracowników. W ostateczności, jak masz zapał, to możesz zaatakować uczelnię, znaleźć jakiegoś prowadzącego zajęcia i zaczepić, czy da się gdzieś zaczepić. Może eksternistycznie jakiś wykład odwiedzić? Na stronach uczelni pewnie możesz posprawdzać jakie są przedmioty, kto prowadzi, znaleźć adres mail tego ktosia.

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

3 godziny temu, StefanekP napisał:

@Dantey 

@Dustek, że mało kto w tym wieku interesuje się elektroniką to się zgadzam ale myślę że jest sporo osób interesujących się programowaniem. Jest dużo warsztatów i obozów z programowania(przynajmniej w mojej okolicy, np. politechnika warszawska organizuje dużo obozów naukowych, ale myślę, że w innych miejscach też).

Skupiałem się bardzo pod programowanie Arduino, ale to był mój błąd faktycznie - dużo młodych osób interesuje się programowaniem.

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

568816443_wykresfotorezystorw.thumb.png.32ef09a9d24013947caf00a3e4bff43f.pngimage.thumb.png.a86d6d5c073483a437cc7254716888b8.png

void setup() {
  
  randomSeed(analogRead(A0)) ;
  Serial.begin(9600) ;
}
void loop() {

   int liczba = random(0,101) ;
   
   if(liczba < 10 || liczba > 90)
    Serial.println("zakres < 10 || > 90") ;
   
   if((liczba > 50) && (liczba >= 70 != liczba <= 85))
    Serial.println("zakres > 50 != 70-85") ; 
   
   if(liczba == 50 || liczba == 40 || liczba == 30 || liczba == 20)
    Serial.println("zakres 50 , 40 , 30 , 20") ;
   
   if((liczba >= 10 && liczba <= 40) || (liczba >= 60 && liczba <= 100))
    Serial.println("zakres 10 - 40 || 60 - 100") ;    

   Serial.print("\t\t WYLOSOWANA LICZBA : ") ;
   Serial.println(liczba) ;
   delay(1000) ;
}

 

I dotarłem na koniec rozdziału :] 

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

Witam wszystkich serdecznie.

Jest to mój pierwszy wpis na forum, więc na początku chcę podziękować Trekerowi, za kawał bardzo dobrej roboty. Kursy są naprawdę na wysokim poziomie, zestawy do kursów bardzo dobrze przygotowane, FULL profeska ;). Ukończyłem Elekronikę I i II oraz Arduino I. Jestem MEGA zadowolony z Twoich publikacji, tylko tak dalej.

Zadanie 10.3 (Trochę rozbudowałem 🙂 )

#define button 8
byte humanPlayer = 0;
byte compPlayer = 0;

void setup()
{
  pinMode(button, INPUT_PULLUP);
  Serial.begin(9600);
  randomSeed(analogRead(5));
  menu();
}

void loop()
{
  static byte diceValue1 = 0;
  static byte diceValue2 = 0;
  
  while(digitalRead(button) == HIGH)
  {
  }
    diceValue1 = random(1, 7);
    dice(diceValue1);
    Serial.println("\n\t\tTeraz MOJ rzut!! Wcisnij przycisk!!!\n");
    delay(100);
  

  while(digitalRead(button) == HIGH)
  {
  }
    delay(random(1000, 2000));
    diceValue2 = random(1, 7);
    dice(diceValue2);
    delay(100);

    if(diceValue1 > diceValue2)
    {
      Serial.println("\n\t\tWYGRALES!!!\n");
      humanPlayer ++;
      repeat();
    }
    else if(diceValue1 < diceValue2)
    {
      Serial.println("\n\t\tJA WYGRALEM!!!\n");
      compPlayer ++;
      repeat();
    }
    else if(diceValue1 == diceValue2)
    {
      Serial.println("\n\t\tMAMY REMIS!!!\n");
      repeat();
    }
}


void menu()
{
  Serial.println("\t\t\t*************************");
  Serial.println("\t\t\t**     GRA w kosci     **");
  Serial.println("\t\t\t*************************\n\n");
  Serial.println("\t\tWcisnij przycisk aby rzucic koscia!!!\n");
}

void repeat()
{
  Serial.print("\t\tStan GRY: ### TY ");
  Serial.print(humanPlayer);
  Serial.print(" ###   ### COMP ");
  Serial.print(compPlayer);
  Serial.println(" ###\n");
  Serial.println("\t\tWcisnij przycisk aby zagrac ponownie...\n\n\n\n\n\n\n\n\n");
  while(digitalRead(button) == HIGH)
  {
  }
  delay(100);
}

void dice(byte value)
{
  switch(value)
  {
    case 1:
    Serial.println("\t\t\t******************");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*       **       *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t******************");
    break;

    case 2:
    Serial.println("\t\t\t******************");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*       **       *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*       **       *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t******************");
    break;
    
    case 3:
    Serial.println("\t\t\t******************");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*   **           *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*       **       *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*           **   *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t******************");
    break;
    
    case 4:
    Serial.println("\t\t\t******************");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*   **      **   *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*   **      **   *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t******************");
    break;
    
    case 5:
    Serial.println("\t\t\t******************");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*   **      **   *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*       **       *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*   **      **   *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t******************");
    break;
    
    case 6:
    Serial.println("\t\t\t******************");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*   **      **   *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*   **      **   *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t*   **      **   *");
    Serial.println("\t\t\t*                *");
    Serial.println("\t\t\t******************");
    break;
  }
}

Teraz biorę się za Arduino II , myślę że już jestem gotowy.

Pozdrawiam 🙂

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

Zad. 10.4


void setup()
{
  pinMode(7, INPUT_PULLUP);
  Serial.begin(9600);
  randomSeed(analogRead(A0));
}

void loop()
{
  Serial.print("\tWcisnij przycisk aby wylosowac liczbe z zakresu 0-100:\t");

  while(digitalRead(7) == HIGH)
  {
  }

  byte liczba = random(101);
  Serial.println(liczba);
  Serial.println("\n\n");
  
  Serial.print("\tZakres (10 > x > 90)                    ");
  Serial.println(warunek1(liczba));

  Serial.print("\tZakres (50 < x != (70-85)               ");
  Serial.println(warunek2(liczba));

  Serial.print("\tZakres (x = 20, 30, 40 lub 50)          ");
  Serial.println(warunek3(liczba));

  Serial.print("\tZakres (10 <= x <= 40 lub 60 <= x <=100)");
  Serial.println(warunek4(liczba)); 
  
  delay(200);
}

String warunek1(byte liczba)
{
  if(liczba < 10 || liczba > 90)
  {
    return "\t\tWartosc miesci sie w zakresie.\n\n";
  }
  else
  {
    return "\t\tWartosc poza zakresem.\n\n";
  }
}

String warunek2(byte liczba)
{
  if(liczba > 50 && liczba != (liczba >= 70 && liczba <= 85))
  {
    return "\t\tWartosc miesci sie w zakresie.\n\n";
  }
  else
  {
    return "\t\tWartosc poza zakresem.\n\n";
  }
}

String warunek3(byte liczba)
{
  if(liczba == 20 || liczba == 30 || liczba == 40 || liczba == 50)
  {
    return "\t\tWartosc miesci sie w zakresie.\n\n";
  }
  else
  {
    return "\t\tWartosc poza zakresem.\n\n";
  }
}

String warunek4(byte liczba)
{
  if((liczba >= 10 && liczba <= 40) || (liczba >= 60 && liczba <= 100))
  {
    return "\t\tWartosc miesci sie w zakresie.\n\n";
  }
  else
  {
    return "\t\tWartosc poza zakresem.\n\n";
  }
}

 

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

Udało się! Kurs Arduino poziom I zakończony pozytywnie

Gdyby ktoś potrzebował pomocy, poniżej podrzucam własne spostrzeżenia oraz działające kody programów do zadań domowych 😉

1️⃣ Zadanie domowe 10.1

214120475_Wykres10.1.thumb.jpg.d160584a852e90ef948f5bb12695bb89.jpg

int odczytanaWartosc_L = 0;
int odczytanaWartosc_P = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  odczytanaWartosc_L = analogRead(A5);
  odczytanaWartosc_P = analogRead(A4);

  Serial.print(odczytanaWartosc_L);
  Serial.print("\t");
  Serial.print(odczytanaWartosc_P);
  Serial.println("");
}

2️⃣ Zadanie domowe 10.2

Wpisując stałą wartość, zamiast ziarna odczytywanego z wejścia analogowego, często dochodzi do otrzymania identycznego ciągu wartości losowych ale nie za każdym razem 📊

3️⃣ Zadanie domowe 10.3

Elektroniczna 6-cio stronna kostka do gry. Idealne rozwiązanie na planszówkowy wieczór 🎲

#define przycisk 8

void setup() {
  pinMode(przycisk, INPUT_PULLUP);
  
  Serial.begin(9600);
  randomSeed(analogRead(0));

  Serial.println("*** Elektroniczna 6-cio stronna kosta do gry ***");
  Serial.println();
}

void loop() {
  Serial.println("Nacisnij przycisk");
  
  while (digitalRead(przycisk) == HIGH) {} //Czekaj do momentu wcisnięcia przycisku
  delay(50);
  
  Serial.println("Wylosowana liczba to:");
  Serial.println(random(1, 7));            //Kostka 6-cio stronna
  Serial.println();
  delay(500);
}

4️⃣ Zadanie domowe 10.4

int liczba = 0;

void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(0));
  Serial.println("Losowanie wartosci z zakresu od 0 do 100");
  Serial.println();
}

void loop() {
  int liczba = random(0, 101); //Wartosc z zakresu 0 - 100

  Serial.println(liczba);
  delay(2000);

  if (liczba < 10 || liczba > 90) {
    Serial.println("Wylosowana wartosc:");
    Serial.println("- jest mniejsza od 10 lub wieksza od 90");
    Serial.println();
    delay(2000);
  } else if ((liczba > 50) && (liczba < 70 || liczba > 85)) {
    Serial.println("Wylosowana wartosc:");
    Serial.println("- jest wieksza od 50 ale nie miesci sie w przedziale 70 - 85");
    Serial.println();
    delay(2000);
  } else if (liczba == 50 || liczba == 40 || liczba == 30 || liczba == 20) {
    Serial.println("Wylosowana wartosc:");
    Serial.println("- jest rowna 50, 40, 30, lub 20");
    Serial.println();
    delay(2000);
  } else if ((liczba > 10 && liczba < 40) || (liczba > 60 && liczba < 100)) {
    Serial.println("Wylosowana wartosc:");
    Serial.println("- miesci sie w zakresie od 10 do 40 lub od 60 do 100");
    Serial.println();
    delay(2000);
  } else {
    Serial.println("Wylosowana wartosc:");
    Serial.println("- nie miesci sie w zadnym z przyjetych wariantow");
    Serial.println();
    delay(2000);
  }
}
Link do komentarza
Share on other sites

Dnia 6.05.2023 o 12:15, Wejmon napisał:

Udało się! Kurs Arduino poziom I zakończony pozytywnie

Gratulacje 🙂 Zachęcam do lektury kolejnego kursu z tej serii - będziesz mógł sprawdzić jak idzie Ci podczas tworzenia jeszcze bardziej zaawansowanych projektów.

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