Skocz do zawartości

Norbert7630

Użytkownicy
  • Zawartość

    41
  • Rejestracja

  • Ostatnio

Reputacja

3 Neutralna

O Norbert7630

  • Ranga
    3/10

Ostatnio na profilu byli

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

  1. Witam znalazłeś rozwiązanie tego problemu?
  2. Coś mi z tą 4 nie za bardzo pasowało to tak jakby miał być case 4: którego nie ma ech......nie komentuje nawet tego swojego myślenia przepraszam @SOYER
  3. yyy.................no tak tym razem znowu się myliłem zmieniłem trochę kod i jest chwilowe życie: #define przyciskWylacz 11 //zdefiniowane piny dla przycisków #define przyciskZielona 9 #define przyciskCzerwona 10 #define diodaLedZielona 2 //zdefiniowane piny dla diod Led #define diodaLedCzerwona 3 int przyciskKolor = 1; //zmienna z przypisaną wartością void setup() { pinMode(przyciskWylacz, INPUT_PULLUP); //ustawienie pinów dla przycisków " wejście" podciągnięty pinMode(przyciskZielona, INPUT_PULLUP); //rezystor wewnętrzny PULLUP pinMode(przyciskCzerwona, INPUT_PULLUP);
  4. No dobrze@SOYER skoro się tak uparłeś że można coś więcej mnie nauczyć, to może teraz rozwieje twoje nadzieje i napisze ci jak ja to zrozumiałem. piszesz że switch jest jak if ? no to ok tak programowo: if = switch if(warunek) = case warunek: i co ma się wykonać czyli ten blok programu miałby wyglądać tak? switch (przyciskKolor){ case 1: if (digitalRead(przyciskZielona)== LOW){ digitalWrite(diodaLedZielona, HIGH); przyciskKolor=1; } delay(100); break; no i teraz już wiesz jaki ciężki przypadek ze mnie, bo wiesz także że ten kod b
  5. Cześć @SOYER , nie wiem co ci napisać bo już mam dosyć tego całego menu i chyba dam sobie z tym spokój, ot kolejna porażka i tyle. Ale zanim to nastąpi to wbrew temu co mówiłeś wyciągnąłem płytkę UNO bo się już bardzo kurzyła i sprawdziłem program. Oczywiście nie ten z menu bo i tak by nie działał ale program napisany przeze mnie taki przykładowy żeby sprawdzić czy teorie potrafię przekuć w praktykę: #define przyciskWylacz 11 //zdefiniowane piny dla przycisków #define przyciskZielona 9 #define przyciskCzerwona 10 #define diodaLedZielona 2 //zdefiniowane piny dla diod Led #define dioda
  6. Należy pamiętać o tym, że operator = służy do przypisania zmiennej wartości, a operator == do sprawdzenia czy dane wyrażenie (zmienna) jest równe wartości. Ostatni element, czyli i++ jest inkrementacją zmiennej licznikowej (czyli, co obieg pętli wartość zmiennej zwiększana jest o jeden). Równie dobrze można ten zapis zamienić na i = i + 1
  7. no właśnie idę jeszcze raz zaglądnąć do tej części kursu bo z tym mam problem
  8. case 1: lcd.clear(); lcd.print(">POZYCJA 1"); lcd.setCursor(0, 1); lcd.print(" POZYCJA 2"); if (digitalRead(selectButton)==LOW) { //jesli przycisk wciśnięty numerEkranu++; //przejdz do następnego ekranu tylko tutaj nie wiem czy przypadkiem nie powinno być numerEkranu = 3; a nie numerEkranu++; mam wrażenie że numerEkranu++ to tak jakby przeskoczenie o jeden ekran czyli do 2 więc case 2: ciężko mi teorie zamienić na praktykę
  9. int numerEkranu = 1; //zmienna z przypisaną wartością switch(numerEkranu){ //instrukcja switch ze zmienną case 1: //warunek do porównania ze zmienną jeżeli jest równy zmiennej ten case się wykona, jeżeli nie to przejdzie do następnego dobrze? wiesz co @SOYER jestem gamoń ale chyba mam dużo szczęścia:
  10. @SOYER to właśnie zrobiłem, podstaw sobie co ci pasuje i pomyśl że to ja zrobiłem, ja wiem że zmienna x nie może być porównana z żadnym case które wymieniłem tam, ale mi nie chodzi o szczegóły, a jedynie sens zrozumienia samego działania tej instrukcji czy ja wiem czy nie wiem
  11. Może na wyżej wspomnianym przykładzie w switchu zmienna - x, w case warunek do sprawdzenia ze zmienną, warunków case jest kilka, do pinu A5 podpięty regulowany dzielnik napięcia czyli potencjometr, zwiększa lub zmniejsza odczyt ADC, chcemy dokonać odczytu wartości z pinu A5 w formie binarnej, szesnastkowej itp. Każdy case ma przypisaną czynność związaną z odczytem tych wartości case d:, case h:, itp te literki w case po spacji to warunki i teraz jeżeli do monitoru portu szeregowego wpiszemy literkę ,,d,, to mikrokontroler odczyta bieżąca wartość jaka jest na A5 i wyświetli ja na ekranie moni
  12. else if (digitalRead(selectButton)==LOW) { numerEkranu++; lcd.clear(); lcd.print(">START "); lcd.setCursor(0, 1); lcd.print(" STOP "); tylko to mi przychodzi do głowy, żeby wstawić w case 1 aby móc przejść do START/STOP, nie wiem, muszę uciekać do pracy. Pozdrawiam
  13. no to leże, zupełna pustka w głowie......sądziłem że 3 ekran to START/STOP .....POZYCJA 1 → wciskam przycisk select i wchodzę do ekranu START/STOP....ale dowolny przycisk???? Nie wiem już sam tego trochę nie rozumie pętli? case(1): lcd.clear(); lcd.print(">POZYCJA 1"); lcd.setCursor(0, 1); lcd.print(" POZYCJA 2"); if (digitalRead(downButton)){ //jeśli wciśnięty przycisk numerEkranu++; // przejdź do następnego ekranu delay(100); break; i tutaj mam coś zmienić żeby przejść z case 1: do case 3: ?
  14. i wydaje mi się że przechodzenie z ekranu 1, do ekranu 2 powinno już zadziałać, no nie sprawdzałem bo nie pozwoliłeś ale wydaje mi się że marker przesuwałby się z POZYCJA 1 do POZYCJA 2 przy użyciu przycisków DOWN i UP, tyle że zamieniłbym kolejność wykonywania operacji w case : najpierw wciśnięcie przycisku, a potem wyświetlenie na lcd. Nie wiem mogę się mylić ale jak ktoś napisał że kod wykonuje się linijka po linijce to chyba lepiej w takiej kolejności najpierw przycisk a potem lcd.
×
×
  • 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.