Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 29 gru 2024, o 02:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
PostNapisane: 13 lut 2012, o 23:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

Witam.

Aktualnie pracuję nad projektem podświetlenia w kuchni dla kochanej mamusi :) projekt oparty o Atmege8 bo akurat taką wolną mam.

Dotychczasowe wymogi projektu:
- Procek ma stopniowo zapalać listwę diodową po naciśnięciu guzika oraz wygasić diody po ponownym jego naciśnięciu.
- Przy wchodzeniu do kuchni, listwa diodowa ma się zapalić. Lecz nie wygasić przy ponownym wejściu wyjściu.
po około 15min. diody mają się samoistnie wygasić.


Pierwszy etap mam za sobą :) i drugi w połowie. I o tą połowę mam pytanie.
Co sądzicie o wykorzystaniu diody nadawczej IR oraz odbiorczej do wykonania takiego wykrywania czy ktoś wszedł do kuchni ?
Może trochę bardziej wyjaśnię na czym to ma polegać. Otóż dioda nadawcza oraz odbiorcza ma się ze sobą komunikować przy wejściu do kuchni. Gdy ktoś wchodzi przerywa na chwile transmisje która wywołuje zapalenie listwy diodowej.

Na moim prototypie działa. Znaczy jeszcze testuje. Przy aktualnych ustawieniach od paru godzin działa bez zastrzeżeń. Czyli gdy przesunę dłonią między nimi to zapalają mi w tym wypadku jedną diodkę. Wyłączam na razie guzikiem. Przy wcześniejszych próbach miałem problemy związane z samoistnym zapaleniem diody.
Ale jak już wspomniałem na razie wydaje się działać bez zastrzeżeń.

Jak to działa ?
Dioda nadaje dziesięć razy na sekundę co powoduje przerwanie pod warunkiem że dany sygnał odbierze dioda odbiorcza.
Następnie w przerwaniu zwiększam licznik Timer5 do jednej trzeciej sekundy.
Gdy coś lub ktoś uniemożliwi dotarcie sygnału do diody odbiorczej na dłużej niż jedna trzecia sekundy to automatycznie zapala się w tym wypadku dioda.
Zaznaczam ze wszystkie czasy i wartości są w trakcie testów i ulegają zmianie.


I tu chciałbym poradzić się bardziej doświadczonych kolegów o może jakieś rady ? Albo jak widzą takie rozwiązanie. Znaczy np fotokomórka trochę droższa od tych dwóch diodek. A puki co moje rozwiązanie wydaje się działać :) tylko nie chciał bym sytuacji że podziała parę godzin a np w środku nocy zacznie mi się światło w kuchni samo zapalać. Miałem tak przy moim prototypie gdy testowałem inne transmisje i gdy rozstawiłem diody zbyt daleko. Aktualnie zmniejszyłem rezystancje oporników przy diodzie nadawczej i zwiększyłem zasięg. Póki co testuje na odległości na oko 40cm.

Poniżej moje wstępna poglądowa wersja schematu.

http://imageshack.us/f/109/okuchnia.png

Uprzedzam że puki co mało ma wspólnego z połączeniowy w prototypie na płytce stykowej.
W gwoli ścisłości w prototypie dioda nadawcza jest sterowana bezpośrednio z nóżki procka a rezystor obciążający ma wartość na oko 110Ohm. Na oko bo to w rzeczywistości trzy równolegle połączone rezystory op wartościach 330Ohm. Korzystam z diody odbiorczej znajdującej się na płytce testowej z zestawu ATB 1.03.

Z góry dziękuję za uwagę :)

*** Przepraszam za wcześniejsze umieszczenie w złym dziale



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2012, o 23:08 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27320
Lokalizacja: Szczecin
Pomógł: 1041

Tak na gorąco podpowiem 2 rzeczy

1. co to za czujnik podczerwieni ? typ ? - bo w ogóle niepotrzebnie dałeś ten tranzystor T1 - tzn on nie szkodzi no ale po co dawać coś czego nie trzeba - wystarczy sam rezystor 10K podciągający do VCC a wyjście odbiornika od razu do INT0

2. Ten optoizolator OK1 - to chyba nieporozumienie z kolei - to właśnie na jego wyjściu powinieneś dać tranzystor, który będzie załączał te diody LED - bo przecież obciążalność tranzystora na wyjściu tego OK1 jest tragicznie mała .... skończy się to tym, że szybko sobie strzeli.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2012, o 23:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

1. Czujnik to IRM-3636N3S27F45-P a tranzystor dałem dla lepszego dopasowania sygnału. Aczkolwiek jak teraz patrze to nie potrzebnie bo przecież Uc wychwyci bez problemy zbocze opadające. Prawda ?

2. No tego nie przewidziałem. Dziękuje za cenną uwagę :) bym sobie włosy z głowy wyrywał zastanawiając się czemu nie działa :D

Ale ogólnie pomysł na wykorzystanie do tego celu diod Ir nie jest zły ? co pan sądzi Panie Mirku ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2012, o 23:42 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27320
Lokalizacja: Szczecin
Pomógł: 1041

DidekxD napisał(a):
1. Czujnik to IRM-3636N3S27F45-P a tranzystor dałem dla lepszego dopasowania sygnału. Aczkolwiek jak teraz patrze to nie potrzebnie bo przecież Uc wychwyci bez problemy zbocze opadające. Prawda ?

Ło Matko z córką - a co to za czujnik ????? myślałem że to jakiś typowy TFMS - i taki polecam użyć - nawet nie mogłem znaleźć PDF'a do tego co podałeś więc nie wiem co to za ustrojstwo... ale dokładnie można podać na wejście procka i wychwyci zbocze opadające - hmmm tylko co on jest tzn MUSI być zasilany 3,3V ??? jeśli tak to już z tego powodu bym się go pozbył na rzecz TFMS'a który może być zasilany od 3,3 do 5V

DidekxD napisał(a):
Ale ogólnie pomysł na wykorzystanie do tego celu diod Ir nie jest zły ? co pan sądzi Panie Mirku ?


Wszystko dobrze - tylko jak weźmiesz TFMS to będziesz musiał wygenerować sobie nośną 36kHz i tak zdecydowanie lepiej zrobić żeby nie było zakłóceń i żeby ci się światło w kuchni samo nie zapalało ;) A nośną spokojnie można wygenerować z procka - zobacz w książce jak to się robi prosto na przykładzie pilota RC5 ;)

Zresztą takie TFMS'y idealnie nadają się do takich barier - dzięki temu zapalenie świetlówki nie spowoduje oszukanie twojego systemu ze zwykłymi diodami IR świecącymi ciągle - to bardzo zawodne może się okazać w praktyce.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2012, o 23:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

http://pdf1.alldatasheet.com/datasheet- ... 636N3.html

Właśnie dojrzałem że raczej nie musi być zasilany 3.3V na sztywno :) nie popatrzyłem a wzorowałem się na innym gotowym schemacie.
Czujnik mam za friko z telewizorów LCD Philipsa. Więc uznałem że mogą się nadać ^ ^'

Dioda nadaje sygnał o częstotliwości 36kHz dziesięć razy na sekundę.
Teraz się tak zastanawiam czy czasem nie walnąłem babola z tą częstotliwością. Znaczy mam preskaler ustawiony na około 36kHz ale nadaje sygnał zapalając dudę i gasząc przez jakiś tam czas i dzieje się to właśnie 10 razy na sekundę. Ale czy tym sposobem dioda nie nadaje z połową tej częstotliwości ? Mam namyśli to czy liczy się cały cykl (1 0) czy częstotliwość jedynek na odbiorniku. Nie wiem czy zrozumiale przekazałem moją myśl.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2012, o 00:15 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27320
Lokalizacja: Szczecin
Pomógł: 1041

Poczytaj w książce ;) jeśli korzystasz z CTC to musi być ok 72kHz żeby częstotliwość nośna wyszła 36kHz

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2012, o 00:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

Tak korzystam z CTC którym jednocześnie taktuje timery programowe :) Dziękuje za cenne uwagi! Na pewno się przydadzą przy dalszym projektowaniu :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2012, o 00:38 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 lut 2012
Posty: 155
Lokalizacja: PL, DE, UK, IRL
Pomógł: 3

--> DidekxD

o ile dobrze rozumiem idęę Twojego programu to chcesz zbudować tor podczerwieni jako czujnik wykrywający wejście do pokoju/kuchni. to trzeba ciągnąć kable dookoła wejścia,żeby umieścić detektor i generator tak coby się widziały i były przerywane wejściem do pomieszczenia. Albo generator zasilać bateryjnie i to dodatkowy problem, bo trzeba jakoś monitować stan tej baterii, albo z sieci z zasilacza.. ogólnie dużo zabawy ;-)

jesli projekt jest na etapie ewaluacji, to może warto byłoby zainteresować się czymś w rodzaju pasywnej czujki ruchu PIR. to jest chyba wygodniejsze w późniejszym montażu użytkowym urządzenia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2012, o 16:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

Witam. Chciałbym żeby koledzy rzucili okiem na mój schemat, krytycznym okiem bo chciałbym żeby wszystko hulało aż miło :)

http://img593.imageshack.us/img593/1282/aaabe.png

Aktualnie na płytce stykowej wszystko jest połączone tak samo oprócz zasilania Uc oraz listwy.
- Uc na razie zasilam z zestawu ATB
- Zamiast na listwie testuje na jednej diodzie która pracuje na tym samym zasilaniu co Uc

Aktualnie wszystko wydaje się działać bez zarzutu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2012, o 17:54 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27320
Lokalizacja: Szczecin
Pomógł: 1041

Spójrz - tranzystor PNP T2 dobrałeś i zastosowałeś prawidłowo ale niestety to co zrobiłeś z T3 to porażka :( - nie można tak stosować tranzystora. Jeśli PNP to obwód załączany dajesz w kolektorze a nie emiterze a jeśli stosujesz zasilanie +12V - to o tyle dobrze, że dałeś rezystor R8 podciągający do +12 bazę - jednak zapomniałeś o rezystorze do bazy. Wprawdzie przy takim dziwnym układzie niby prąd ograniczany jest przez diody i rezystory no ale może popłynąć za duży do bazy i się spali bidak.....

podłącz go więc normalnie - to tak na pierwszy rzut oka błąd

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2012, o 18:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8589
Pomógł: 337

eeee zdążyłeś mnie ubiec Mirek :)

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2012, o 18:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

Dziękuje za porady :D

http://img684.imageshack.us/img684/5449/aaaaays.png

Mam nadzieje prawidłowo poprawiłem :) Jak nie to proszę nie krzyczeć bo o projektowaniu elektroniki nie mam za dużej wiedzy ani doświadczenia :)

Listwa ledowa pobiera mi około 270mA a tranzystor powinien wytrzymać do 500mA o ile się nie mylę :) Typ BC516 w układzie Darlingtona(Czy jakoś tak)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2012, o 20:51 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27320
Lokalizacja: Szczecin
Pomógł: 1041

Nikt nie krzyczy ;) spokojnie - a teraz już ładnie z tym tranzystorem wyszło (tak tylko dla porządku ale to drobiazg kosmetyczny - jednej kropki na schemacie brakuje)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 lut 2012, o 21:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

Na szybko poprawiałem i zapomniałem pacnąć tą kropkę ^^' dziękuję za uwagę :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lut 2012, o 01:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

A mam pytanio problem teoretico ^^'

gdy wolno rozświetlam listwę poprzez pwm to widać jak skokowo się rozświetla, zamiast płynnie powoli. Zwiększyłem rozdzielczość do 10bit i dzieje się to samo przy rozświetlaniu. Muszę zwiększyć szybkość rozświetlania i w tedy nie widać tego problemu.

Widać to na samym początku rozświetlania lub na końcu wygaszania.

Czy rozdzielczość jest nadal z byt mała i dlatego taki efekt przy wolnym rozświetlaniu ?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Gdy ustawie w 'Timer1' wartość 15(150ms) to widać na początku jak skokowo się rozświetla. Efekt widoczny tak na około 5 skoków może 10. Potem już na tyle mocno świeci że nie widać tego.

Przy takich ustawieniach jak teraz wydaje się rozświetlać płynnie. Aczkolwiek chciałbym wydłużyć początkowy czas rozświetlania ale przy zachowaniu płynności.


...
Może przy rozdzielczości 20bit można by w miarę powoli rozjaśniać bez tego efektu xp



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lut 2012, o 20:35 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27320
Lokalizacja: Szczecin
Pomógł: 1041

Posłuchaj trzeba sobie umieć zadanie rozbić na mniejsze kroczki, żeby wszystko dobrze przetestować - zawsze to powtarzam.

Na początek zrób to sobie liniowo bez żadnych timerów programowych tylko np w dwóch pętlach a czas kroków będziesz regulował pewnym _delay_ms(). Taki test bym sobie zrobił żeby na moment wyeliminować jedną zmienną z równania z wieloma zmiennymi. Jest nią błąd jaki możesz popełniać przy korzystaniu z timerów programowych. Absolutnie nie będę tu wnikał czy jest to dobrze zrobione jeśli chodzi o timer programowy czy nie - bo nie o to chodzi. Chcę ci pokazać drogę jak to dzielić na mniejsze kroczki i testy jak to już było w innym przypadku z twoim pytaniem na forum.

Zatem gdy już będziesz miał te dwie pętle to wtedy próbuj zwiększać swój PWM w jedną i drugą stronę.

Podpowiem, że już przy 9-bitowym PWM'ie nie widać żadnych kroków i skoków o jakich ty mówisz chyba, że dasz za duże przerwy między nimi - no ale to szybko ci wyjdzie w takim teście prawda ? A 10-bitowy PWM to już w ogóle - jakie skoki ? Niemożliwe.....

Za to popełniasz poważny błąd jeśli chodzi o nie uwzględnienie zjawiska nieliniowości o jakim wspominałem w książce i sygnalizowałem temat. Przypomnę zatem jeszcze raz bardzo wyraźnie - rozjaśnianie diody LED poprzez liniową zmianę wartości PWM nigdy w życiu nie da ci liniowej charakterystyki tegoż rozjaśniania i ściemniania. Trzeba to uwzględniać w swoich algorytmach a ty tego w żaden sposób tu nie robisz, próbujesz stosować tylko takie sztuczne obejście problemu robić jaki pokazałem w książce - ale tylko po to żeby łatwiej było zrozumieć przykład. Gdybym zaczął tam z funkcjami trygonometrycznymi (które nawiasem mówiąc nie są potrzebne -ale trzeba je mieć na uwadze) albo z tablicowaniem wyników po przeliczeniu charakterystyk na PC - to kto by zrozumiał prostą i podstawową zasadę sterowania jasnością PWM ? hmmm pomyślałeś o tym? - jeśli więc już znasz podstawy a zależy ci na liniowym rozjaśnianiu to nie ma wyjścia musisz coś więcej na ten temat poczytać bo tego też nie da się tak przedstawić na forum w 2 - 3 zdaniach.

Z trzeciej strony nie podchodź do tematu nieliniowości jak do jeża bo nie jest to takie trudne a po tym jak już poznałeś podstawy to o wiele łatwiej będzie ci to zrozumieć. Zacznij sobie od zajrzenia do noty PDF byle pierwszej lepszej diody LED i obejrzenia charaketrystyk tak podanych a szczególnie zależności emisji światła danego koloru od prądu przepływającego przez diodę, to już patrząc na to może przyjdą ci do głowy pomysły. Ale jeszcze raz powtórzę to nie ma nic wspólnego ze skokami rozjaśniania gdy mowa już choćby o 9-bitowej rozdzielczości PWM.


DidekxD napisał(a):
Może przy rozdzielczości 20bit można by w miarę powoli rozjaśniać bez tego efektu xp


Jak by tak było - to panie kolego nie miałbyś dzisiaj monitorów LCD - albo by ci migotały jak szalone, a używa się w nich zwykle 8-bitowego PWM na każdy kolor składowy RGB ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 mar 2012, o 15:03 
Offline
Nowy

Dołączył(a): 30 lis 2011
Posty: 8
Pomógł: 0

Hej!
No niestety co do tych początkowych skoków to jest drobny problem, ale 9 bitowa rozdzielczość faktycznie daje juz niezłe wyniki, zależne jednak od przyjętego okresu zmiany jasności.

No bo zobacz, dla 8 bitowej rozdzielczości to wygląda tak (przyjmijmy że dioda jest podłączona do 5V do nóżki procesora):

wartość 0 wypełnienia: 0V na diodzie
wartość 1 wypełnienia: 20mV na diodzie
wartość 2 wypełnienia: 40mV na diodzie

Widać, że skok z 1 poziomu na 2 daje zwiększenie napięcia zasilania o 100%, dlatego jest to aż tak widoczne. Co innego dzieje się, kiedy zmieniamy wypełnienie z 254 do 255, co daje zmianę około z 4,98V na 5V, co jest zmianą o około 1% tej wartości poprzedniej.

Po wstępnym zapoznaniu się z PWM, jak Pan Mirek napisał, potem zainteresuj się liniową zmianą natężenia światła :).

Następnym krokiem była 5 metrowa taśma LED :D
http://www.youtube.com/watch?v=ax8baaQ7B0I



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 mar 2012, o 12:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

Wiem o co chodzi i znam ten temat :) Ale w ogóle o tym nie pomyślałem ^^''

Aczkolwiek to mi trochę jeszcze rozjaśniło sprawę :)
Cytuj:
wartość 0 wypełnienia: 0V na diodzie
wartość 1 wypełnienia: 20mV na diodzie
wartość 2 wypełnienia: 40mV na diodzie


Dzięki :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO