• 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
problem
#1
jako abnegat w tej dziedzinie mam duzo prośbę do doświadczonych 

potrzebuję dokonać takowego cudu 

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Helvetica; min-height: 16.0px}
algorytm

wejscie 1   na wejsciu podlaczony dzielnik w ukladzie fotorezystor do Vcc ( wezel ) i rezystor do Gnd
wejscie 2   podlaczony sygnal wyjsciowy z czujki PIR

wyjscie 1 PWM
wyjscie 2 w stanie pulldown do tego wyjscia podlaczone Vcc czujki PIR

zasada dzialania 

jezeli napiecie na wezle spadnie do poziomu 2.5 V na wyjsciu PWM ma wystapic przebieg o wypelnieniu 50%
oraz wyjscie 2 ma zostac podciagnie do pullup

sprawdzanie stanu wejscia 2 
jezeli na wejsciu 2 pojawi sie sygnal z czujki PIR ( wykryto ruch )
na PWM ma sie pojawic sygnal o wypelnieniu 100% 

koniec




nie za bardzo mi to wychodzi 
próbowalem " posklejać " kilka gotowców ale .... lipa 


może mnie ktoś naprowadzić jak to zrobić ?
nie chodzi mi o gotowy kod - proszę o jakieś wskazówki 

dzięki
 
Odpowiedź
#2
Pokaż schemat.
Wklej kod, nawet to, co próbowałeś posklejać.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#3
A co to ma w ogóle robić, bo założenia nie wyglądają na dobrane przez kogoś kto używa uC.
Chyba że pullup/down i podciąganie to coś innego niż mi się wydawało. Chcesz zasilać wyjściem 2 to po prostu wystawiasz stan niski/wysoki, podciąganie to raczej wymuszanie określonego stanu wejścia by nie było gdzieś w stanie nieustalonym bez sygnału wejściowego. Możesz taki ficzer użyć np. na wejście 2. PIR nie powinien pobierać więcej niż 20mA z UNO, dla większego prądu użyj go tylko jako sygnał włączający.

Uruchamiasz program i funkcją analog write na pinie z PWM ustawiasz to swoje 50%, może być jeszcze w setup. 
https://www.arduino.cc/reference/en/lang...alogwrite/
Jeśli jasność otoczenia osiągnie wymagany poziom włączasz zasilanie PIR i aktywujesz przerwanie od zbocza (piny 2 lub 3 Arduino UNO) wejścia od PIR. I tu możesz sobie dodać ten rezystor podciągający do stanu przeciwnego niż ustawia czujka po wykryciu ruchu, można użyć wewnętrznego pullup.
https://www.arduino.cc/reference/en/lang...interrupt/
Ten pin podłaczasz do pinu A0-A7, odczyt funkcją analog read.
https://www.arduino.cc/reference/en/lang...nalogread/
Jeśli poziom jasności otoczenia jest poza zakresem wyłączasz zasilanie PIR i przerwanie, ustawiasz PWM na 50%.
W przerwaniu, po jego wywołaniu ustawiasz PWM na 100%. Może też być zmienna volatile trzymająca stan PWM, 1 to 100%, 0 to 50%, PWM ustawiasz sobie w jednym miejscu w loop w zależności od jej stanu, jeśli się zmieniła. W przerwaniu tylko zmieniasz jej stan na 1. Można też w każdym obiegu pętli testować stan tego pinu, jak to ma być cały program to zrobi to parę tysięcy razy w sekundę. 
Do tego za bardzo gotowców nie potrzeba to kilka już gotowych funkcji Arduino.
Musisz jeszcze się zastanowić co zrobić po wywołaniu alarmu PIR, ma to zostać w tym stanie na zawsze, na określony czas (użyj millis do zarządzania czasem jak już), czekać na reset stanu od przycisku, zapisywać ilość wystąpień co określony czas. Wtedy wyzeruj zmienną trzymającą stan PWM.
Jak nie zrozumiałeś powyższego to poczytaj kursy Arduino: https://forbot.pl/blog/kursy.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości