Skocz do zawartości

Arduino przycisk on/off


Pomocna odpowiedź

(edytowany)

Wywal ten rezystor od guzika...podepnij jeden koniec do ardu a drugi bezposrednio do GND...zmien w kodzie 

pinMode(przycisk, INPUT_PULLUP)

I w if zmien na

if (digitalRead(przycisk) == LOW)

Edit...przeciez guzik masz na pinie 3 a diode na pinie 10..a jakos tych deklaracji nie widze

Edytowano przez farmaceuta
Link to post
Share on other sites
1 minutę temu, farmaceuta napisał:

Wywal ten rezystor od guzika...podepnij jeden koniec do ardu a drugi bezposrednio do GND...zmien w kodzie 


pinMode(przycisk, INPUT_PULLUP)

I w if zmien na


if (digitalRead(przycisk) == LOW)

 

Jaki jeden koniec do arduino a drugi do GND? (Który kabelek?)

Link to post
Share on other sites
(edytowany)

Narazie zostaw tak jak jest tylko popraw te deklaracje...

const int przycisk = 3;  // Definicja pinu do którego podłączony jest przycisk
const int dioda =  10;   // Definicja pinu do którego podłączona jest 

void setup() {
  pinMode(dioda, OUTPUT);        // Ustawienie pinu 10 jako wyjście
  pinMode(przycisk, INPUT);      // Ustawienie pinu 3 jako wejście
}

void loop() {
  
  if (digitalRead(przycisk) == HIGH) {    // Sprawdzamy czy przycisk jest wciśnięty
    digitalWrite(dioda, HIGH);            // Jeśli tak, zapala diodę
  }
  else {                                  // W innym przypadku
                                         // Dioda zgaszona
    digitalWrite(dioda, LOW);
  }
}
 

 

Edytowano 9 minut temu przez Gamer_1998Oceń post:
Lubię!

 

Edytowano przez farmaceuta
Link to post
Share on other sites
Cytat

const int przycisk1 = 1; // Definicja pinu do którego podłączony jest przycisk const int dioda = 2; // Definicja pinu do którego podłączona jest dioda

Pozmieniaj piny

Link to post
Share on other sites
(edytowany)

bez kombinowania z ifami aby sprawdzić czy masz to dobrze podłączone umieść w loop taki programik, setup napisz tak aby na pewno odpowiadał rzeczywistemu podłączeniu led i switch.

void loop() {
  
  digitalWrite(dioda,digitalRead(przycisk)); // przepisuje stan sw na pin LED
  //digitalWrite(dioda,!digitalRead(przycisk)); // negacja
}

A i w setup tak jak proponował @farmaceuta z tym że:

void setup() {
  pinMode(dioda, OUTPUT);        // Ustawienie pinu 10 jako wyjście
  pinMode(przycisk, INPUT_PULLUP);      // Ustawienie pinu 3 jako wejście PODCIĄGANIE WEJŚCIA!
}

 

Edytowano przez _LM_
Link to post
Share on other sites

Nie wiem czemu ale taki zapis u mnie nie dzialal poprawnie podczas testow z millis()...zylo to wlasnym zyciem..dopiero po zapisaniu stanu do zwyklych zmiennych zaczelo dzialac poprawnie (bez negacji)

digitalWrite(dioda,!digitalRead(przycisk))

 

Link to post
Share on other sites
37 minut temu, _LM_ napisał:

Podciąganie wejścia miałeś włączone?

Wroc...u mnie to tak wygladalo..

digitalWrite(8, !digitalRead(8));

Chodzilo o negacje stanu leda...mialem taka pseudo-biblioteke w ktorej sprawdzalem czas millis() i odpowiednio zwracalem true/false jako argument if'a i taki zapis nie dzialal..ale to tak na boku tylko pisze

Link to post
Share on other sites
(edytowany)
18 minut temu, _LM_ napisał:

Przecież odczytwałeś i zapisywałeś do tego samego pinu xD

znalazlem takie rozwiazanie w niejednym kodzie ktory byl ciut bardziej zaawansowany niz moje bazgroly wiec uznalem ze to dobra opcja...kurcze no, chcialbym Ci nawet teraz te przyklady podac zeby nie bylo ze zmyslam ale juz nie pamietam nawet czego ja szukalem ze na takie cos trafilem..😕

 w kazdym razie to nie moj wymysl a cos co znalazlem kilkukrotnie w necie

Edytowano przez farmaceuta
Link to post
Share on other sites

Wiem że to zadziała gdyż sam zaproponowałem takie rozwiązanie. Ale popatrz że czytasz i piszesz do pinu 8 to powinno być rozgraniczone 8switch i np 9led wiem że to literówka 

Link to post
Share on other sites
2 minuty temu, _LM_ napisał:

Wiem że to zadziała gdyż sam zaproponowałem takie rozwiązanie. Ale popatrz że czytasz i piszesz do pinu 8 to powinno być rozgraniczone 8switch i np 9led wiem że to literówka 

Nie no to "twoje" to bedzie dzialac, a to "moje"...hmm widocznie nie koniecznie w kazdej sytuacji...no raczej watpie zeby w "grubszych" kodach ktos takie bledy popelnial..Ogolnie to to dziala, ale u mnie byl problem w konkretnej sytuacji..

Link to post
Share on other sites

To co pokazałeś to jest gdy chcesz migać ledem lub wysłać jakiś sygnał na pin, za to funkcja którą ja zaprezentowałem powiązana jest z przyciskiem i będzie działać zależnie od jego stanu. 

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.