-
Zawartość
41 -
Rejestracja
-
Ostatnio
Reputacja
3 NeutralnaO Norbert7630
-
Ranga
3/10
Ostatnio na profilu byli
Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.
-
Arduino nano (Klon) - problem z magistralą I2C
Norbert7630 odpisał w temacie użytkownika Sn0w • Arduino i ESP
Witam znalazłeś rozwiązanie tego problemu? -
Kurs Arduino II - #5 - klawiatura, własny system alarmowy
Norbert7630 odpisał w temacie użytkownika Komentator • Artykuły redakcji (blog)
Witam Skąd u mnie taki błąd: -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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 -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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); -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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 -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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 -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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 -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
no właśnie idę jeszcze raz zaglądnąć do tej części kursu bo z tym mam problem -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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ę -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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: -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
@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 -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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 -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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 -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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: ? -
Proste menu w Arduino i obsługa LCD I2C po raz enty...
Norbert7630 odpisał w temacie użytkownika bakardi92 • Arduino i ESP
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.