Skocz do zawartości

Problem z ciągle świecącą się diodą


Alcyb

Pomocna odpowiedź

Witam,
Przychodzę do was zirytowany borykając się z błahym problemem, ale męczę już się z nim chyba z miesiąc. Robię prosty kurs arduino, który zaznaczam robiłem jakoś rok temu i udało mi się dojść nawet dosyć daleko, więc jestem początkujący, no ale coś już tam wiem. Prosty projekt, naciskamy przycisk, świeci się dioda, puszczamy - gaśnie. Kiedyś kończąc ten kurs robiłem projekty gdzie były podłączone nawet 6 diody i wykorzystywane komendy jak For, loop itd, ale do rzeczy. Gdy robię  tak jak na kursie i załączonym schemacie dioda cały czas mi się świeci a jak naciskam przycisk to gaśnie i to jest ten problem, z którym nie mogę sobie poradzić. Nie wiem gdzie leży problem. Nawet gdy do drugiego Pinu jest podłączony kabel, ale nie ma kontaktu z GND czyli jest wpięty luźno kabel to dioda wciąż się świeci. Gaśnie tylko gdy z pinu drugiego jest podłączenie  do uziemienia dlatego dioda gaśnie gdy naciskam przycisk, bo obieg się zamyka. Gdy nie ma przycisku tylko podłączam z pinu bezpośrednio do GND to dioda gaśnie. Gdy dotykam jakieś metalowe elementy na arduino np. tam gdzie jest podłaczone zasilane to dioda gaśnie, ewentualnie od spodu gdzie jest lut do drugiego pinu też gaśnie. Próbowałem już chyba wszystkiego, gdy kabel jest luźno podłączony do pinu drugiego i przybliżam rękę to dioda zaczyna świecić, bo pewnie łapie prąd statyczny ode mnie, ale gdy wszystko jest podłączone przecież przez Rezystor Pull-down to chyba nie powinno wyłapywać jakiegoś prądu statycznego a tak się ta dioda zachowuje. Jeszcze na schemacie zakreśliłem połączenie 5V do przycisku, bo gdy tak robię to dioda świeci się jeszcze mocniej i nigdy tak nie robiłem, gdy bawiłem się tym kursem tak jak mówiłem rok temu i miałem z 8 diod to również nie podłączałem przycisku pod 5V tylko bezpośrednio z drugiego pinu do masy układu i wszystko działało. Naprawdę proszę o pomoc, nie mogę zacząć przygody od nowa bez obejścia tego problemu a jestem już naprawdę na skraju wytrzymałości. A tak, kupiłem nawet drugą płytkę myśląc, że może się arduino zepsuło, ale na drugiej dzieje się tak samo. Aha, zapomniałem dopisać, że kod nawet kopiuje bezpośrednio z kursu, żeby uniknąć mojego błędu, wcześniej tak robiłem wszystko działało a teraz borykam się chyba z najprostrzym problemem i nie potrafię sobie z nim poradzić.

int ledCzerwonaPin = 11;
int przycisk = 2;

void setup() {
  pinMode(ledCzerwonaPin, OUTPUT);
  pinMode(przycisk, INPUT);
}

void loop() {
  if(digitalRead(przycisk) == HIGH)
  {
    digitalWrite(ledCzerwonaPin, HIGH);
  }else{
    digitalWrite(ledCzerwonaPin, LOW);    
  }
}

 

schemat .png

Edytowano przez Alcyb
  • Lubię! 1
Link do komentarza
Share on other sites

Ja bym tak to zrobił 

int ledCzerwonaPin = 11;
int przycisk = 2;

void setup() {
  pinMode(ledCzerwonaPin, OUTPUT);
  //wejście z podciągnięciem do VCC (domyślny stan HIGH)
  pinMode(przycisk, INPUT_PULLUP);
}

void loop() {
  //Jeżeli zwarto z masą
  if(digitalRead(przycisk) == LOW)
  {
    digitalWrite(ledCzerwonaPin, HIGH);
  } else {
    digitalWrite(ledCzerwonaPin, LOW);    
  }
}

 

1749919235_schemat.png.5d4c7cc8d53380c372968d2fa690ac08.png

  • Lubię! 1
Link do komentarza
Share on other sites

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

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.