Skocz do zawartości

Jak zrobić czujnik zmierzchu


Pomocna odpowiedź

Napisano

Witam, jeśli zły dział to przepraszam i proszę o przeniesienie 🙂

Chcę zrobić czujnik zmierzchu do zapalania żarówki, wszystko ładnie działa ale do pewnego momentu gdy na potencjometrze ustawię np. wartość 750 i fotorezystor będzie zgłaszał wartość raz 749 a raz 750 to żarówka migocze, próbowałem też zmniejszyć dokładność pomiaru wartość z fotorezystora i potencjometru podzieliłem przez 10 i zapisałem do inta, ale to nic nie pomogło, nie chciałbym kupować gotowego modułu.Podpinam to jak na schemacie. Z góry bardzo dziękuję za pomoc 🙂

int fotorezystorV = analogRead (A1); // wartości od 0 do 1023
int potencjometrV = analogRead (A0); // wartości od 0 do 1023
if(fotorezystorV <= potencjometrV)
 { 
   digitalWrite(pin_dioda, HIGH);
 }
 if((fotorezystorV <= (potencjometrV+10)) && (fotorezystorV >= (potencjometrV-10)))
 {              
   digitalWrite(pin_dioda, HIGH);
 }
 if(fotorezystorV < potencjometrV)          
 {
   digitalWrite(pin_dioda, LOW); 
 }

W ten sposób?

Coś w tym stylu ale za mocno komplikujesz.

Masz trzy możliwiści:

Jeślu oświetlenie spada poniżej x-n - włączasz światło.

Jeśli rośnie powyżej x+n - wyłączasz.

Jeśli jest w zakresie x-n do x+n - nic nie robisz.

  • Lubię! 1
  • 2 tygodnie później...

kod teraz wygląda tak, dzisiaj dałem n=5 bo dla n=2 efekt był mizerny

 potencjometrV = analogRead (potencjometr);
     fotorezystorV = analogRead (fotorezystor);

     if(fotorezystorV < potencjometrV - n){
       pirOneV = digitalRead (pirOne);
       pirTwoV = digitalRead (pirTwo);

       if(pirOneV == HIGH || pirTwoV == HIGH){
         digitalWrite (ledOut, HIGH);
       }else if(pirOneV == LOW && pirTwoV == LOW){
         digitalWrite (ledOut, LOW);
       }
     }else if (fotorezystorV > potencjometrV + n){
       digitalWrite (ledOut, LOW);
     } else if ((fotorezystorV <= potencjometrV - n) && (fotorezystorV >= potencjometrV + n)){ 
     }



   delay(500);

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