Трубка связиста

Обсуждаем контроллеры компании Atmel.
Ответить
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Пт сен 12, 2014 06:56:00

Сообщение shim666 »

Всем доброго времени суток!!на вашем сайте я недавно,как и в изучении avr-ов.Но с паяльником дружу давно,хоть и были перерывы!Ладно ближе к делу!работаю связистом, 1.5 года.Само собой как и у каждого связиста есть неотъемлемый инструмент данной профессии - телефонная трубка связиста.Схема проста - динамик,микрофон,номеронабиратель(включено последовательно),ну и пара крокодилов на концах.Просто!!Но после долго изучения литературы и посещения форум связанных с данным семейством микроконтроллеров(ну и пары залоченных 2313 :-)),пришла в голову идея по созданию "своей" уникальной трубы!Базой для её создания скорее всего будет служить mega8a.Функции и инструменты которые собираюсь в неё впихнуть, минимальные : естественно вольтметр,может быть амперметр,прозвонка жил хотя бы относительно друг друга,ЗАЩИТА ОТ 220в(мало ли),Вывод на дисплей набираемый номер.Для начала хватит.теперь основное. Дисплей от мобилы ,как вариант Ls020.
Самое важное-клава!!Хочу сделать на базе АЦП мк,(в протэусе уже есть проэкт,написанный мною, на паскале,чуть позже приложу исходник)но если идея паттовая прошу меня поправить,или направить на путь истинный))Короче прощу помощи у опытных программистов и радиолюбителей!!!С радостью выслушаю советы пожелания и критику. p.s Пишу на паскале))
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4751
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение vem566 »

Ну так схему и исходник. А дальше посмотрим. А питать все это чем планируется?
Реклама
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Пт сен 12, 2014 06:56:00

Сообщение shim666 »

Схемы основной,пока как таковой нет.Но исходник как Протоса так и баскома,завтра будет!
Последний раз редактировалось shim666 Пн окт 13, 2014 17:41:49, всего редактировалось 1 раз.
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Пт сен 12, 2014 06:56:00

Сообщение shim666 »

Питание крона,либо другой источник 9 в
Последний раз редактировалось aen Пн окт 13, 2014 18:18:15, всего редактировалось 2 раза.
Причина: Нарушение Правил форума п. 2.2
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Самое важное тут, вроде как, совсем не клава, а принцип съёма нужных данных. Напряжение, ток, сопротивление изоляции, прозвонка цепей. И посылка вызова само собой.
Docendo discimus
Контактная информация:
Реклама
Родился
Аватара пользователя
Сообщения: 19
Зарегистрирован: Сб окт 04, 2014 10:16:04

Сообщение Катэ911 »

Это для изучения принципа построения "монтерской трубы": Аппарат телефонного мастера.
О том, как сделать мультиметр на микроконтроллере, в сети информации предостаточно. Соединить эти два прибора в один - дело не хитрое. Удачи.
З.Ы. И где это еще используются такие дедовские приблуды, как монтерская трубка :shock:
Вот "монтерская трубка", с которой у нас связисты по квартирам ходят:
Изображение
Цифровой век у связи, куле. :)))
Реклама
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Пт сен 12, 2014 06:56:00

Сообщение shim666 »

Спасибо конечно за ссылку,но схемка устаревшая,да и слишком крупногабаритная!Хотелось бы что то более портативное смд монтажа.Да и основной целью создания данного девайса являеться изучения на практике создание,программирования устройства на мк!Хочеться самому что то сделать,а не слизывать чужие схемы.Но одному мне не справиться,вот поэтому и создал эту тему.
Друг Кота
Аватара пользователя
Сообщения: 44166
Зарегистрирован: Пн ноя 30, 2009 03:00:01
Откуда: Нерезиновая

Сообщение АлександрЛ »

shim666 писал(а):Спасибо конечно за ссылку,но схемка устаревшая,да и слишком крупногабаритная!Хотелось бы что то более портативное смд монтажа.
Ну, так вам и дали ссылку не для того, чтобы вы её повторили, а для того, чтобы посмотрели, что уже есть наработанное по этой теме..

зы.. Если человека попросить "изобрести автомобиль", при том условии, что он автомобиль никогда не видел, как вы думаете, что у него получится?
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Пт сен 12, 2014 06:56:00

Сообщение 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. Либо свой,который всё еще в разработке...Жду советов и упреков))Кстати почему нельзя выложить проэкт в протосе?
Друг Кота
Аватара пользователя
Сообщения: 4751
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение vem566 »

Внутри каждого case цепочка одинаковых операторов, повторяющаяся разное число раз.
Тогда пишем подпрограмму с параметром. Внутри подпрограммы цикл for или while.
Параметром передаем число повторений. А из case вызываем.
Диапазон в case определяется так:

Case 3 To 5 :

В хелпе к баскому есть.
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Пт сен 12, 2014 06:56:00

Сообщение shim666 »

Более менее понятно,но не могли бы вы привести пример?
Друг Кота
Аватара пользователя
Сообщения: 4751
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение 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

Один из множества вариантов.
Родился
Аватара пользователя
Сообщения: 19
Зарегистрирован: Сб окт 04, 2014 10:16:04

Сообщение Катэ911 »

Я вот чего не могу понять: нафига клавиатуре - АЦП ? Клавиатура это вроде как координатная матрица, и событие нажатия на клавишу обрабатывается в прерывании.
Друг Кота
Аватара пользователя
Сообщения: 4751
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение vem566 »

Когда начинаешь, много кнопок на АЦП намного понятнее, чем матрица.
Понимать нужно собеседника.
Родился
Аватара пользователя
Сообщения: 19
Зарегистрирован: Сб окт 04, 2014 10:16:04

Сообщение Катэ911 »

Я просто о клавиатурах на основе ацп никогда не слышал. :oops: По этому решил, что человек что-то перепутал :))
Друг Кота
Аватара пользователя
Сообщения: 4751
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение vem566 »

А я впервые столкнулся с ними в автомобильном приемнике. Цепочка резисторов между землей и питанием и кнопки от каждого соединения к ноге МК. Дешево и сердито. Правда кнопок всего 5 или 6 было. Ну а в принципе можно и до хрена нацеплять.
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Пт сен 12, 2014 06:56:00

Сообщение 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

Подскажите,где накосячил??
Друг Кота
Аватара пользователя
Сообщения: 4751
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение vem566 »

Да вроде откровенных косяков нет.
По переменным только замечания.
Если максимальное значение переменной N равно 5, то зачем тип стоит word? Вполне хватит byte, к тому же в цикле счетчик типа byte, а предел его типа word. В этой программе не критично, но впредь лучше следить за переменными, что бы как в случае с циклом не могло возникнуть переполнения.
И start ADC можно вынести до основного цикла.
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Пт сен 12, 2014 06:56:00

Сообщение shim666 »

ошибки понял,исправлю,вот только почему то у меня в протосе на экране,в проекте одни нули пишет на дисплее,до нажатия клавиш.!а после нажатия адекватно реагирует,после снова нули
Друг Кота
Аватара пользователя
Сообщения: 4751
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Сообщение vem566 »

Проект протеуса выложи.
Ответить

Вернуться в «AVR»