Skocz do zawartości

piotr_1998-09

Użytkownicy
  • Zawartość

    1
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O piotr_1998-09

  • Ranga
    1/10
  1. piotr_1998-09

    Kurs Arduino - #4 - Przetwornik ADC

    Witam! To mój pierwszy post na forum. Oto moja propozycja do zadania 4.5. Co sądzicie o moim rozwiązaniu? #define zolta 10 //Zdefiniowanie pinów #define czerwona 9 #define zielona 8 #define przycisk 7 //Wartosci poczatkowe int wartoscOdczytana = 0; //odczytana z wejscia analogowego String wartoscPodana = ""; //podana przez uzytkownika int naszaLiczba = 0; //podana przez uzytkownika zamieniona na inta int proba = 1; //ilosc prob boolean reset = true; //wartosc do kontynuowania gry String kontynuacja = ""; //string otrzymujacy odpowiedz tak lub nie do kontynuacji gry void setup() { Serial.begin(9600); //rozpoczecie transmisji //Okrelenie trybow odpowiednich pinow pinMode(zolta, OUTPUT); pinMode(czerwona, OUTPUT); pinMode(zielona, OUTPUT); pinMode(przycisk, INPUT_PULLUP); digitalWrite(zolta, LOW); digitalWrite(czerwona, LOW); digitalWrite(zielona, LOW); } void loop() { if (reset) { Serial.print("Proba nr. "); //Wyswietlanie numeru proby Serial.println(proba); if (proba == 1) { //Przekrecenie potencjometru i wcisniecie przycisku tylko dla pierwszej proby Serial.println("Przekrec potencjometr i wcisnij przycisk"); while (digitalRead(przycisk) == HIGH) {}; //dopoki nie wcisniemy przycisku if (digitalRead(przycisk) == LOW) { //jesli wcisniemy przycisk wartoscOdczytana = analogRead(A5); //odczytanie wartosci napiecia z dzielnika //Serial.println("Wartosc Odczytana: "); (tylko dla testow) //Serial.println(wartoscOdczytana); Serial.println('\n'); //dla przejrzystosci programu } } Serial.println("Podaj liczbe: "); while (!Serial.available()) {}; //dopoki nie podamy znaku if (proba != 4) { // tylko jesli to 1, 2 lub 3 proba if (Serial.available() > 0) { wartoscPodana = Serial.readStringUntil('\n'); //podajemy liczbe naszaLiczba = wartoscPodana.toInt(); //liczba ze stringa zamieniana na inta } Serial.println(naszaLiczba); //wysietlnie naszej liczby Serial.println('\n'); //dla przejrzystosci if ((wartoscOdczytana - 50) <= naszaLiczba and (wartoscOdczytana + 50) >= naszaLiczba) //jesli naszaLiczba jest z zakresu <wartoscOdczytana-50;wartoscOdczytana+50> { digitalWrite(czerwona, LOW); digitalWrite(zolta, LOW); digitalWrite(zielona, HIGH); //zapala sie zielona dioda Serial.println("WYGRALES!!!"); delay(1000); //Kontynuacja gry Serial.println("Chcesz grac dalej? Wpisz 'tak' lub 'nie' "); while (!Serial.available()) {}; //dopoki nie podamy naszej odpowiedzi kontynuacja = Serial.readStringUntil('\n'); //nasza odpowiedz if (kontynuacja == "tak") //jeśli chcemy kontynuowac { reset = true; //warunek kontynuowania gry proba = 1; //ustawiamy zmienna proba na 1, aby program działał poprawnie digitalWrite(zielona, LOW); //wylaczamy zielona diode Serial.println('\n'); } else { reset = false; //warunek kończący grę } } else //w przeciwnym wypadku gdy nie trafilismy liczby { digitalWrite(zolta, HIGH); //zapala sie żółta dioda,ktora caly czas swieci i oznacza ze zostaly 2 proby digitalWrite(czerwona, HIGH); //zapala sie czerwona dioda sygnalizujaca zle trafienie delay(1000); digitalWrite(czerwona, LOW); //dioda czerwona gasnie proba = proba + 1; //liczba prob maleje o jedna } } if (proba == 4) //jesli to byla ostatnia proba { digitalWrite(zolta, LOW); //dioda żółta gaśnie Serial.println("Przegrales!!!"); delay(1000); //Warunek kontynuacji, tak samo jak wyżej w przypadku wygranej Serial.println("Chcesz grac dalej? Wpisz 'tak' lub 'nie' "); while (!Serial.available()) {}; kontynuacja = Serial.readStringUntil('\n'); if (kontynuacja == "tak") { reset = true; proba = 1; Serial.println('\n'); } else { reset = false; } } } else //w przypadku gdy konczymy gre { Serial.println("Koniec!"); //wszystkie diody sa wylaczone digitalWrite(zielona, LOW); digitalWrite(zolta, LOW); digitalWrite(czerwona, LOW); while (true); //petla nieskonczona, ktora powoduje zakonczenie programu } }
×