• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Listwa LED z czujnikiem ruchu PIR HC-SR505 do kredensu w kuchni.
#16
(17-02-2017, 14:34)zamber napisał(a): Dobrze, gdybyś wkleił schemat i pełen kod programu, bo dziwię się, że nie działa Ci przekaźnik. No chyba,że próbujesz go[Obrazek: arrow-10x10.png] wysterować sygnałem bezpośrednio z  PIR'a, a wtedy nie ma prawa działać.

To pełny kod programu. Na razie nie montowałem fotorezystora. Przekaźnik jest podłączony pod digital 4 Arduino Uno.
Kod:
#include <Bounce2.h>
#define FOTOREZYSTOR A0
#define PRZEKAZNIK 4

#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
#define CZAS_SWIECENIA 1000

Bounce bouncer = Bounce(FOTOREZYSTOR, 25);
boolean uzbrojony = false;
unsigned long fotorezystor_czas, uzbrojenie_czas;

void setup() {

Serial.begin(9600);
while(!Serial);
pinMode(A0, INPUT);
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(SWIATLO, LOW);
pinMode(PIR, INPUT);
pinMode(FOTOREZYSTOR, INPUT_PULLUP);

}

void zmiana()

{
 
digitalWrite(SWIATLO, LOW);
uzbrojenie_czas = millis() + CZAS_SWIECENIA;
fotorezystor_czas = millis() + 1000;
uzbrojony = !uzbrojony;
detachInterrupt(digitalPinToInterrupt(FOTOREZYSTOR));

}

void loop() {

int odczyt = analogRead(A0);
if(odczyt <= 400)
digitalWrite(13, HIGH);
else digitalWrite(13, LOW);
Serial.println(odczyt);
delay 500);
 bouncer.update();

 int value = bouncer.read();

digitalWrite(LED0, uzbrojony);

 if (value == HIGH)
 
  attachInterrupt(digitalPinToInterrupt(FOTOREZYSTOR), zmiana, FALLING);

if(digitalRead(PIR)==HIGH){
 
 digitalWrite(SWIATLO, HIGH);
 
if(digitalRead(PRZEKAZNIK)==HIGH){
 
 digitalWrite(PRZEKAZNIK, HIGH);
 
  if (uzbrojony && uzbrojenie_czas < millis())
   
  digitalWrite(SWIATLO, HIGH);
 
}

else

  digitalWrite(SWIATLO, LOW);
 
}
}
Mam pytanie czy zasilanie +5 V na przekaźnik dać przez rezystor i tranzystor?Podłączyłem przekaźnik do pinu 3 . Dalej program[Obrazek: arrow-10x10.png] nie działa tak jak ma. Przekaźnik zamiast się zatłacza się wyłącza. Dioda załącz wyłącz pali się na czerwono , a po naciśnięciu przycisku na załącz się nie pali.Mimo że wyłączę (czerwona dioda) to czujnik daje impuls na przekaźnik.Pomocy,pliss. Mam tak podłączone do przekaźnika-Na jednym końcu przewodu jest gniazdo na drugim wtyczka.Przy wtyczce (10 cm od nie) jest rozcięty i masa rozcięta i podłączona do przekaźnika. Od wtyczki do środkowego złącza a od gniazda do lewego.Niby mi wszystko działa ale odwrotnie.Przy włączeniu  ledy zapalają się od razu[Obrazek: arrow-10x10.png] a czujnik jak zadziała to gasi. Co źle?Przekaźnik jest na rozwartym podłączony. Mam pytanie. Na jednej ze stron znalazłem poradę żeby kabelek z wyjścia out czujnika PIR HC-SR501 podłączyć do wejścia in przekaźnika - można tak? Program[Obrazek: arrow-10x10.png] będzie działał?Czy trzeba poprawić program[Obrazek: arrow-10x10.png]?     CZy wszystko tu jest dobrze? Nie wiem co wykorzystam- czy Arduino Nano,Leonardo albo Attiny2313 wiec na razie schemat zasilania do sprawdzenia. Moduł przekaźnika 5 V zasilanie.
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Listwa LED z czujnikiem ruchu PIR HC-SR505 do kredensu w kuchni. - przez Orion045 - 17-02-2017, 16:25

Skocz do:


Przeglądający: 1 gości