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



Teraz jest 20 kwi 2024, o 08:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 24 ] 
Autor Wiadomość
PostNapisane: 17 gru 2012, o 22:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Cześć. Czytałem dosyć sporo o generowaniu częstotliwości 36kHz na diode IR, jednak nigdzie nie znalazłem informacji pełnej. Napisałem program w bascomie który powinien generować odpowiednie impulsy oraz skopiowałem kod (lekko przerobiłem bo nie działał) moderatora w poprzednim temacie, jednak on nie działa. Najwidoczniej coś źle zrobiłem :). Proszę o wyrozumiałość, bo jestem początkującym :)


Jeśli schemat podłączenia jest potrzebny to wrzucę jutro

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



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



Dodam że bardziej rozumiem Bascoma niż C:P

Anode diody podłączyłem do TIMER1A

_________________
sig off ;(



Ostatnio edytowano 17 gru 2012, o 22:27 przez LogTeam, łącznie edytowano 1 raz

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

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

No wszystko dobrze i ładnie - ale to temat bardziej do działu BASCOM a nie WARSZTAT :(

_________________
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: 17 gru 2012, o 22:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Przepraszam bardzo :oops: Nie zauważyłem że jest taki dział. Można prosić o przeniesienie?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 gru 2012, o 22:56 
Offline
Użytkownik
Avatar użytkownika

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

proście , a bedzie wam dane :P

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 gru 2012, o 23:40 
Offline
Moderator
Avatar użytkownika

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

To może teraz wyjaśnij nam - jak ten kod ma generować te 36 kHz - bo ja tego nie widzę - ok ? ;)

_________________
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: 18 gru 2012, o 00:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Wedlug ktoregos z for trzeba ustawic pwm na polowe. Z wynikow widze ze to nadal nie to. Po wielu probach i wgraniu nielicznych programow postanowilem do Was napisac. Wiem jak sterowac pwm'em (do sterowania np.diod,silnikow) jednak widze ze z czujnikiem to inna sprawa

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 gru 2012, o 01:20 
Offline
Moderator
Avatar użytkownika

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

LogTeam napisał(a):
Wedlug ktoregos z for trzeba ustawic pwm na polowe. Z wynikow widze ze to nadal nie to. Po wielu probach i wgraniu nielicznych programow postanowilem do Was napisac. Wiem jak sterowac pwm'em (do sterowania np.diod,silnikow) jednak widze ze z czujnikiem to inna sprawa


Sorki ale zabierasz się do tego bardzo mocno od ..... tyłu strony .... przyznam że aż ciężko tego słuchać :( nie obraź się ...

ale trudno mi tu dyskutować z jakimiś tam zebranymi poradami i wielu innych forów i to jeszcze poradami - jak widać na żywym przykładzie - wprost z kosmosu :(

--------------------------------

Skoro próbujesz pisać programy w Bascomie a i tak nic - ani w ząb z tego nie rozumiesz - bo tak to tutaj wygląda - to oznacza - że może czas i warto jednak przerzucić się na język C ??? Ale nie mówię tego dlatego że Bascom jest zły .... :(

tylko dlatego - że tobie jego uproszczenia i tak nie pomagają i tracisz sporo czasu....

Tak się składa, że generowanie nośnej na potrzeby podczerwieni masz przepięknie opisane w książce

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

- masz w niej cały język C od podstaw - i gwarantuję - że przez ten czas zbierania tych informacji z tych forów, czas prób nad własnoręcznym ale jak widać niesprawnym przerabianiem tego kodu - już byś spokojnie zrobił to w C na bazie tej książki....

----------------

Ok - ale niech będzie że to dział BASCOM - więc uwaga - podpowiadam ci coś jak można to także w Bascomie zrobić - zresztą w dowolnym języku.

1. musisz wygenerować sobie częstotliwość za pomocą timera sprzętowego - ale na ZEUSA po co chwytasz za tak drogocenny 16-bitowy Timer1 do tego celu ???? to tak jakbyś chciał komara - łyżką koparki zabić

2. zastanów się najpierw jaka to ma być częstotliwość hmmm - bo to co napisałeś wyżej ma się nijak do rzeczywistości :( .... otóż korzystając z trybu CTC np timera2 w procku ATmega8 - musisz tą częstotliwość ustawić na 36kHz x 2 czyli = 72kHz !!! dlaczego ? ano dlatego, że w trakcie trwania tego okresu częstotliwości 72kHz tryb CTC będzie tylko RAZ zmieniał zbocze na przeciwne - więc okres wygenerowanej częstotliwości na pinie OC2 będzie dwa razy dłuższy czyli częstotliwość dwa razy mniejsza a więc upragnione 36 kHz

3. ustaw więc w tymże Bascomie sobie Tryb CTC w Timerze2
4. Ustaw sobie preskaler = 1
5. ale jeśli masz fabryczne ślimacze taktowanie 1MHz i chcesz z tym się męczyć to obliczasz tą częstotliwość tak:

1MHz / 1 / 72 kHz = OCR2 czyli do OCR2 wpisujesz 13.8 ale wiadomo takiej liczby nie możesz wpisać więc dasz 14. A to spowoduje że licząc odwrotnie uzyskasz częstotliwość nośnej:

1MHz / 1 / 14 = 71.428 i to dzielone / 2 = 35.714 kHz czyli masz prawie 36kHz i też będzie ci ta nośna dobrze działać.

Tylko ja bym na twoim miejscu od razu sobie procka przestawił na 8MHz dzięki czemu zobacz teraz obliczenia

8MHz / 1 / 72kHz = 111.1 do OCR2 .... policzmy teraz odwrotnie jaka ci wyjdzie częstotliwość nośnej ?

8MHz / 1 / 111 = 72.072 i to dzielone /2 = 36,036 kHz !!!!!! i co wyszło dokładniej przy taktowaniu 8MHz ???

W Bascomie można rejestry ustawiać praktycznie tak jak w asemblerze - zaglądasz więc pan do noty PDF i sprawdzasz rejestry konfiguracyjne dla Timera2 w ATmega8

w TCCR2 masz ustawić:

WGM21 = 1 żeby był tryb CTC
CS20 = 1 żeby mieć preskaler = 1
COM21 = 1 żeby włączyć generowanie na pinie OC2 (PB3)

bit WGM1 jest w rejestrze TCCR2 na pozycji = 3
bit CS20 jest na pozycji = 0
bit COM21 jest na pozycji = 5

a zatem w Basomie piszesz sobie:

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


i już po tym na PB3 masz generowaną ładnie nośną 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: 18 gru 2012, o 10:07 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

W bascomie można się posługiwać nazwami bitów i proponuje właśnie tak robić posiłkując się specyfikacją procesora. Łatwiej wtedy zrozumieć jak to działa w C:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 6 minutach ]

A koledze LogTeam radzę uważnie sprawdzać, który timer korzysta z którego wyjścia OCx.

_________________
Dragonus Cracovus: Biomagia



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

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Do Timera0 podłączyłem diode przez rezystor. Wrzuciłem Twój kod Mirku i nic się nie działo. Gdy wrzuciłem Kraousera dioda świeciła ale z pełną mocą. Wrzucam schemat. Czuje że pomyliłem diody z czymś innym jednak miałem na myśli diody LED
http://img339.imageshack.us/img339/6706/beztytuunrj.png

Drugim podłączeniem jest zamiast diody LED podłączonej do uc, podłączam diodę IR.



PS: Ja przejdę na język C jednak dopiero na świętach. Przypływ gotówki i te sprawy :)

_________________
sig off ;(



Ostatnio edytowano 18 gru 2012, o 18:34 przez LogTeam, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 gru 2012, o 18:33 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Dioda IR jest dołączona do złego wyjścia. Podłącz do PB3 (OC0).
LED dołączona do TSSOP ma być odwrotnie i do VCC.

_________________
Dragonus Cracovus: Biomagia



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

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Przepraszam źle popatrzyłem na piny i źle stworzyłem schemat.


Działa!! Krauserze wrzuciłem Twój kod i dioda świeci po przybliżeniu palca. Jedyny problem to taki że działa tylko na około 5cm. Da się jakoś zwiększyć? Chyba można zmniejszając oporność rezystora nie?

_________________
sig off ;(



Ostatnio edytowano 18 gru 2012, o 19:04 przez LogTeam, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 gru 2012, o 18:56 
Offline
Moderator
Avatar użytkownika

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

Trzeba koniecznie dać diodę przez tranzystor - z pinu procka tego nie rób ... i wtedy możesz dać do diody IR rezystor np 47R albo 22R albo jeszcze mniej i tak zwiększysz zasięg.

------------------------ [ Dodano po: 1 minucie ]

Zajrzyj sobie do schematu zestawu ATB jak jest sterowana dioda IR

http://atnel.pl/atb-elementy-wizualne.html

_________________
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: 18 gru 2012, o 19:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

A jaki tranzystor dać?

I jak zrobić program który:
Po zobaczeniu podczerwieni przez TSOP wtedy ma zapalić się dioda na innym porcie.
Napisałem taki program jednak nie działa
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


GeSHi

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 gru 2012, o 20:23 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3187
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 89

Każdy tranzystor, choćby z serii 54x.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 gru 2012, o 20:43 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

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

Stan wejść odczytuje się w rejestrze PINx. Ważne jest również podciągnięcie wejść do plusa, ponieważ domyślnie są to wejścia pływające i jak nic nie jest dołączone to stan PINx może się zmieniać przypadkowo.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



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

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Dzięki, już działa. :)


Czy to normalne że jeśli prowadzę sygnał przez tranzystor NPN to czujnik działa na bliższe odległości niż bez tranzystora? Może ktoś jeszcze wytłumaczyć po co jest tutaj tranzystor?

Również zależnie gdzie podłącze puls (do tranzystora) to czujnik inaczej reaguje

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2012, o 08:51 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Jest to możliwe. Wszystko zależy jak to podłączyłeś i jakie wartości rezystorów użyłeś.
Tranzystor to wzmacniacz prądu. Prąd który płynie przez końcówki baza i emiter jest wzmacniany np. 100 razy i ten który płynie przez końcówki kolektor emiter może być tyle razy większy. Końcówka emiter to końcówka wspólna w tranzystorze npn podłączana zwykle do GND. Baza to wejście podłączana przez duży rezystor (np. 1k) do jakiegoś napięcia. Kolektor to wyjście i tam podłącza się odbiorniki o małej rezystancji. W twoim przypadku ma być tam dioda IRED z rezystorem np. 47R i dołączona do VCC.
W tranzystorach pnp jest niejako odwrotnie (prądy płyną w przeciwnych kierunkach) i emiter jest wprost włączony do VCC, baza przez rezystor do GND, a kolektor poprzez odbiornik też do GND.

W układach cyfrowych tranzystor zwykle nie pracuje w roli wzmacniacza prądu. Jest tak ponieważ prąd bazy jest na tyle duży że przy napięciach w układzie tranzystor nie jest w stanie tak wzmocnić prądu aby prąd kolektora był 100 razy większy od prądu bazy. Tranzystor wtedy jest maksymalnie otwarty (mówi się nasycony). Działa jak klucz po podaniu napięcia przez rezystor na bazę (emiter to GND), kolektor można powiedzieć "zostaje połączony z emiterem" i prąd w obwodzie VCC -odbiornik-Kolektor-Emiter-GND jest prawie taki sam jak w obwodzie VCC-odbiornik-GND. Jak widać nie zależy od prądu bazy.

Po co się stosuje tranzystor? Bo prąd jaki może zostać pobrany z portu mikrokontrolera jest stosunkowo mały - 20mA, a tranzystor może przykładowo przepuścić prąd - 100mA. Przy współpracy z mikrokontrolerem bazę podłącza się do portu przez rezystor. Sterując stanem wyjściowym można "włączać" odbiorniki które są dołączone do kolektora tranzystora.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 gru 2012, o 10:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Dzięki za wyjaśnienie. Jest tylko teraz problem bo gdy jest rezystor 1K to dioda podświetla się i gaśnie. Caly ten przebieg trwa okolo pól sekundy. Czuje że z tym rezystorem za tranzystorem coś schrzanilem
http://imageshack.us/photo/my-images/16 ... uu2vo.png/
Trochę już naciągam od Was, jednak czy można prosić o schemat podlączenia samej diody IR? Coś takiego jak ja przeslalem tyle że dobrze :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2012, o 07:47 
Offline
Nowy

Dołączył(a): 20 gru 2012
Posty: 10
Pomógł: 0

Cześć,

Z ciekawości chciałem się spytać, czy nie jest potrzebne, aby nośna 36k była generowana paczkami? Przecież odbiornik na podczerwień (tak wynika z not) może się zablokować jeśli czas trawania impulsów będzie przekraczał ściśle określony czas. Z tego co widzę, to na pinie jest generowana fala prostokątna o nośnej, ale jest ona generowana cały czas, bez żadnych przerw. Więc jeśli podłączysz do tego pinu IR sterowany przez tranzystor, to dioda cały czas będzie wysyłała sygnał. Odbiornik nie blokuje się?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2012, o 11:48 
Offline
Moderator
Avatar użytkownika

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

fenix napisał(a):
. Odbiornik nie blokuje się?


Nie blokuje się ;)

_________________
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: 20 gru 2012, o 13:26 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Poprawne podłączenie z tranzystorem npn.
Obrazek

_________________
Dragonus Cracovus: Biomagia



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

Dołączył(a): 17 gru 2012
Posty: 729
Lokalizacja: Białystok
Pomógł: 12

Dzieki koles :-P. Juz zabieram sie z lutowanie

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2012, o 16:59 
Offline
Nowy

Dołączył(a): 20 gru 2012
Posty: 10
Pomógł: 0

Cześć, dzięki za odpowiedź o nie blokowaniu się odbiornika. Byłem przekonany, że moze się blokować.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2012, o 17:25 
Offline
Użytkownik
Avatar użytkownika

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

Fenix to są bardzo skrajne przypadki dlatego producent zwraca na to uwagę , ale odnosi się to do informacji niesionych np z pilota ....
w twoim przypadku spokojnie możesz pominąć ten fakt gdyż jedyne co ciebie interesuje to informacja o odebraniu nośnej i nic więcej
żadnych informacji nie przesyłasz ...

Z tego co pamiętam tylko raz mi się zdarzyło że zablokował się TSOP ale to z winy zbyt wielu paczek danych na granicy czestotliwości :)
więc możesz spać spokojnie :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



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: 24 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO