Страница 1 из 2
Трубка связиста
Добавлено: Пн окт 13, 2014 16:47:50
shim666
Всем доброго времени суток!!на вашем сайте я недавно,как и в изучении avr-ов.Но с паяльником дружу давно,хоть и были перерывы!Ладно ближе к делу!работаю связистом, 1.5 года.Само собой как и у каждого связиста есть неотъемлемый инструмент данной профессии - телефонная трубка связиста.Схема проста - динамик,микрофон,номеронабиратель(включено последовательно),ну и пара крокодилов на концах.Просто!!Но после долго изучения литературы и посещения форум связанных с данным семейством микроконтроллеров(ну и пары залоченных 2313

),пришла в голову идея по созданию "своей" уникальной трубы!Базой для её создания скорее всего будет служить mega8a.Функции и инструменты которые собираюсь в неё впихнуть, минимальные : естественно вольтметр,может быть амперметр,прозвонка жил хотя бы относительно друг друга,ЗАЩИТА ОТ 220в(мало ли),Вывод на дисплей набираемый номер.Для начала хватит.теперь основное. Дисплей от мобилы ,как вариант Ls020.
Самое важное-клава!!Хочу сделать на базе АЦП мк,(в протэусе уже есть проэкт,написанный мною, на паскале,чуть позже приложу исходник)но если идея паттовая прошу меня поправить,или направить на путь истинный))Короче прощу помощи у опытных программистов и радиолюбителей!!!С радостью выслушаю советы пожелания и критику. p.s Пишу на паскале))
Re: Трубка связиста
Добавлено: Пн окт 13, 2014 17:33:45
vem566
Ну так схему и исходник. А дальше посмотрим. А питать все это чем планируется?
Re: Трубка связиста
Добавлено: Пн окт 13, 2014 17:36:20
shim666
Схемы основной,пока как таковой нет.Но исходник как Протоса так и баскома,завтра будет!
Re: Трубка связиста
Добавлено: Пн окт 13, 2014 17:40:01
shim666
Питание крона,либо другой источник 9 в
Re: Трубка связиста
Добавлено: Пн окт 13, 2014 19:07:28
pyzhman
Самое важное тут, вроде как, совсем не клава, а принцип съёма нужных данных. Напряжение, ток, сопротивление изоляции, прозвонка цепей. И посылка вызова само собой.
Re: Трубка связиста
Добавлено: Пн окт 13, 2014 21:06:20
Катэ911
Это для изучения принципа построения "монтерской трубы":
Аппарат телефонного мастера.
О том, как сделать мультиметр на микроконтроллере, в сети информации предостаточно. Соединить эти два прибора в один - дело не хитрое. Удачи.
З.Ы. И где это еще используются такие дедовские приблуды, как монтерская трубка
Вот "монтерская трубка", с которой у нас связисты по квартирам ходят:

Цифровой век у связи, куле.

Re: Трубка связиста
Добавлено: Вт окт 14, 2014 06:01:38
shim666
Спасибо конечно за ссылку,но схемка устаревшая,да и слишком крупногабаритная!Хотелось бы что то более портативное смд монтажа.Да и основной целью создания данного девайса являеться изучения на практике создание,программирования устройства на мк!Хочеться самому что то сделать,а не слизывать чужие схемы.Но одному мне не справиться,вот поэтому и создал эту тему.
Re: Трубка связиста
Добавлено: Вт окт 14, 2014 06:17:37
АлександрЛ
shim666 писал(а):Спасибо конечно за ссылку,но схемка устаревшая,да и слишком крупногабаритная!Хотелось бы что то более портативное смд монтажа.
Ну, так вам и дали ссылку не для того, чтобы вы её повторили, а для того, чтобы посмотрели, что уже есть наработанное по этой теме..
зы.. Если человека попросить "изобрести автомобиль", при том условии, что он автомобиль никогда не видел, как вы думаете, что у него получится?
Re: Трубка связиста
Добавлено: Вт окт 14, 2014 14:22:51
shim666
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 32
$framesize = 32
Open "comb.3:9600,8,n,1" For Output As #2
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portd.7 , Db6 = Portd.6 , Db7 = Portd.5 , E = Portd.4 , Rs = Portd.3
Config Lcd = 16 * 1a
Config Portb.1 = Output
Led Alias Portb.1 'Светодиод имитирует импульсный набор
Dim R As Word
Config Adc = Single , Prescaler = Auto , Reference = Internal
Do
Portb.1 = 0
R = Getadc(0)
Print #2 , R 'Вывод значения ацп на терминал "
Select Case R " Клавиатура на ацп"
Case 0 : Exit Do
Case 636 : Lcd "1"
Portb.1 = 1
Waitms 50
Portb.1 = 0
Case 335 : Lcd "2"
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Case 423 : Lcd "3"
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Case 585 : Lcd "4"
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Case 321 : Lcd "5"
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Case 403 : Lcd "6"
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Case 541 : Lcd "7"
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Case 307 : Lcd "8"
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Case 385 : Lcd "9"
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
Portb.1 = 1
Waitms 50
Portb.1 = 0
Case 369 : Cls
Case 295 : Locate 1 , 4
Lcd "MENU"
Waitms 700
Locate 1 , 3
Lcd "VOLTMETR"
Locate 2 , 3
Lcd "TELEFON"
Case 1000 : Led = 1
Waitms 500
Led = 0
Waitms 500
Led = 1
Waitms 300
Return
End Select
Loop
End
Исходник в баскоме,строго не судите.Тут всего лишь прога для клавиш и начало для меню,естественно много недоработок,всётаки первая моя прога))).Прошу помогите как упростить прогу,в плане включения- отключения порта!А также как обьявить вместо одного значения АЦП, отрезока типа: от 320 до 340,так как на практике значения ацп будут естественно скакать.Ну и если это гиблая затея(клавиатура на ацп),так и скажите,буду собирать на сдвиговых!Ну а по поводу основной схемы трубы,2 варианта.Готовый,который нужно будет подправить
http://madelectronics.ru/zhuk/bugs3.htm. Либо свой,который всё еще в разработке...Жду советов и упреков))Кстати почему нельзя выложить проэкт в протосе?
Re: Трубка связиста
Добавлено: Вт окт 14, 2014 16:09:38
vem566
Внутри каждого case цепочка одинаковых операторов, повторяющаяся разное число раз.
Тогда пишем подпрограмму с параметром. Внутри подпрограммы цикл for или while.
Параметром передаем число повторений. А из case вызываем.
Диапазон в case определяется так:
Case 3 To 5 :
В хелпе к баскому есть.
Re: Трубка связиста
Добавлено: Вт окт 14, 2014 16:11:32
shim666
Более менее понятно,но не могли бы вы привести пример?
Re: Трубка связиста
Добавлено: Вт окт 14, 2014 16:20:17
vem566
Подпрограмма:
Nabor:
Lcd n
for i = 1 to n
Portb.1 = 1
Waitms 50
Portb.1 = 0
Waitms 50
next
return
Вызов
Case 636 : n = 1
Case 335 to 422 : n = 2
Case 423 to 584 : n = 3
... все остальные case
gosub nabor
Один из множества вариантов.
Re: Трубка связиста
Добавлено: Вт окт 14, 2014 18:39:25
Катэ911
Я вот чего не могу понять: нафига клавиатуре - АЦП ? Клавиатура это вроде как координатная матрица, и событие нажатия на клавишу обрабатывается в прерывании.
Re: Трубка связиста
Добавлено: Вт окт 14, 2014 19:08:48
vem566
Когда начинаешь, много кнопок на АЦП намного понятнее, чем матрица.
Понимать нужно собеседника.
Re: Трубка связиста
Добавлено: Вт окт 14, 2014 19:29:54
Катэ911
Я просто о клавиатурах на основе ацп никогда не слышал.

По этому решил, что человек что-то перепутал

Re: Трубка связиста
Добавлено: Вт окт 14, 2014 19:37:35
vem566
А я впервые столкнулся с ними в автомобильном приемнике. Цепочка резисторов между землей и питанием и кнопки от каждого соединения к ноге МК. Дешево и сердито. Правда кнопок всего 5 или 6 было. Ну а в принципе можно и до хрена нацеплять.
Re: Трубка связиста
Добавлено: Пн окт 20, 2014 13:48:13
shim666
$regfile = "m8def.dat" 'МК Attiny13
$crystal = 8000000 'Рабочая частота МК 9.6МГц
$hwstack = 32
$swstack = 32
$framesize = 32
Open "comb.3:9600,8,n,1" For Output As #2 'Программный UART на PB.2 TXD
Open "comb.4:9600,8,n,1" For Input As #3
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portd.7 , Db6 = Portd.6 , Db7 = Portd.5 , E = Portd.4 , Rs = Portd.3
Config Lcd = 16 * 1a
Config Portb.1 = Output
Led Alias Portb.1
Config Adc = Single , Prescaler = Auto , Reference = Internal
Dim R As Word
Dim N As Word
Dim I As Byte
Do
Start Adc
R = Getadc(0)
Select Case R
Case 0 : Exit Do
Case 620 To 650 : N = 1
Case 330 To 350 : N = 2
Case 400 To 440 : N = 3
Case 550 To 600 : N = 4
Case 300 To 329 : N = 5
End Select
Goto Nabor
Loop
End
Nabor:
Lcd N
For I = 1 To N
Led = 1
Waitms 50
Led = 0
Waitms 50
Next
Return
Подскажите,где накосячил??
Re: Трубка связиста
Добавлено: Пн окт 20, 2014 14:43:55
vem566
Да вроде откровенных косяков нет.
По переменным только замечания.
Если максимальное значение переменной N равно 5, то зачем тип стоит word? Вполне хватит byte, к тому же в цикле счетчик типа byte, а предел его типа word. В этой программе не критично, но впредь лучше следить за переменными, что бы как в случае с циклом не могло возникнуть переполнения.
И start ADC можно вынести до основного цикла.
Re: Трубка связиста
Добавлено: Пн окт 20, 2014 15:32:34
shim666
ошибки понял,исправлю,вот только почему то у меня в протосе на экране,в проекте одни нули пишет на дисплее,до нажатия клавиш.!а после нажатия адекватно реагирует,после снова нули
Re: Трубка связиста
Добавлено: Пн окт 20, 2014 17:01:48
vem566
Проект протеуса выложи.