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
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?)

(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
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

(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_

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))

 

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

(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

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 

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

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. 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...