Skocz do zawartości

igor

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

Osiągnięcia użytkownika igor

Młodszy odkrywca

Młodszy odkrywca (3/19)

  • To już rok!
  • To już 5 lat!

Odznaki

3

Reputacja

  1. 4.4 int wartoscA5 = 0; int prog = 0; boolean wyslano = false; void setup() { pinMode(8, OUTPUT); Serial.begin(9600); } void loop() { wartoscA5 = analogRead(A5); prog = analogRead(A4); if (wartoscA5 < prog) { digitalWrite(8, HIGH); if (wyslano == false) { Serial.println(wartoscA5); wyslano = true; } } else { digitalWrite(8, LOW); wyslano = false; } delay(100); } Da się jakoś bez tworzenia zmiennej "wyslano"? 4.5 // Przypisanie pinów. #define led_zolta 8 #define led_zielona 7 #define led_czerwona 9 #define przycisk 5 #define pin_odczyt A4 int odczyt = 0; // odczyt z potencjometru String podana_liczba = 0; // liczba podana przez gracza int podana_liczba_int = 0; // liczba podana przez gracza przekształcona na zmienną int byte proby = 2; // ilość prób jakie pozostały do końca gry boolean od_nowa = true; // czy gramy od nowa, czy kontynuujemy grę void setup() { pinMode(przycisk, INPUT_PULLUP); pinMode(led_czerwona, OUTPUT); pinMode(led_zielona, OUTPUT); pinMode(led_zolta, OUTPUT); Serial.begin(9600); } void loop() { if (od_nowa == true) { // jeśli rozpoczynamy grę lub gramy od nowa proby = 2; digitalWrite(led_zielona, LOW); digitalWrite(led_zolta, LOW); digitalWrite(led_czerwona, LOW); while(!Serial) delay(10); // czekamy na otwarcie serial monitora Serial.println("Przekrec potencjometr i nacisnij przycisk."); while (digitalRead(przycisk) ==LOW) delay(20); // czekamy na zwolnienie przycisku po wznowieniu gry while (digitalRead(przycisk) == HIGH) delay(20); // czekamy na wciśnięcie przycisku odczyt = analogRead(pin_odczyt); // sczytujemy ustawienie potencjometru Serial.println("Podaj liczbe z zakresu 0 - 1023."); } while (Serial.available() == 0); // czekamy na podanie liczby podana_liczba = Serial.readStringUntil('\n'); podana_liczba_int = podana_liczba.toInt(); // zamieniamy zmienną string na int if (odczyt - podana_liczba_int <= 50 && odczyt - podana_liczba_int >= -50) { // jeśli podana liczba jest +-50 równa odczytowi Serial.println("Udalo Ci sie trafic! Brawo."); digitalWrite(led_zielona, HIGH); digitalWrite(led_zolta, LOW); od_nowa = true; Serial.println("Jesli chcesz zagrac ponownie - nacisnij przycisk."); while (digitalRead(przycisk) == HIGH) delay(20); // czekamy na naciśnięcie przycisku } else { // jeśli podana liczba nie jest +-50 równa odczytowi if (proby > 0) { // jeśli mamy jeszcze próby od_nowa = false; // nie rozpoczynamy od nowa digitalWrite(led_zolta, HIGH); Serial.print("Nie trafiles. Pozostalo prob: "); Serial.println(proby); Serial.println("Podaj kolejna liczbe:"); proby --; // odejmujemy jedną próbę while(Serial.available() == 0); // czekamy na podanie kolejnej liczby } else { // nie mamy już prób digitalWrite(led_czerwona, HIGH); digitalWrite(led_zolta, LOW); Serial.println("Przegrales. Jesli chcesz zagrac ponownie - nacisnij przycisk."); od_nowa = true; // rozpoczynamy następną grę od nowa while (digitalRead(przycisk) == HIGH) delay(20); // czekamy na naciśnięcie przycisku } } delay(5); } Tu też nie wiem czy optymalnie to napisałem...
  2. Ja zrobiłem tak: #define zielona 8 #define czerwona 9 String odebraneDane = ""; boolean stanCzerwonej = false; boolean stanZielonej = false; void setup() { Serial.begin(9600); pinMode(zielona, OUTPUT); pinMode(czerwona, OUTPUT); digitalWrite(zielona, LOW); digitalWrite(czerwona, LOW); } void loop() { if(Serial.available() > 0) { odebraneDane = Serial.readStringUntil('\n'); if (odebraneDane == "zielona") { stanZielonej = !stanZielonej; } if (odebraneDane == "czerwona") { stanCzerwonej = !stanCzerwonej; } if (odebraneDane != "czerwona" && odebraneDane != "zielona") { Serial.println("Nieprawidlowy kolor! Wpisz 'zielona' lub 'czerwona'."); } digitalWrite(zielona, stanZielonej); digitalWrite(czerwona, stanCzerwonej); } } Może być?
  3. Nie wiem dlaczego ten ostatni kod (z while) u mnie nie działa... Świeci się dioda 8 niezależnie od naciśnięć... Co mogę robić nie tak? Dodatkowo w tym ostatnim kodzie, a konkretniej w komentarzach jest jak dla mnie nieścisłość... Mianowicie jest na pisane: while (digitalRead(7) == HIGH) {} //Jeśli przycisk jest wciśnięty A wcześniej sam pisałeś: while (digitalRead(7) == LOW) { //Jeśli przycisk jest wciśnięty Pozdrawiam. PS. Fajny kurs, forum i blog 🙂 edit: Już wiem co było nie tak. Miałem między przyciskiem a masą rezystor, tak jak w diodach 😋 Ale co dziwne w innych kodach taki układ działał, a w tym ostatnim "while-owym" z bloga już nie... Hmm...
×
×
  • 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.