Wybieranie numeru po DTMF za pomocą procesora

Witam,

Ktoś wie lub może podać linka do jakiegoś scheamtu przedstawiającego w jaki sposób generować za pomocą procesora AVR (np. ATMega) tony DTMF by można było wybrać numer telefoniczny (symulacja telefonu tonowego)? Chodzi mi o schemat ideowy takiego podłączenia razem ze schematem podpięcia do linii telefonicznej.

No bo mój sposób podłączenia nie działa...

Mam taką procedurkę do wybierania numeru telefonu przez DTMF:

For A = 1 To B Readeeprom C , A Dtmfout C , 200 Locate 2 , Pos_lcd Lcd C Incr Pos_lcd Waitms 800 Next A

Cyfry są wybierane poprawnie, gdyż od razu wyświetlam tę cyfrę na LCD. W słuchawce równolegle podłączonego telefonu słyszę, że numer jest wybierany ale zaraz po 4 cyfrze słyszę "Wybrany numer jest za krótki", a numer jest wybierany dalej aż wszystkie cyfry zostaną wybrane. Numer jest formatu 050XXXXXXX - komórka w POP'ie. Ekperymentowałem z różnymi wartościami długości tonu i odstępami, niestety nic to nie dało :/

Dzisiaj wykonałem kolejny test - w programie jako numer zaprogramowałem tylko "0". Porównałem też sygnał na linii przy wybieraniu 0 z telefonu i z mojego ukladu - z mojego telefonu jest kompletnie ignorowane, ale na linii go slychać - tyle, że jest znacznie cichsze niż to z telefonu.

Procedura z Bascoma jest na pewno dobra, na różnych forach pisali ludzie że nie mają z nią żadnego problemu i że generuje poprawne tony. Nie wiem więc czym to może być spowodowane. W załączniku na wszelki wypadek załączam również schemat podłączenia procesora do linii telefonicznej (gniazdko u dołu PDF'a) - może coś w reszcie podłączenia jest źle? W sumie nie powinno być źle, bo sygnał wybierania numeru słyszę przy podniesionej słuchawce, jednak jest on trochę inny od wybieranego z telefonu...

Ponadto uważam że połączenie elektryczne układu z linią jest dobre z tego powodu, że jak podczas alarmu równolegle podniosę słuchawkę i zadzwonię pod numer jakiś i wtedy z tego numeru steruję alarmem, to faktyczNie sterowanie przez telefon działa. Czyli w chwili obecnej muszę "symulować" dzwonienie równolegle podłączonym telefonem (w tym czasie co wpoinien dzownić alarm), a nastepnie odbieram np. komórkę i za pomocą komórki steruję alarmem - wszystko jest ok. Czyli samo podłączenie do linii telefonicznej układu MT8870PI (dekodera DTMF) jest prawidłowe - oraz ogólnie sam schemat w znacznej części też jest prawidłowy - nie wiem tylko czy prawidłowe jest podłączenie procesora do linii telefonicznej (bo to właśnie procesor generuje numer za pomocą wewnętrznego timera i wyrzuca go na linię telefoniczną za pomocą pinu OC1A (jak widać to na załączonym schemacie). Po podpięciu procka do linii oczywiście mamy prawidłowe napięcie w chwili podniesienia słuchawki (12V) - stabilizowane przez diodę Zenera.

Co więc może być powodem złego wybierania numeru? Za mała amplituda tonu? Ktoś może ma schemat jak powinno się generować tony DTMF za pomocą procka i wysyłać na linię telefoniczną?

I czy ktoś może potwierdzić, że mój schemat jest dobry lub zły (a jeżeli zły to dlaczego)?

Schemat znajduje się pod adresem :

formatting link
Dziękuję za informacje.

Reply to
******************
Loading thread data ...

Powodem jest dioda D7 która jak tylko może tłumi generowany wyjściem PWM sygnał.

Z tego scheamtu:

Zamień D7 na 4,7V (będzie zabezpieczała wyjscie procesora) Wylutuj mostek BR2 dając zworkę pomiędzy 3-4 Wlutuj C7 w miejsce 1-2 mostka Wstaw zworkę w miejsce C7

Reply to
William

lcd c to chyba przyjmuje znak w ASCII, a dtmfout tez wymaga ascii ?

A pobaw ty sie zwyklym telefonem - co trzeba nacisnac zeby uzyskac taki efekt ?

To moze po prostu za ciche ? centrala nic nie lapie ?

Jakie masz napiecie na D7 ? jak 12V to zenerka otwarta i tlumi sygnal. Jak mniejsze .. to mam watpliwosci czy diody w mostku otwarte .. moze przerzucic R21 rownolegle do D7 i zmniejszyc R19.

J.

Reply to
J.F.

Dnia Sat, 29 Apr 2006 15:40:01 +0200, William napisał(a):

Dzięki za informację, tylko nie wiem czy dobrze zrozumiałeś działanie tego układu:

  1. Układ MT8870PI służy jedynie do dekodowania sygnału DTMF, który przychodzi linią telefoniczną (i zamianę tego sygnału na postać cyfrową) - układ ten to robi znakomicie, jak na linię telefonem podam np. klawisz "3" to MT8870PI odczytuje "3" i podaje to do procka, co procek sygnalizuje.
  2. Numer w celu zadzwonienia na komórkę jest wybierany bezpośrednio przez procesor za pomocą wewnętrznego licznika Timer1, a procedura DTMFOUT powoduje wyjście tego sygnału wybierania numeru poprzez wyjscie OC1A procka. Tak więc obecnie wybierany sygnał idzie z procka przez C7, R20, potem jest stabilizowany na 12V przez D7, potem R19, BR2, R21 i na linię telefoniczną - tak idzie obecnie generowany sygnał (tak przynajmniej myślę) :)

Jak zmienię D7 na 4,7V, to wtedy obetnę napięcie na linii telefonicznej na

5V podczas podłączania alarmu (a jak się podnosi słuchawkę telefonu to ma być 12V):) Przedtem nawet tu miałem diodę 5,1V, ale rezultat był ten sam więc zmieniłem na 12V.

Tak więc czy powyższe uwagi są nadal aktualne, czy może źle zrozumiałeś zasadę działania, a może ja tego nie rozumiem? ;)

Reply to
******************

Dnia Sat, 29 Apr 2006 15:59:22 +0200, J.F. napisał(a):

12V jest na D7 :)
Reply to
******************

Dnia Sat, 29 Apr 2006 15:40:01 +0200, William napisał(a):

Wielkie dzięki!!!!!!!!!!!!!!!!!!

Działa :D :D :D :D :D

Reply to
******************

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.