Skocz do zawartości

Norbert7630

Użytkownicy
  • Zawartość

    106
  • Rejestracja

  • Ostatnio

Reputacja

21 Dobra

Ostatnio na profilu byli

303 wyświetleń profilu
  1. Muszę doczytać o tym bo mam taki mętlik w głowie że nic już nie mogę wymyśleć, sprawdzałem linijka po linijce czy czegoś nie zapomniałem, bo jak słusznie zauważył@bjrk kopiuj wklej to nie dobra metoda a przy tylu skasowaniach i pisaniu na nowo, i gdzie nie gdzie kopiuj wklej żeby było szybciej, to mogłem coś pominąć lub źle dopisać. Ale nie widzę żeby w którymś case brakowało zakończenia break;. Ogólnie bloki kodu są w jednej pętli głównej, program sprawdza w kółko ale wyświetla dane z case 1 w menuGlowne(), jeżeli wcisnę przycisk enter to powinien przeskoczyć do case 1 w funkcji menuSilnik1()
  2. menuEkran == 1; to jest błąd powinno być menuEkran = 1; ale ten błąd akurat nie ma wpływu na dalsze zachowanie programu bo już od tego poprawiania taka literówka mi się zrobiła
  3. #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED szerokość #define SCREEN_HEIGHT 64 // OLED wysokość #define OLED_RESET 4 #define SCREEN_ADDRESS 0x3c //adres fizyczny wyswietlacza Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); #define przyciskEnter 8 //zdefiniowane piny dla przycisków #define przyciskGora 9 #define przyciskDol 10 #define przyciskBack 11 #define Silnik1 2 //zdefiniowane piny dla silnikow #define Silnik2 3 void setup() { Serial.begin(9600); display.begin(SSD1
  4. @slon film bardzo motywujący choć myślałem że coś o programowaniu ogólnie to lubię filmy z Denzelem. @ethanak chodzi o tą część kodu if (digitalRead(przyciskEnter)== LOW){ menuSilnik1(); @SOYER wychodzi na to że że gdy wcisnę enter to przechodzi z menu głównego do silnik1 on/ff ale zaraz potem wraca do menu głównego, przynajmniej tak pokazuje monitor portu szeregowego, wciskam przycisk i wyskakuje informacja 3, 1, to tak jakby na chwile wskoczył do case w silnik1 off/on i szybko wrócił do menu głównego a przecież ma pozostać tam i sprawdzać dalej.
  5. @SOYER wiem nie raz tak miałem w innych sytuacjach w życiu ale @ethanak, Ty, @farmaceuta czy inni musicie sobie zdać sprawę z tego że ludzi dzieli się na kategorię, jedni pewnych rzeczy uczą się szybko a drugich rzeczy wolniej, wręcz potrzebują łopatologicznych przykładów. Znam ludzi którzy z matematyką sobie kiepsko radzili a historia była perfect. Mówi się że jak masz głowę do nauki to nauczysz się szybko wszystkiego, no nie do końca to prawda. Wy z tym nie macie problemu nie wiem może macie predyspozycje do tego akurat kierunku, ja go nie mam i dlatego potrzebuje łopatologicznego tłumacze
  6. @ethanak napisze ci coś tylko nie odbieraj tego jako obrażanie Ciebie, czy jakkolwiek krytykę bo jesteś łebski facet i masz w h.j wiedzy na temat programowania C/C++. W 2005 roku w styczniu rozmawiałem ze szwagrem zaproponował mi przyjazd do Anglii, bo lepsze zarobki bo można sporo odłożyć. Kiedy zapytałem się o znajomość języka, odpowiedział że ludzi potrzebują więc Kali jeść Kali pić wystarczy. Więc ok pakuje tobołki i jadę. Na miejscu rzeczywistość pokazała co innego że nie wystarczy Kali jeść, Kali pić potrzebne są jakieś solidniejsze podstawy znajomości języka, owszem potem się tego język
  7. No dobra przyznam się od razu bo i tak się zorientujesz i to szybko z czym jeszcze mam problem #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED szerokość #define SCREEN_HEIGHT 64 // OLED wysokość #define OLED_RESET 4 #define SCREEN_ADDRESS 0x3c //adres fizyczny wyswietlacza Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); #define przyciskEnter 8 //zdefiniowane piny dla przycisków #define przyciskGora 9 #define przyciskDol 10 #define przyciskBack 11 #define Silnik1 2 //zdefini
  8. Ok @ethanak zagadnę do tego artykułu, @SOYER no dobrze czyli menuGlowne() dwa case, menuSilnik1() dwa case, i menuSilnik2() dwa case, mając 3 funkcje i w każdej funkcji po dwa case można wysterować to menu? Już w pierwszym case w menuGlownym() umieszczając if przycisk enter powinienem wywołać następną funkcje menuSilnik1(), bo to jest przejście z menu głównego do menu sterowania silnika 1. void menuGlowne(){ switch(menuEkran){ case 1: > Silnik 1 Silnik 2 if (przyciskEnter)==LOW){ menuSilnik1(); a co z opcją Silnik 2? Gdybym chciał użyć Silnika 2 a nie
  9. @ethanak #define przycisk 8 void setup() { Serial.begin(9600); pinMode(przycisk, INPUT_PULLUP); } void loop() { if (digitalRead(przycisk)== LOW){ Serial.println("wcisniety"); while (digitalRead(przycisk)== LOW){ delay(25); } (digitalRead(przycisk)== HIGH); Serial.println("puszczony"); while (digitalRead(przycisk)== LOW){ delay(25); } } } to rozwiązanie twojego zadania dla mnie, czyli wciśnięty i na monitorze szeregowym wyskakuje wciśnięty, jeżeli puszcze pojawia się puszczony. Tak naprawdę to nie wiem do końca jak to działa, chyba pusta pęt
  10. @SOYER No gdybym nie czepiał się szczegółów, byłby to wystarczający program żeby wstępnie sterować dwoma silnikami. Można je włączyć oddzielnie i wyłączyć, mogą pracować razem. No ale gdyby to miało być poprawnie politycznie, to jak sam pewnie zauważyłeś nie wyłączysz ich obu na raz, również pewnie zauważyłeś że włączenie silnika któregokolwiek i wyjście do menu głównego jest możliwe, ale powrót i wyłączenie tego silnika wiąże się z wykonaniem sekwencji wciśnięć żeby ten silnik zatrzymać.
  11. sorki nie ,, być dostępne dwie możliwości albo enter albo w dół" tylko muszą być obydwie.
  12. Bo jeśli dobrze rozumie to jak to zrobić żeby z case1 przejść przyciskiem enter do opcji silnik1 off/on a jeżeli nie chce do tej opcji to po wciśnięciu przycisku w dół przejść do opcji silnik2 z przesunięciem markera na niego. To tak jakby w tym case1 miały być dostępne dwie możliwości albo enter albo w dół
  13. switch(menuEkran){ case 1: display.clearDisplay(); display.setTextSize(2); display.setTextColor(SSD1306_WHITE); display.setCursor(0,10); display.println("> SILNIK 1"); //menu glowne display.setCursor(0,35); // znacznik na silnik 1 display.println(" SILNIK 2"); display.display(); if (digitalRead(przyciskDol)== LOW){ //jesli przycisk wcisniety menuEkran = 2;} to jest pierwszy case i dokładnie to mi się wyświetla po załadowaniu programu, menuEkran = 2; ta linijka odpowiada za przejście do case 2, jeśli w tym przy
  14. @ethanak czy to będzie kurs z forbota UART (komunikacja) z PC, zmienne?
  15. @SOYER ten kod napisany dla żartu działa, oczywiście tak jak jest napisany, a jeśli chodzi o tą część kodu przy której stoje to poprostu zdechłem bo już nie wiem co dalej, działa jak powinien, po załadowaniu na wyświetlaczu pojawia się menu silnik1 poniżej silnik2 z markerem na silnik1, wciskam przycisk w dół marker wędruje na silnik2 i przycisk góra marker na silnik1 więc ok. Alez opcji silnik1 chce wejsć do opcji silnik1 off/on z markerem na off
×
×
  • 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.