Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Oświetlenie Led na czujniku Pir i przekazniku.
#11
Testowałem program z przekaźnikiem i pierwsze nie świeci dioda Red jak jest wyłączone, drugie nie przełącza się przekaźnik gdy nie ma ruchu i trzecie nie wyłącza się urządzenie mimo naciskania na przycisk. Próbowałem znaleźć w programie gdzie to jest. Połączyłem to z tym co ja napisałem i działa. Teraz testuje. Na czujniku mam czas ustawiony krótki. Załączam i wyłączam przyciskiem. Jak wykrywa ruch to dalej przekaźnik załączony. Co by tam jeszcze poprawić?
Kod:
#include <Bounce2.h>
#include "Timer.h"

//dodajemy timer

Timer t;

#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona

int CZAS_SWIECENIA = 600; // Czas świecenia 600/2 = 300s
int onTime = 0;

Bounce bouncer = Bounce(PRZYCISK, 25);
boolean wlaczony = false;
unsigned long przycisk_czas, wlaczony_czas;

boolean state = false;
boolean isSwitchOn = false;



void setup() {
 
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);
t.every(500, PIRCheck);//co 500ms wykonywana jest metoda
}

void zmiana()
{
 t.update();
}


void PIRCheck() {
if (digitalRead(PRZYCISK) == LOW && !state) {//jezeli wcisnieto przycisk i status zapalania jest na false
isSwitchOn = true;//to uruchom PIR
}
if (digitalRead(PRZYCISK) == LOW && state) {//jezli wcisnieto przycisk i status zapalania jest na true
isSwitchOn = false;//wylacz PIR
}
checkForMovement(isSwitchOn);
}

boolean checkForMovement(boolean isSwitchOn) {
if (isSwitchOn) {
if (onTime == 0) { //jak czas swiecienia jest rowny 0 to zwracaj tylko status czujnika
if (digitalRead(PIR) == HIGH) { //wykryto ruch
state = true;
}
else {
state = false;
}
}

if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund
if (digitalRead(PIR) == HIGH) {//wykryto ruch
onTime = 0;
state = true;
}
}

}

lightControl(state);
return state;
}


void lightControl(boolean isStateOn) {
if (isStateOn) {
if (onTime < CZAS_SWIECENIA) {
digitalWrite(SWIATLO, HIGH);
onTime++;
}
}
else {
digitalWrite(SWIATLO, LOW);
}

if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund (sekundy x2 bo timer chodzi w interwałach co 0,5 sekundy)
lightControl(checkForMovement(true));
}

if (onTime > CZAS_SWIECENIA) {
onTime = 0;
}

digitalWrite(SWIATLO, LOW);
wlaczony_czas = millis() + CZAS_SWIECENIA;
przycisk_czas = millis() + 1000;
wlaczony = !wlaczony;
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
 
digitalWrite(LED0, wlaczony);
digitalWrite(LED1, LOW);
if (przycisk_czas < millis())
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmiana, FALLING);

if (digitalRead(PIR))
{
  if (wlaczony && wlaczony_czas < millis())
   
  digitalWrite(SWIATLO, HIGH);
}
else
  digitalWrite(SWIATLO, LOW);

}
Jak nie chcesz odpowiedzieć to nie pisz !!!
Odpowiedz
#12
(27-11-2017, 22:34)tom5555 napisał(a): Jak nigdzie nie znajdziesz Nano po rozsądnej cenie, mogę odsprzedać jednego klona. Mam kilka w zapasie.

Za ile i z kont ? Trochę przerobiłem program. Teraz jest z fotorezystorem i fotorezystor ma załączać i wyłączać czujnik pir. Dołożyłem też  wyświetlacz Lcd bo jak będę robił to też dla siebie i tam dołożę moduł rtc by wyświetlał datę i godziny i by można było ustawić czas zadziałania. Np. 20.03. 2018 godz. 17:30 lub by się zaświeciło światło o danej godzinie do zadanej godziny. Zmyłka złodzieja że niby ktoś jest  w domu. :Uśmiech Coś mi program nie wyłącza i nie załącza czujnika jak jest  urządzenie włączone. Czujnik  przełącza przekaźnik.
Kod:
#include <Bounce2.h>
#include <LiquidCrystal_I2C.h>

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

LiquidCrystal_I2C lcd(0x3F,16,2);

// Fotorezystor

int czujnik = A1;   //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer = Bounce(PRZYCISK, 25);
boolean wlaczony = false;
unsigned long przycisk_czas, wlaczony_czas;

void setup() {
 
 lcd.init();                    
 lcd.clear();// czyszczenie ekranu
 
 // Wyświetl wiadomość na wyświetlaczu LCD.
 
 lcd.backlight();//Zapalanie podświetlenia
 lcd.setCursor(0,0);// Ustawienie kursora na pierwszej linii i lewej stronie ekranu LCD
 lcd.print("  Fotorezystor");//Wyświetlenie Test fotorezystora  
 lcd.setCursor(0,1);
 lcd.print("Wartosc:     ");

 
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);
}

void zmiana()

{
digitalWrite(SWIATLO, LOW);
wlaczony_czas = millis() + CZAS_SWIECENIA;
przycisk_czas = millis() + 1000;
wlaczony = !wlaczony;
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
 
 int war = analogRead(czujnik);      //odczytanie wartości z A1*
 
 lcd.print(war);                     //wyświetlenie jej na LCD
 lcd.setCursor(13,1);
 if (war < 300)                      //*gdy wartość przekroczy pewien ustalony próg, wtedy dioda na pinie 13 zaświeci się
 {
   
    lcd.setCursor(0,0);
    lcd.print("   Czujnik ON   ");
    lcd.setCursor(13,1);
    digitalWrite(A1, LOW);
 }
 else
 {
   
   lcd.setCursor(0,0);
   lcd.print("   Czujnik OFF  ");
   lcd.setCursor(13,1);
   digitalWrite(A1, HIGH);
 }
 lcd.print("");
 delay(1000);                         //opóźnienie między kolejnymi odczytami

 
digitalWrite(LED0, wlaczony);
digitalWrite(LED1, LOW);
if (przycisk_czas < millis())
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmiana, FALLING);

if (digitalRead(PIR))
{
  if (wlaczony && wlaczony_czas < millis())
   
  digitalWrite(SWIATLO, HIGH);
}
else
  digitalWrite(SWIATLO, LOW);

}
Jak nie chcesz odpowiedzieć to nie pisz !!!
Odpowiedz
#13
Cytat:Za ile i z kont ?
Za 10 zł, za tyle go kupiłem. Jestem z Zabrza, jeżeli się zdecydujesz to możemy się dogadać gdzie i kiedy.
Odpowiedz
#14
(29-11-2017, 09:58)tom5555 napisał(a):
Cytat:Za ile i z kont ?
Za 10 zł, za tyle go kupiłem. Jestem z Zabrza, jeżeli się zdecydujesz to możemy się dogadać gdzie i kiedy.

W tej chwili program wygląda tak: Prawie wszystko działa oprócz sygnalizacji działania czujnika pir  i fotorezystora. Chcę aby po załączeniu przyciskiem fotorezystor załączał i wyłączał czujnik ruchu. Na razie piszę to na wyświetlacz 16x2 bo taki tylko mam.
Cytat:
Kod PHP:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C

#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
#define CZAS_SWIECENIA 1000
#define FOTOREZYSTOR A1
#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPINDHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik A1  //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer Bounce(PRZYCISK20);
boolean wlaczony false;
unsigned long przycisk_czaswlaczony_czas;

void setup() {
 
 
 dht.begin();
 
 
  lcd
.init();                     
  lcd
.clear();// czyszczenie ekranu
 
 
  
// Wyświetl wiadomość na wyświetlaczu LCD.
 
 
  lcd
.backlight();//Zapalanie podświetlenia
 
 lcd.setCursor(0,0);
 
 lcd.print("Jasnosc:     ");
 
 
 pinMode
(LED0OUTPUT);
 
pinMode(LED1OUTPUT);
 
pinMode(SWIATLOOUTPUT);
 
digitalWrite(LED0HIGH);
 
digitalWrite(PIRLOW);
 
pinMode(PIRINPUT);
 
pinMode(PRZYCISKINPUT_PULLUP);
}

void zmiana()
{
 
digitalWrite(SWIATLOLOW);
 
wlaczony_czas millis() + CZAS_SWIECENIA;
 
przycisk_czas millis() + 1000;
 
wlaczony = !wlaczony;
 
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
 
 
   
//Sygnalizacja działania czujnika ruchu on/off
 
   
     digitalWrite
(PIRHIGH);
 
    lcd.setCursor(13,0);
 
    lcd.print("On");
 
 
     digitalWrite
(PIRLOW);
 
    lcd.setCursor(13,0);
 
    lcd.print("Off");

 
 float h dht.readHumidity();
 
 float t dht.readTemperature();
 
 if (isnan(t) || isnan(h)) {
 
     } else {
 
   lcd.setCursor(0,1);
 
   lcd.print("W:      T:      "); 
 
   lcd.setCursor(2,1);
 
   lcd.print(h);
 
   lcd.print("%");
 
   lcd.setCursor(10,1); 
 
   lcd.print(t);
 
   lcd.print("C");
 
 
  int war 
analogRead(czujnik);      //odczytanie wartości z A1*
 
 

  if 
(war 300); // o 8:55 jasność 416
 
   
  
//*gdy wartość przekroczy pewien ustalony próg, wtedy dioda na pinie 13 zaświeci się
 
 {
 
        
    lcd
.setCursor(0,0);
 
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony 
 
   lcd.setCursor(9,0);
 
   lcd.print(war);                     //wyświetlenie jej na LCD
 
  
  
}
 
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
 
 digitalWrite
(LED0wlaczony);
 
digitalWrite(LED1LOW);
 if (
przycisk_czas millis())
 
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmianaFALLING);

 if (
digitalRead(PIR))
 {
 
  if (wlaczony && wlaczony_czas millis())
 
       
   digitalWrite
(SWIATLOHIGH);
 }
 else
 
  digitalWrite(SWIATLOLOW);

}

Jak nie chcesz odpowiedzieć to nie pisz !!!
Odpowiedz
#15
(30-11-2017, 11:05)Ronin napisał(a):
(29-11-2017, 09:58)tom5555 napisał(a):
Cytat:Za ile i z kont ?
Za 10 zł, za tyle go kupiłem. Jestem z Zabrza, jeżeli się zdecydujesz to możemy się dogadać gdzie i kiedy.

W tej chwili program wygląda tak: Prawie wszystko działa oprócz sygnalizacji działania czujnika pir  i fotorezystora. Chcę aby po załączeniu przyciskiem fotorezystor załączał i wyłączał czujnik ruchu. Na razie piszę to na wyświetlacz 16x2 bo taki tylko mam.
Cytat:
Kod PHP:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C

#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
#define CZAS_SWIECENIA 1000
#define FOTOREZYSTOR A1
#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPINDHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik A1  //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer Bounce(PRZYCISK20);
boolean wlaczony false;
unsigned long przycisk_czaswlaczony_czas;

void setup() {
 
 
 dht.begin();
 
 
  lcd
.init();                     
  lcd
.clear();// czyszczenie ekranu
 
 
  
// Wyświetl wiadomość na wyświetlaczu LCD.
 
 
  lcd
.backlight();//Zapalanie podświetlenia
 
 lcd.setCursor(0,0);
 
 lcd.print("Jasnosc:     ");
 
 
 pinMode
(LED0OUTPUT);
 
pinMode(LED1OUTPUT);
 
pinMode(SWIATLOOUTPUT);
 
digitalWrite(LED0HIGH);
 
digitalWrite(PIRLOW);
 
pinMode(PIRINPUT);
 
pinMode(PRZYCISKINPUT_PULLUP);
}

void zmiana()
{
 
digitalWrite(SWIATLOLOW);
 
wlaczony_czas millis() + CZAS_SWIECENIA;
 
przycisk_czas millis() + 1000;
 
wlaczony = !wlaczony;
 
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
 
 
   
//Sygnalizacja działania czujnika ruchu on/off
 
   
     digitalWrite
(PIRHIGH);
 
    lcd.setCursor(13,0);
 
    lcd.print("On");
 
 
     digitalWrite
(PIRLOW);
 
    lcd.setCursor(13,0);
 
    lcd.print("Off");

 
 float h dht.readHumidity();
 
 float t dht.readTemperature();
 
 if (isnan(t) || isnan(h)) {
 
     } else {
 
   lcd.setCursor(0,1);
 
   lcd.print("W:      T:      "); 
 
   lcd.setCursor(2,1);
 
   lcd.print(h);
 
   lcd.print("%");
 
   lcd.setCursor(10,1); 
 
   lcd.print(t);
 
   lcd.print("C");
 
 
  int war 
analogRead(czujnik);      //odczytanie wartości z A1*
 
 

  if 
(war 300); // o 8:55 jasność 416
 
   
  
//*gdy wartość przekroczy pewien ustalony próg, wtedy dioda na pinie 13 zaświeci się
 
 {
 
        
    lcd
.setCursor(0,0);
 
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony 
 
   lcd.setCursor(9,0);
 
   lcd.print(war);                     //wyświetlenie jej na LCD
 
  
  
}
 
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
 
 digitalWrite
(LED0wlaczony);
 
digitalWrite(LED1LOW);
 if (
przycisk_czas millis())
 
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmianaFALLING);

 if (
digitalRead(PIR))
 {
 
  if (wlaczony && wlaczony_czas millis())
 
       
   digitalWrite
(SWIATLOHIGH);
 }
 else
 
  digitalWrite(SWIATLOLOW);




Próbowałem dodać do programu linie i wyskakuje mi błąd stray `\302` in program dokładnie na linii onTime = 0;

Kod:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C
#include "Timer.h"

//dodajemy timer

Timer t;
#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
int CZAS_SWIECENIA = 600; // Czas świecenia 600/2 = 300s
int onTime = 0;
boolean state = false;

#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik = A1;   //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer = Bounce(PRZYCISK, 20);
boolean wlaczony = false;
unsigned long przycisk_czas, wlaczony_czas;

void setup() {

 dht.begin();
 
 lcd.init();                    
 lcd.clear();// czyszczenie ekranu
 
 // Wyświetl wiadomość na wyświetlaczu LCD.
 
 lcd.backlight();//Zapalanie podświetlenia
 lcd.setCursor(0,0);
 lcd.print("Jasnosc:     ");
 
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);

t.every(500, PIRCheck);  //co 500ms wykonywana jest metoda
}

void zmiana()
{
digitalWrite(SWIATLO, LOW);
wlaczony_czas = millis() + CZAS_SWIECENIA;
przycisk_czas = millis() + 1000;
wlaczony = !wlaczony;
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
  t.update();

void PIRCheck() {
 checkForMovement();
}

boolean checkForMovement() {
 if (onTime == 0) { //jak czas swiecienia jest rowny 0 to zwracaj tylko status czujnika
   if (digitalRead(PIR) == HIGH) { //wykryto ruch
     state = true;
   }
   else {
     state = false;
   }
 }

 if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund
   if (digitalRead(PIR) == HIGH) { //wykryto ruch
     onTime = 0;
     state = true;
   }
 }

 lightControl(state);
 return state;
}


void lightControl(boolean isStateOn) {
 if (isStateOn) {
   if (onTime < CZAS_SWIECENIA) {
     digitalWrite(SWIATLO, HIGH);
     onTime++;
   }
 }
 else {
   digitalWrite(SWIATLO, LOW);
 }

 if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund (sekundy x2 bo timer chodzi w interwałach co 0,5 sekundy)
   lightControl(checkForMovement());
 }

 if (onTime > CZAS_SWIECENIA) {
 onTime = 0;
}
}
 float h = dht.readHumidity();
 float t = dht.readTemperature();
 if (isnan(t) || isnan(h)) {
     } else {
   lcd.setCursor(0,1);
   lcd.print("W:      T:      ");
   lcd.setCursor(2,1);
   lcd.print(h);
   lcd.print("%");
   lcd.setCursor(10,1);
   lcd.print(t);
   lcd.print("C");
 
 int war = analogRead(czujnik);      //odczytanie wartości z A1*
 
 if (war < 900); // o 8:55 jasność 416 o 16:30 jasność 227
   
 //*gdy wartość przekroczy pewien ustalony próg, wtedy czujnik ruchu zadziała
 
   lcd.setCursor(0,0);
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony
   lcd.setCursor(9,0);
   lcd.print(war);                     //wyświetlenie jej na LCD
 
 }
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
digitalWrite(LED0, wlaczony);
digitalWrite(LED1, LOW);

if (przycisk_czas < millis())
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmiana, FALLING);

if (digitalRead(PIR))
{
  if (wlaczony && wlaczony_czas < millis())
       
  digitalWrite(SWIATLO, HIGH);
}
else
  digitalWrite(SWIATLO, LOW);

}
Jak nie chcesz odpowiedzieć to nie pisz !!!
Odpowiedz
#16
(01-12-2017, 20:06)Ronin napisał(a):
(30-11-2017, 11:05)Ronin napisał(a):
(29-11-2017, 09:58)tom5555 napisał(a):
Cytat:Za ile i z kont ?
Za 10 zł, za tyle go kupiłem. Jestem z Zabrza, jeżeli się zdecydujesz to możemy się dogadać gdzie i kiedy.

W tej chwili program wygląda tak: Prawie wszystko działa oprócz sygnalizacji działania czujnika pir  i fotorezystora. Chcę aby po załączeniu przyciskiem fotorezystor załączał i wyłączał czujnik ruchu. Na razie piszę to na wyświetlacz 16x2 bo taki tylko mam.
Cytat:
Kod PHP:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C

#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
#define CZAS_SWIECENIA 1000
#define FOTOREZYSTOR A1
#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPINDHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik A1  //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer Bounce(PRZYCISK20);
boolean wlaczony false;
unsigned long przycisk_czaswlaczony_czas;

void setup() {
 
 
 dht.begin();
 
 
  lcd
.init();                     
  lcd
.clear();// czyszczenie ekranu
 
 
  
// Wyświetl wiadomość na wyświetlaczu LCD.
 
 
  lcd
.backlight();//Zapalanie podświetlenia
 
 lcd.setCursor(0,0);
 
 lcd.print("Jasnosc:     ");
 
 
 pinMode
(LED0OUTPUT);
 
pinMode(LED1OUTPUT);
 
pinMode(SWIATLOOUTPUT);
 
digitalWrite(LED0HIGH);
 
digitalWrite(PIRLOW);
 
pinMode(PIRINPUT);
 
pinMode(PRZYCISKINPUT_PULLUP);
}

void zmiana()
{
 
digitalWrite(SWIATLOLOW);
 
wlaczony_czas millis() + CZAS_SWIECENIA;
 
przycisk_czas millis() + 1000;
 
wlaczony = !wlaczony;
 
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
 
 
   
//Sygnalizacja działania czujnika ruchu on/off
 
   
     digitalWrite
(PIRHIGH);
 
    lcd.setCursor(13,0);
 
    lcd.print("On");
 
 
     digitalWrite
(PIRLOW);
 
    lcd.setCursor(13,0);
 
    lcd.print("Off");

 
 float h dht.readHumidity();
 
 float t dht.readTemperature();
 
 if (isnan(t) || isnan(h)) {
 
     } else {
 
   lcd.setCursor(0,1);
 
   lcd.print("W:      T:      "); 
 
   lcd.setCursor(2,1);
 
   lcd.print(h);
 
   lcd.print("%");
 
   lcd.setCursor(10,1); 
 
   lcd.print(t);
 
   lcd.print("C");
 
 
  int war 
analogRead(czujnik);      //odczytanie wartości z A1*
 
 

  if 
(war 300); // o 8:55 jasność 416
 
   
  
//*gdy wartość przekroczy pewien ustalony próg, wtedy dioda na pinie 13 zaświeci się
 
 {
 
        
    lcd
.setCursor(0,0);
 
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony 
 
   lcd.setCursor(9,0);
 
   lcd.print(war);                     //wyświetlenie jej na LCD
 
  
  
}
 
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
 
 digitalWrite
(LED0wlaczony);
 
digitalWrite(LED1LOW);
 if (
przycisk_czas millis())
 
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmianaFALLING);

 if (
digitalRead(PIR))
 {
 
  if (wlaczony && wlaczony_czas millis())
 
       
   digitalWrite
(SWIATLOHIGH);
 }
 else
 
  digitalWrite(SWIATLOLOW);




Próbowałem dodać do programu linie i wyskakuje mi błąd stray `\302` in program dokładnie na linii onTime = 0;

Kod:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C
#include "Timer.h"

//dodajemy timer

Timer t;
#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
int CZAS_SWIECENIA = 600; // Czas świecenia 600/2 = 300s
int onTime = 0;
boolean state = false;

#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik = A1;   //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer = Bounce(PRZYCISK, 20);
boolean wlaczony = false;
unsigned long przycisk_czas, wlaczony_czas;

void setup() {

 dht.begin();
 
 lcd.init();                    
 lcd.clear();// czyszczenie ekranu
 
 // Wyświetl wiadomość na wyświetlaczu LCD.
 
 lcd.backlight();//Zapalanie podświetlenia
 lcd.setCursor(0,0);
 lcd.print("Jasnosc:     ");
 
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);

t.every(500, PIRCheck);  //co 500ms wykonywana jest metoda
}

void zmiana()
{
digitalWrite(SWIATLO, LOW);
wlaczony_czas = millis() + CZAS_SWIECENIA;
przycisk_czas = millis() + 1000;
wlaczony = !wlaczony;
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
  t.update();

void PIRCheck() {
 checkForMovement();
}

boolean checkForMovement() {
 if (onTime == 0) { //jak czas swiecienia jest rowny 0 to zwracaj tylko status czujnika
   if (digitalRead(PIR) == HIGH) { //wykryto ruch
     state = true;
   }
   else {
     state = false;
   }
 }

 if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund
   if (digitalRead(PIR) == HIGH) { //wykryto ruch
     onTime = 0;
     state = true;
   }
 }

 lightControl(state);
 return state;
}


void lightControl(boolean isStateOn) {
 if (isStateOn) {
   if (onTime < CZAS_SWIECENIA) {
     digitalWrite(SWIATLO, HIGH);
     onTime++;
   }
 }
 else {
   digitalWrite(SWIATLO, LOW);
 }

 if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund (sekundy x2 bo timer chodzi w interwałach co 0,5 sekundy)
   lightControl(checkForMovement());
 }

 if (onTime > CZAS_SWIECENIA) {
 onTime = 0;
}
}
 float h = dht.readHumidity();
 float t = dht.readTemperature();
 if (isnan(t) || isnan(h)) {
     } else {
   lcd.setCursor(0,1);
   lcd.print("W:      T:      ");
   lcd.setCursor(2,1);
   lcd.print(h);
   lcd.print("%");
   lcd.setCursor(10,1);
   lcd.print(t);
   lcd.print("C");
 
 int war = analogRead(czujnik);      //odczytanie wartości z A1*
 
 if (war < 900); // o 8:55 jasność 416 o 16:30 jasność 227
   
 //*gdy wartość przekroczy pewien ustalony próg, wtedy czujnik ruchu zadziała
 
   lcd.setCursor(0,0);
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony
   lcd.setCursor(9,0);
   lcd.print(war);                     //wyświetlenie jej na LCD
 
 }
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
digitalWrite(LED0, wlaczony);
digitalWrite(LED1, LOW);

if (przycisk_czas < millis())
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmiana, FALLING);

if (digitalRead(PIR))
{
  if (wlaczony && wlaczony_czas < millis())
       
  digitalWrite(SWIATLO, HIGH);
}
else
  digitalWrite(SWIATLO, LOW);

}
Próbowałem też jak kolega z forum napisał. Niestety nie działa tak jak ma działać. Po włączeniu zasilania ma się palić czerwona dioda LED1 a pali się zielona LED0. Przycisk załącza i wtedy działa czujnik Pir ale mimo że czekam bez ruchu aby wyłączył się przekaźnik to zero rekcji. Po powtórnym naciśnięciu  ma wyłączyć i palić się dioda LED1 czerwona. Zero reakcji. Tu program kolegi. Ps. zmieniałem  czas. Próbowałem też połączyć te dwa programy ale coś źle robię. U mnie działa przycisk dobrze wyłącza i załącza
Kod:
#include "Timer.h"

//dodajemy timer

Timer t;

#define PRZYCISK 2 // Przycisk z
#define SWIATLO 3 // Przekaznik
#define PIR 5 // Czujnik ruchu
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
int CZAS_SWIECENIA = 6; // Czas świecenia 600/2 = 300s
int onTime = 0;
boolean state = false;
boolean isSwitchOn = false;

boolean wlaczony = false;

void setup() {

pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);
t.every(5, PIRCheck);//co 500ms wykonywana jest metoda

}

void loop() {
t.update();
}


void PIRCheck() {
if (digitalRead(PRZYCISK) == LOW && !state) { //jezeli wcisnieto przycisk i status zapalania jest na false
isSwitchOn = true;//to uruchom PIR i zielona LED1
}
if (digitalRead(PRZYCISK) == LOW && state) {//jezli wcisnieto przycisk i status zapalania jest na true
isSwitchOn = false;//wylacz PIR i czerona LED0
}
checkForMovement(isSwitchOn);
}

boolean checkForMovement(boolean isSwitchOn) {
if (isSwitchOn) {
if (onTime == 0) { //jak czas swiecienia jest rowny 0 to zwracaj tylko status czujnika
if (digitalRead(PIR) == HIGH) { //wykryto ruch
state = true;
}
else {
state = false;
}
}
if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund
if (digitalRead(PIR) == HIGH) {//wykryto ruch
onTime = 0;
state = true;
}
}
}

lightControl(state);
return state;
}


void lightControl(boolean isStateOn) {
if (isStateOn) {
if (onTime < CZAS_SWIECENIA) {
digitalWrite(SWIATLO, HIGH);
onTime++;
}
}
else {
digitalWrite(SWIATLO, LOW);
}

if (onTime > 10 && onTime < 14) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund (sekundy x2 bo timer chodzi w interwałach co 0,5 sekundy)
lightControl(checkForMovement(true));
}

if (onTime > CZAS_SWIECENIA) {
onTime = 0;
}
}

(01-12-2017, 20:06)Ronin napisał(a):
(30-11-2017, 11:05)Ronin napisał(a):
(29-11-2017, 09:58)tom5555 napisał(a):
Cytat:Za ile i z kont ?
Za 10 zł, za tyle go kupiłem. Jestem z Zabrza, jeżeli się zdecydujesz to możemy się dogadać gdzie i kiedy.

W tej chwili program wygląda tak: Prawie wszystko działa oprócz sygnalizacji działania czujnika pir  i fotorezystora. Chcę aby po załączeniu przyciskiem fotorezystor załączał i wyłączał czujnik ruchu. Na razie piszę to na wyświetlacz 16x2 bo taki tylko mam.
Cytat:
Kod PHP:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C

#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
#define CZAS_SWIECENIA 1000
#define FOTOREZYSTOR A1
#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPINDHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik A1  //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer Bounce(PRZYCISK20);
boolean wlaczony false;
unsigned long przycisk_czaswlaczony_czas;

void setup() {
 
 
 dht.begin();
 
 
  lcd
.init();                     
  lcd
.clear();// czyszczenie ekranu
 
 
  
// Wyświetl wiadomość na wyświetlaczu LCD.
 
 
  lcd
.backlight();//Zapalanie podświetlenia
 
 lcd.setCursor(0,0);
 
 lcd.print("Jasnosc:     ");
 
 
 pinMode
(LED0OUTPUT);
 
pinMode(LED1OUTPUT);
 
pinMode(SWIATLOOUTPUT);
 
digitalWrite(LED0HIGH);
 
digitalWrite(PIRLOW);
 
pinMode(PIRINPUT);
 
pinMode(PRZYCISKINPUT_PULLUP);
}

void zmiana()
{
 
digitalWrite(SWIATLOLOW);
 
wlaczony_czas millis() + CZAS_SWIECENIA;
 
przycisk_czas millis() + 1000;
 
wlaczony = !wlaczony;
 
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
 
 
   
//Sygnalizacja działania czujnika ruchu on/off
 
   
     digitalWrite
(PIRHIGH);
 
    lcd.setCursor(13,0);
 
    lcd.print("On");
 
 
     digitalWrite
(PIRLOW);
 
    lcd.setCursor(13,0);
 
    lcd.print("Off");

 
 float h dht.readHumidity();
 
 float t dht.readTemperature();
 
 if (isnan(t) || isnan(h)) {
 
     } else {
 
   lcd.setCursor(0,1);
 
   lcd.print("W:      T:      "); 
 
   lcd.setCursor(2,1);
 
   lcd.print(h);
 
   lcd.print("%");
 
   lcd.setCursor(10,1); 
 
   lcd.print(t);
 
   lcd.print("C");
 
 
  int war 
analogRead(czujnik);      //odczytanie wartości z A1*
 
 

  if 
(war 300); // o 8:55 jasność 416
 
   
  
//*gdy wartość przekroczy pewien ustalony próg, wtedy dioda na pinie 13 zaświeci się
 
 {
 
        
    lcd
.setCursor(0,0);
 
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony 
 
   lcd.setCursor(9,0);
 
   lcd.print(war);                     //wyświetlenie jej na LCD
 
  
  
}
 
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
 
 digitalWrite
(LED0wlaczony);
 
digitalWrite(LED1LOW);
 if (
przycisk_czas millis())
 
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmianaFALLING);

 if (
digitalRead(PIR))
 {
 
  if (wlaczony && wlaczony_czas millis())
 
       
   digitalWrite
(SWIATLOHIGH);
 }
 else
 
  digitalWrite(SWIATLOLOW);




Próbowałem dodać do programu linie i wyskakuje mi błąd stray `\302` in program dokładnie na linii onTime = 0;

Kod:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C
#include "Timer.h"

//dodajemy timer

Timer t;
#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
int CZAS_SWIECENIA = 600; // Czas świecenia 600/2 = 300s
int onTime = 0;
boolean state = false;

#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik = A1;   //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer = Bounce(PRZYCISK, 20);
boolean wlaczony = false;
unsigned long przycisk_czas, wlaczony_czas;

void setup() {

 dht.begin();
 
 lcd.init();                    
 lcd.clear();// czyszczenie ekranu
 
 // Wyświetl wiadomość na wyświetlaczu LCD.
 
 lcd.backlight();//Zapalanie podświetlenia
 lcd.setCursor(0,0);
 lcd.print("Jasnosc:     ");
 
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);

t.every(500, PIRCheck);  //co 500ms wykonywana jest metoda
}

void zmiana()
{
digitalWrite(SWIATLO, LOW);
wlaczony_czas = millis() + CZAS_SWIECENIA;
przycisk_czas = millis() + 1000;
wlaczony = !wlaczony;
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
  t.update();

void PIRCheck() {
 checkForMovement();
}

boolean checkForMovement() {
 if (onTime == 0) { //jak czas swiecienia jest rowny 0 to zwracaj tylko status czujnika
   if (digitalRead(PIR) == HIGH) { //wykryto ruch
     state = true;
   }
   else {
     state = false;
   }
 }

 if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund
   if (digitalRead(PIR) == HIGH) { //wykryto ruch
     onTime = 0;
     state = true;
   }
 }

 lightControl(state);
 return state;
}


void lightControl(boolean isStateOn) {
 if (isStateOn) {
   if (onTime < CZAS_SWIECENIA) {
     digitalWrite(SWIATLO, HIGH);
     onTime++;
   }
 }
 else {
   digitalWrite(SWIATLO, LOW);
 }

 if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund (sekundy x2 bo timer chodzi w interwałach co 0,5 sekundy)
   lightControl(checkForMovement());
 }

 if (onTime > CZAS_SWIECENIA) {
 onTime = 0;
}
}
 float h = dht.readHumidity();
 float t = dht.readTemperature();
 if (isnan(t) || isnan(h)) {
     } else {
   lcd.setCursor(0,1);
   lcd.print("W:      T:      ");
   lcd.setCursor(2,1);
   lcd.print(h);
   lcd.print("%");
   lcd.setCursor(10,1);
   lcd.print(t);
   lcd.print("C");
 
 int war = analogRead(czujnik);      //odczytanie wartości z A1*
 
 if (war < 900); // o 8:55 jasność 416 o 16:30 jasność 227
   
 //*gdy wartość przekroczy pewien ustalony próg, wtedy czujnik ruchu zadziała
 
   lcd.setCursor(0,0);
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony
   lcd.setCursor(9,0);
   lcd.print(war);                     //wyświetlenie jej na LCD
 
 }
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
digitalWrite(LED0, wlaczony);
digitalWrite(LED1, LOW);

if (przycisk_czas < millis())
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmiana, FALLING);

if (digitalRead(PIR))
{
  if (wlaczony && wlaczony_czas < millis())
       
  digitalWrite(SWIATLO, HIGH);
}
else
  digitalWrite(SWIATLO, LOW);

}
Próbowałem też jak kolega z forum napisał. Niestety nie działa tak jak ma działać. Po włączeniu zasilania ma się palić czerwona dioda LED1 a pali się zielona LED0. Przycisk załącza i wtedy działa czujnik Pir ale mimo że czekam bez ruchu aby wyłączył się przekaźnik to zero rekcji. Po powtórnym naciśnięciu  ma wyłączyć i palić się dioda LED1 czerwona. Zero reakcji. Tu program kolegi. Ps. zmieniałem  czas. Próbowałem też połączyć te dwa programy ale coś źle robię. U mnie działa przycisk dobrze wyłącza i załącza
Kod:
#include "Timer.h"

//dodajemy timer

Timer t;

#define PRZYCISK 2 // Przycisk z
#define SWIATLO 3 // Przekaznik
#define PIR 5 // Czujnik ruchu
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
int CZAS_SWIECENIA = 6; // Czas świecenia 600/2 = 300s
int onTime = 0;
boolean state = false;
boolean isSwitchOn = false;

boolean wlaczony = false;

void setup() {

pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);
t.every(5, PIRCheck);//co 500ms wykonywana jest metoda

}

void loop() {
t.update();
}


void PIRCheck() {
if (digitalRead(PRZYCISK) == LOW && !state) { //jezeli wcisnieto przycisk i status zapalania jest na false
isSwitchOn = true;//to uruchom PIR i zielona LED1
}
if (digitalRead(PRZYCISK) == LOW && state) {//jezli wcisnieto przycisk i status zapalania jest na true
isSwitchOn = false;//wylacz PIR i czerona LED0
}
checkForMovement(isSwitchOn);
}

boolean checkForMovement(boolean isSwitchOn) {
if (isSwitchOn) {
if (onTime == 0) { //jak czas swiecienia jest rowny 0 to zwracaj tylko status czujnika
if (digitalRead(PIR) == HIGH) { //wykryto ruch
state = true;
}
else {
state = false;
}
}
if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund
if (digitalRead(PIR) == HIGH) {//wykryto ruch
onTime = 0;
state = true;
}
}
}

lightControl(state);
return state;
}


void lightControl(boolean isStateOn) {
if (isStateOn) {
if (onTime < CZAS_SWIECENIA) {
digitalWrite(SWIATLO, HIGH);
onTime++;
}
}
else {
digitalWrite(SWIATLO, LOW);
}

if (onTime > 10 && onTime < 14) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund (sekundy x2 bo timer chodzi w interwałach co 0,5 sekundy)
lightControl(checkForMovement(true));
}

if (onTime > CZAS_SWIECENIA) {
onTime = 0;
}
}

(01-12-2017, 20:06)Ronin napisał(a):
(30-11-2017, 11:05)Ronin napisał(a):
(29-11-2017, 09:58)tom5555 napisał(a):
Cytat:Za ile i z kont ?
Za 10 zł, za tyle go kupiłem. Jestem z Zabrza, jeżeli się zdecydujesz to możemy się dogadać gdzie i kiedy.

W tej chwili program wygląda tak: Prawie wszystko działa oprócz sygnalizacji działania czujnika pir  i fotorezystora. Chcę aby po załączeniu przyciskiem fotorezystor załączał i wyłączał czujnik ruchu. Na razie piszę to na wyświetlacz 16x2 bo taki tylko mam.
Cytat:
Kod PHP:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C

#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
#define CZAS_SWIECENIA 1000
#define FOTOREZYSTOR A1
#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPINDHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik A1  //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer Bounce(PRZYCISK20);
boolean wlaczony false;
unsigned long przycisk_czaswlaczony_czas;

void setup() {
 
 
 dht.begin();
 
 
  lcd
.init();                     
  lcd
.clear();// czyszczenie ekranu
 
 
  
// Wyświetl wiadomość na wyświetlaczu LCD.
 
 
  lcd
.backlight();//Zapalanie podświetlenia
 
 lcd.setCursor(0,0);
 
 lcd.print("Jasnosc:     ");
 
 
 pinMode
(LED0OUTPUT);
 
pinMode(LED1OUTPUT);
 
pinMode(SWIATLOOUTPUT);
 
digitalWrite(LED0HIGH);
 
digitalWrite(PIRLOW);
 
pinMode(PIRINPUT);
 
pinMode(PRZYCISKINPUT_PULLUP);
}

void zmiana()
{
 
digitalWrite(SWIATLOLOW);
 
wlaczony_czas millis() + CZAS_SWIECENIA;
 
przycisk_czas millis() + 1000;
 
wlaczony = !wlaczony;
 
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
 
 
   
//Sygnalizacja działania czujnika ruchu on/off
 
   
     digitalWrite
(PIRHIGH);
 
    lcd.setCursor(13,0);
 
    lcd.print("On");
 
 
     digitalWrite
(PIRLOW);
 
    lcd.setCursor(13,0);
 
    lcd.print("Off");

 
 float h dht.readHumidity();
 
 float t dht.readTemperature();
 
 if (isnan(t) || isnan(h)) {
 
     } else {
 
   lcd.setCursor(0,1);
 
   lcd.print("W:      T:      "); 
 
   lcd.setCursor(2,1);
 
   lcd.print(h);
 
   lcd.print("%");
 
   lcd.setCursor(10,1); 
 
   lcd.print(t);
 
   lcd.print("C");
 
 
  int war 
analogRead(czujnik);      //odczytanie wartości z A1*
 
 

  if 
(war 300); // o 8:55 jasność 416
 
   
  
//*gdy wartość przekroczy pewien ustalony próg, wtedy dioda na pinie 13 zaświeci się
 
 {
 
        
    lcd
.setCursor(0,0);
 
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony 
 
   lcd.setCursor(9,0);
 
   lcd.print(war);                     //wyświetlenie jej na LCD
 
  
  
}
 
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
 
 digitalWrite
(LED0wlaczony);
 
digitalWrite(LED1LOW);
 if (
przycisk_czas millis())
 
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmianaFALLING);

 if (
digitalRead(PIR))
 {
 
  if (wlaczony && wlaczony_czas millis())
 
       
   digitalWrite
(SWIATLOHIGH);
 }
 else
 
  digitalWrite(SWIATLOLOW);




Próbowałem dodać do programu linie i wyskakuje mi błąd stray `\302` in program dokładnie na linii onTime = 0;

Kod:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C
#include "Timer.h"

//dodajemy timer

Timer t;
#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
int CZAS_SWIECENIA = 600; // Czas świecenia 600/2 = 300s
int onTime = 0;
boolean state = false;

#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik = A1;   //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer = Bounce(PRZYCISK, 20);
boolean wlaczony = false;
unsigned long przycisk_czas, wlaczony_czas;

void setup() {

 dht.begin();
 
 lcd.init();                    
 lcd.clear();// czyszczenie ekranu
 
 // Wyświetl wiadomość na wyświetlaczu LCD.
 
 lcd.backlight();//Zapalanie podświetlenia
 lcd.setCursor(0,0);
 lcd.print("Jasnosc:     ");
 
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);

t.every(500, PIRCheck);  //co 500ms wykonywana jest metoda
}

void zmiana()
{
digitalWrite(SWIATLO, LOW);
wlaczony_czas = millis() + CZAS_SWIECENIA;
przycisk_czas = millis() + 1000;
wlaczony = !wlaczony;
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
  t.update();

void PIRCheck() {
 checkForMovement();
}

boolean checkForMovement() {
 if (onTime == 0) { //jak czas swiecienia jest rowny 0 to zwracaj tylko status czujnika
   if (digitalRead(PIR) == HIGH) { //wykryto ruch
     state = true;
   }
   else {
     state = false;
   }
 }

 if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund
   if (digitalRead(PIR) == HIGH) { //wykryto ruch
     onTime = 0;
     state = true;
   }
 }

 lightControl(state);
 return state;
}


void lightControl(boolean isStateOn) {
 if (isStateOn) {
   if (onTime < CZAS_SWIECENIA) {
     digitalWrite(SWIATLO, HIGH);
     onTime++;
   }
 }
 else {
   digitalWrite(SWIATLO, LOW);
 }

 if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund (sekundy x2 bo timer chodzi w interwałach co 0,5 sekundy)
   lightControl(checkForMovement());
 }

 if (onTime > CZAS_SWIECENIA) {
 onTime = 0;
}
}
 float h = dht.readHumidity();
 float t = dht.readTemperature();
 if (isnan(t) || isnan(h)) {
     } else {
   lcd.setCursor(0,1);
   lcd.print("W:      T:      ");
   lcd.setCursor(2,1);
   lcd.print(h);
   lcd.print("%");
   lcd.setCursor(10,1);
   lcd.print(t);
   lcd.print("C");
 
 int war = analogRead(czujnik);      //odczytanie wartości z A1*
 
 if (war < 900); // o 8:55 jasność 416 o 16:30 jasność 227
   
 //*gdy wartość przekroczy pewien ustalony próg, wtedy czujnik ruchu zadziała
 
   lcd.setCursor(0,0);
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony
   lcd.setCursor(9,0);
   lcd.print(war);                     //wyświetlenie jej na LCD
 
 }
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
digitalWrite(LED0, wlaczony);
digitalWrite(LED1, LOW);

if (przycisk_czas < millis())
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmiana, FALLING);

if (digitalRead(PIR))
{
  if (wlaczony && wlaczony_czas < millis())
       
  digitalWrite(SWIATLO, HIGH);
}
else
  digitalWrite(SWIATLO, LOW);

}
Próbowałem też jak kolega z forum napisał. Niestety nie działa tak jak ma działać. Po włączeniu zasilania ma się palić czerwona dioda LED1 a pali się zielona LED0. Przycisk załącza i wtedy działa czujnik Pir ale mimo że czekam bez ruchu aby wyłączył się przekaźnik to zero rekcji. Po powtórnym naciśnięciu  ma wyłączyć i palić się dioda LED1 czerwona. Zero reakcji. Tu program kolegi. Ps. zmieniałem  czas. Próbowałem też połączyć te dwa programy ale coś źle robię. U mnie działa przycisk dobrze wyłącza i załącza
Kod:
#include "Timer.h"

//dodajemy timer

Timer t;

#define PRZYCISK 2 // Przycisk z
#define SWIATLO 3 // Przekaznik
#define PIR 5 // Czujnik ruchu
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
int CZAS_SWIECENIA = 6; // Czas świecenia 600/2 = 300s
int onTime = 0;
boolean state = false;
boolean isSwitchOn = false;

boolean wlaczony = false;

void setup() {

pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);
t.every(5, PIRCheck);//co 500ms wykonywana jest metoda

}

void loop() {
t.update();
}


void PIRCheck() {
if (digitalRead(PRZYCISK) == LOW && !state) { //jezeli wcisnieto przycisk i status zapalania jest na false
isSwitchOn = true;//to uruchom PIR i zielona LED1
}
if (digitalRead(PRZYCISK) == LOW && state) {//jezli wcisnieto przycisk i status zapalania jest na true
isSwitchOn = false;//wylacz PIR i czerona LED0
}
checkForMovement(isSwitchOn);
}

boolean checkForMovement(boolean isSwitchOn) {
if (isSwitchOn) {
if (onTime == 0) { //jak czas swiecienia jest rowny 0 to zwracaj tylko status czujnika
if (digitalRead(PIR) == HIGH) { //wykryto ruch
state = true;
}
else {
state = false;
}
}
if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund
if (digitalRead(PIR) == HIGH) {//wykryto ruch
onTime = 0;
state = true;
}
}
}

lightControl(state);
return state;
}


void lightControl(boolean isStateOn) {
if (isStateOn) {
if (onTime < CZAS_SWIECENIA) {
digitalWrite(SWIATLO, HIGH);
onTime++;
}
}
else {
digitalWrite(SWIATLO, LOW);
}

if (onTime > 10 && onTime < 14) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund (sekundy x2 bo timer chodzi w interwałach co 0,5 sekundy)
lightControl(checkForMovement(true));
}

if (onTime > CZAS_SWIECENIA) {
onTime = 0;
}
}

(01-12-2017, 20:06)Ronin napisał(a):
(30-11-2017, 11:05)Ronin napisał(a):
(29-11-2017, 09:58)tom5555 napisał(a):
Cytat:Za ile i z kont ?
Za 10 zł, za tyle go kupiłem. Jestem z Zabrza, jeżeli się zdecydujesz to możemy się dogadać gdzie i kiedy.

W tej chwili program wygląda tak: Prawie wszystko działa oprócz sygnalizacji działania czujnika pir  i fotorezystora. Chcę aby po załączeniu przyciskiem fotorezystor załączał i wyłączał czujnik ruchu. Na razie piszę to na wyświetlacz 16x2 bo taki tylko mam.
Cytat:
Kod PHP:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C

#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
#define CZAS_SWIECENIA 1000
#define FOTOREZYSTOR A1
#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPINDHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik A1  //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer Bounce(PRZYCISK20);
boolean wlaczony false;
unsigned long przycisk_czaswlaczony_czas;

void setup() {
 
 
 dht.begin();
 
 
  lcd
.init();                     
  lcd
.clear();// czyszczenie ekranu
 
 
  
// Wyświetl wiadomość na wyświetlaczu LCD.
 
 
  lcd
.backlight();//Zapalanie podświetlenia
 
 lcd.setCursor(0,0);
 
 lcd.print("Jasnosc:     ");
 
 
 pinMode
(LED0OUTPUT);
 
pinMode(LED1OUTPUT);
 
pinMode(SWIATLOOUTPUT);
 
digitalWrite(LED0HIGH);
 
digitalWrite(PIRLOW);
 
pinMode(PIRINPUT);
 
pinMode(PRZYCISKINPUT_PULLUP);
}

void zmiana()
{
 
digitalWrite(SWIATLOLOW);
 
wlaczony_czas millis() + CZAS_SWIECENIA;
 
przycisk_czas millis() + 1000;
 
wlaczony = !wlaczony;
 
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
 
 
   
//Sygnalizacja działania czujnika ruchu on/off
 
   
     digitalWrite
(PIRHIGH);
 
    lcd.setCursor(13,0);
 
    lcd.print("On");
 
 
     digitalWrite
(PIRLOW);
 
    lcd.setCursor(13,0);
 
    lcd.print("Off");

 
 float h dht.readHumidity();
 
 float t dht.readTemperature();
 
 if (isnan(t) || isnan(h)) {
 
     } else {
 
   lcd.setCursor(0,1);
 
   lcd.print("W:      T:      "); 
 
   lcd.setCursor(2,1);
 
   lcd.print(h);
 
   lcd.print("%");
 
   lcd.setCursor(10,1); 
 
   lcd.print(t);
 
   lcd.print("C");
 
 
  int war 
analogRead(czujnik);      //odczytanie wartości z A1*
 
 

  if 
(war 300); // o 8:55 jasność 416
 
   
  
//*gdy wartość przekroczy pewien ustalony próg, wtedy dioda na pinie 13 zaświeci się
 
 {
 
        
    lcd
.setCursor(0,0);
 
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony 
 
   lcd.setCursor(9,0);
 
   lcd.print(war);                     //wyświetlenie jej na LCD
 
  
  
}
 
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
 
 digitalWrite
(LED0wlaczony);
 
digitalWrite(LED1LOW);
 if (
przycisk_czas millis())
 
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmianaFALLING);

 if (
digitalRead(PIR))
 {
 
  if (wlaczony && wlaczony_czas millis())
 
       
   digitalWrite
(SWIATLOHIGH);
 }
 else
 
  digitalWrite(SWIATLOLOW);




Próbowałem dodać do programu linie i wyskakuje mi błąd stray `\302` in program dokładnie na linii onTime = 0;

Kod:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C
#include "Timer.h"

//dodajemy timer

Timer t;
#define PRZYCISK 2
#define SWIATLO 3                                                                                                                                                      
#define PIR 5
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
int CZAS_SWIECENIA = 600; // Czas świecenia 600/2 = 300s
int onTime = 0;
boolean state = false;

#define DHTPIN 4  
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik = A1;   //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer = Bounce(PRZYCISK, 20);
boolean wlaczony = false;
unsigned long przycisk_czas, wlaczony_czas;

void setup() {

 dht.begin();
 
 lcd.init();                    
 lcd.clear();// czyszczenie ekranu
 
 // Wyświetl wiadomość na wyświetlaczu LCD.
 
 lcd.backlight();//Zapalanie podświetlenia
 lcd.setCursor(0,0);
 lcd.print("Jasnosc:     ");
 
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);

t.every(500, PIRCheck);  //co 500ms wykonywana jest metoda
}

void zmiana()
{
digitalWrite(SWIATLO, LOW);
wlaczony_czas = millis() + CZAS_SWIECENIA;
przycisk_czas = millis() + 1000;
wlaczony = !wlaczony;
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
  t.update();

void PIRCheck() {
 checkForMovement();
}

boolean checkForMovement() {
 if (onTime == 0) { //jak czas swiecienia jest rowny 0 to zwracaj tylko status czujnika
   if (digitalRead(PIR) == HIGH) { //wykryto ruch
     state = true;
   }
   else {
     state = false;
   }
 }

 if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund
   if (digitalRead(PIR) == HIGH) { //wykryto ruch
     onTime = 0;
     state = true;
   }
 }

 lightControl(state);
 return state;
}


void lightControl(boolean isStateOn) {
 if (isStateOn) {
   if (onTime < CZAS_SWIECENIA) {
     digitalWrite(SWIATLO, HIGH);
     onTime++;
   }
 }
 else {
   digitalWrite(SWIATLO, LOW);
 }

 if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund (sekundy x2 bo timer chodzi w interwałach co 0,5 sekundy)
   lightControl(checkForMovement());
 }

 if (onTime > CZAS_SWIECENIA) {
 onTime = 0;
}
}
 float h = dht.readHumidity();
 float t = dht.readTemperature();
 if (isnan(t) || isnan(h)) {
     } else {
   lcd.setCursor(0,1);
   lcd.print("W:      T:      ");
   lcd.setCursor(2,1);
   lcd.print(h);
   lcd.print("%");
   lcd.setCursor(10,1);
   lcd.print(t);
   lcd.print("C");
 
 int war = analogRead(czujnik);      //odczytanie wartości z A1*
 
 if (war < 900); // o 8:55 jasność 416 o 16:30 jasność 227
   
 //*gdy wartość przekroczy pewien ustalony próg, wtedy czujnik ruchu zadziała
 
   lcd.setCursor(0,0);
   lcd.print("Jasnosc:    |   "); // Off czujnik pir wyłączony On załączony
   lcd.setCursor(9,0);
   lcd.print(war);                     //wyświetlenie jej na LCD
 
 }
 delay(1000);                         //opóźnienie między kolejnymi odczytami
 
digitalWrite(LED0, wlaczony);
digitalWrite(LED1, LOW);

if (przycisk_czas < millis())
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmiana, FALLING);

if (digitalRead(PIR))
{
  if (wlaczony && wlaczony_czas < millis())
       
  digitalWrite(SWIATLO, HIGH);
}
else
  digitalWrite(SWIATLO, LOW);

}
Próbowałem też jak kolega z forum napisał. Niestety nie działa tak jak ma działać. Po włączeniu zasilania ma się palić czerwona dioda LED1 a pali się zielona LED0. Przycisk załącza i wtedy działa czujnik Pir ale mimo że czekam bez ruchu aby wyłączył się przekaźnik to zero rekcji. Po powtórnym naciśnięciu  ma wyłączyć i palić się dioda LED1 czerwona. Zero reakcji. Tu program kolegi. Ps. zmieniałem  czas. Próbowałem też połączyć te dwa programy ale coś źle robię. U mnie działa przycisk dobrze wyłącza i załącza
Kod:
#include "Timer.h"

//dodajemy timer

Timer t;

#define PRZYCISK 2 // Przycisk z
#define SWIATLO 3 // Przekaznik
#define PIR 5 // Czujnik ruchu
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
int CZAS_SWIECENIA = 6; // Czas świecenia 600/2 = 300s
int onTime = 0;
boolean state = false;
boolean isSwitchOn = false;

boolean wlaczony = false;

void setup() {

pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
digitalWrite(LED0, HIGH);

pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);
t.every(5, PIRCheck);//co 500ms wykonywana jest metoda

}

void loop() {
t.update();
}


void PIRCheck() {
if (digitalRead(PRZYCISK) == LOW && !state) { //jezeli wcisnieto przycisk i status zapalania jest na false
isSwitchOn = true;//to uruchom PIR i zielona LED1
}
if (digitalRead(PRZYCISK) == LOW && state) {//jezli wcisnieto przycisk i status zapalania jest na true
isSwitchOn = false;//wylacz PIR i czerona LED0
}
checkForMovement(isSwitchOn);
}

boolean checkForMovement(boolean isSwitchOn) {
if (isSwitchOn) {
if (onTime == 0) { //jak czas swiecienia jest rowny 0 to zwracaj tylko status czujnika
if (digitalRead(PIR) == HIGH) { //wykryto ruch
state = true;
}
else {
state = false;
}
}
if (onTime > 100 && onTime < 140) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund
if (digitalRead(PIR) == HIGH) {//wykryto ruch
onTime = 0;
state = true;
}
}
}

lightControl(state);
return state;
}


void lightControl(boolean isStateOn) {
if (isStateOn) {
if (onTime < CZAS_SWIECENIA) {
digitalWrite(SWIATLO, HIGH);
onTime++;
}
}
else {
digitalWrite(SWIATLO, LOW);
}

if (onTime > 10 && onTime < 14) { //jezeli czas zalacznie przekaznika jest pomiedzy 50 a 70 sekund (sekundy x2 bo timer chodzi w interwałach co 0,5 sekundy)
lightControl(checkForMovement(true));
}

if (onTime > CZAS_SWIECENIA) {
onTime = 0;
}
}
Jak nie chcesz odpowiedzieć to nie pisz !!!
Odpowiedz
#17
Cześć, mógłbyś podesłać aktualny kod, bo twój ostatni post jest całkowicie nie czytelny, ze względu na odnośniki do innych postów
>> Nie pomagam na PW. Od tego jest forum Uśmiech >> Koniecznie sprawdź: Jak dodawać załączniki

1 problem = 1 wątek
Odpowiedz
#18
(03-12-2017, 01:19)feriar napisał(a): Cześć, mógłbyś podesłać aktualny kod, bo twój ostatni post jest całkowicie nie czytelny, ze względu na odnośniki do innych postów

Ok.To ostatni aktualny kod: Próbowałem kopiować listę błędów. Znikęła mi gdzieś ta zakładka.
Kod:
#include "DHT.h" //Biblioteka do AM2302
#include <Bounce2.h> //Biblioteka do przycisków
#include <LiquidCrystal_I2C.h> //Biblioteka do LCD I2C

#define PRZYCISK 2 // Przycisk On/Off
#define SWIATLO 3  // Przekaznik                                                                                                                                                    
#define PIR 5      // Czujnik Ruchu
#define LED0 13 //Czerwona
#define LED1 12 //Zielona
#define CZAS_SWIECENIA 1000

#define DHTPIN 4 //Czujnik tmperatury i wilgotności
#define DHTTYPE DHT22   // DHT 22  (AM2302)

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x3F,16,2);

int czujnik = A1;   //pin analogowy A1 połączony z nóżką fotorezystora*

Bounce bouncer = Bounce(PRZYCISK, 20);
boolean wlaczony = false;
unsigned long przycisk_czas, wlaczony_czas;

void setup() {

 dht.begin();
 
 lcd.init();                    
 lcd.clear();// czyszczenie ekranu
 
 // Wyświetl wiadomość na wyświetlaczu LCD.
 
 lcd.backlight();//Zapalanie podświetlenia
 lcd.setCursor(0,0);
 lcd.print("Jasnosc:     ");
 
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(SWIATLO, OUTPUT);
pinMode(PIR, INPUT);
pinMode(PRZYCISK, INPUT_PULLUP);
}

void zmiana()
{
digitalWrite(SWIATLO, LOW);
wlaczony_czas = millis() + CZAS_SWIECENIA;
przycisk_czas = millis() + 1000;
wlaczony = !wlaczony;
detachInterrupt(digitalPinToInterrupt(PRZYCISK));
}

void loop() {
 
 // Termometr i wilgotnościomierz
 
 float h = dht.readHumidity();
 float t = dht.readTemperature();
 if (isnan(t) || isnan(h)) {
     } else {
   
   lcd.setCursor(0,1);
   lcd.print("W:      T:      ");
   lcd.setCursor(2,1);
   lcd.print(h);
   lcd.print("%");
   lcd.setCursor(10,1);
   lcd.print(t);
   lcd.print("C");

  //Fotorezystor
   int war = analogRead(czujnik);      //odczytanie wartości z A1*
                //wyświetlenie jej na monitorze
 lcd.print(war);                     //wyświetlenie jej na LCD
 lcd.setCursor(13,1);
  if (war < 300)                      //*gdy wartość przekroczy pewien ustalony próg, wtedy dioda na pinie 13 zaświeci się
 {
   
    lcd.setCursor(13,0);
    lcd.print(" On ");
     
   
 }
 else
 {
   
   lcd.setCursor(13,0);
   lcd.print("Off");
 
   
 }
 //gdy wartość przekroczy pewien ustalony próg, wtedy czujnik ruchu zadziała
 
   lcd.setCursor(0,0);
   lcd.print("Jasnosc:        ");
   lcd.setCursor(9,0);
   lcd.print(war);                     //wyświetlenie jej na LCD
 
 }
 delay(1000);                         //opóźnienie między kolejnymi odczytami

//
 
digitalWrite(LED0, wlaczony);
digitalWrite(LED1, LOW);
if (przycisk_czas < millis())
  attachInterrupt(digitalPinToInterrupt(PRZYCISK), zmiana, FALLING);

if (digitalRead(PIR))
{
  if (wlaczony && wlaczony_czas < millis())
       
  digitalWrite(SWIATLO, HIGH);
}
else
  digitalWrite(SWIATLO, LOW);

}
Próbowałem wstawić- jeżeli wartość jasność mniejsza lub równa 300 to czujnik ruchu załączony a jeśli większa od 300 to wyłączony. if (war<=300?... if (war>300...
Jak nie chcesz odpowiedzieć to nie pisz !!!
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości