Перейти к содержанию

Goodefine

Members
  • Постов

    1 567
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Goodefine

  1. ... а вот на индуктивность катушки, намотанной в том числе и коаксиалом, влияет квадратично...

    Цель измерения, в данном случае, состоит в определении индуктивности (эквивалентной, естественно) коаксиала. Поэтому пространственное его расположение при правильной методе не влияет на результат. Зачем нам представлять бухту с коаксиалом как катушку? Непонятно...

  2. unza, а если Вы перемотаете свою бухту кабеля так, чтобы было вдвое больше витков, то намеряете индуктивность вчетверо бОльшую при той же длине кабеля! Если распустите бухту в виде петли, то намеряете меньше...

    С каких пор число витков влияет на индуктивность коаксиала?

    И какое значение индуктивности, Вы думаете получилось??

    Одинаковое...

  3. Но тут прошивка выложена в HEX...

    Да там и hex демо недопрошивка...

    Их схемы видно, в МК используются два вывода для модуляции сигнала...

    Один вывод (7) - это модулирующие колебания около 1.64 Кгц, судя по прошивке, которая больше ничего не умеет. Второй вывод (6) - похоже на банальное ключевание выходного каскада: включили-выключили... Теперь самое интересное: RX50000 - это приемник умеющий демодулировать АМ и ... ИМ(!) . Т.е. выдавать огибающую импульсно-модулированного сигнала. Теперь понятно зачем ключевание выходного каскада...

    Дальше дело техники. Зашиваем код нажатой кнопки, например, в бифазный код (Посмотрите в сторону rc5. Только в данном случае все гораздо проще - в кодовую последовательность зашить только старт-бит, триггер-бит (если нужно отслеживать удержание кнопки) и два служебных бита - на 4-е кнопки хватит...). В приемном устройстве декодируем сразу огибающую с RX5000, используя прерывание по входу (либо простой опрос) + таймер. Никаких АЦП... Все элементарно!

  4. Дык wowa и советует - получите с помощью цикла возможность изменять с некоторой дискретностью (определяется выставленным значением в delay) задержку. Просто переменная будет указывать верхнюю границу счета...

  5. ...этот способ я пробовал! заманался пока плату вытравил а результатом остался недоволен!...

    Вы не любите кошек? Да вы просто их готовить не умеете! (с)

    Я травлю платы в купоросе минут за 10. Качество вполне приличное. Нужно только соблюдать пропорцию соли и купороса, растворять в минимальном количестве горячей (80-90 градусов) воды, непрерывно двигать ванночку в процессе травления...

  6. ...есть такое понятие как эквипотенциальные узлы, тее узлы в которых потенциалы одинаковые...

    Я знаю что такое эквипотенциальные узлы... Интересует каким боком они относятся к приведенной схеме. Иными словами, их там нет...

    Если лень звезды в треугольники преобразовывать, можно в любом симуляторе схемку нарисовать и полазать там с вольтметром...

  7. ...В этой хитроумной цепи из одинаковых резисторов есть отдельные экземпляры, которые "сачкуют" и не принимают участия в проведении тока...

    Это, простите, какие экземпляры не участвуют там в проведении тока? :blink:

  8. что за реклама????...

    Позволю себе немного несогласится: там присутствует ссылка на руссифицированный драйвер AVR-USB, даны пояснения о начале работы с ним. Давно искал нечто подобное. Запарился переводить...

  9. ...насколько сложно передать по сом порту код нажатой клавишы и чтоб етот код управлял какойто функцией в ПК? Планирую сделать мультимедиа-центр из старого компа Нужно будет управлять винампом с вышеописаной клавиатуры и с пульта.

    Здесь есть пример приема с пульта RC5 и передачи по RS232:

    http://forum.cxem.net/index.php?s=&sho...st&p=206994

    Обработчик на компе простейший (для VB) - используем элемент MSComm для приема сообщений. По приходу первого символа в приемный буффер порта (есть такое событие у этого элемента), запускаем таймер (тож элемент есть такой) и ждем некоторое время (большее чем время передачи сообщения) Потом забираем сообщение процедурой:

    				   Do
    			   DoEvents
    			   Loop Until MSComm1.InBufferCount >= 1
    			   strData = MSComm1.Input

    И пишем для Винампа нечто такое:

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    
    Private Sub Rulez()
     On Error GoTo t3
    Dim Device As String
    Dim Command As String
    
    Device = Mid(strData, 32, 2) ' Выделение из посылки нужных цифирь (Посылку не оптимизировал, чтоб в терминале смотреть удобно)...
    Command = Mid(strData, 44, 2)
    'Print Device
    'Print Command
    
    If Device = 25 Then
    	  HwndWMP = FindWindow("Winamp v1.x", 0)
    	  If HwndWMP = 0 Then MsgBox "Winamp не запущен!": Exit Sub
    
    	  Select Case Command
    	  Case 32
    	  Call PostMessage(HwndWMP, WM_KEYDOWN, 66, 1) ' Следующий трек
    	  Text1.Text = "Следующий трек"
    	  Case 33
    	  Call PostMessage(HwndWMP, WM_KEYDOWN, 90, 1) ' Предыдущий трек
    	  Text1.Text = "Предыдущий трек"
    	  Case 16
    	  Call PostMessage(HwndWMP, WM_KEYDOWN, 38, 1) ' Сделать громче
    	  Text1.Text = "Сделать громче"
    	  Case 17
    	  Call PostMessage(HwndWMP, WM_KEYDOWN, 40, 1) ' Сделать тише
    	  Text1.Text = "Сделать тише"
    	  Case 59
    	  Text1.Text = strData
    	  Call PostMessage(HwndWMP, WM_KEYDOWN, 88, 1) ' Play
    	  Text1.Text = "Play"
    	  Case 15
    	  Call PostMessage(HwndWMP, WM_KEYDOWN, 86, 1) ' Stop
    	  Text1.Text = "Stop"
    	  Case 60
    	  Call PostMessage(HwndWMP, WM_KEYDOWN, 67, 1) ' Pause
    	  Text1.Text = "Pause"
    	  Case 63
    	  Call PostMessage(HwndWMP, WM_KEYDOWN, 37, 1) ' Промотать назад
    	  Text1.Text = "Промотать назад"
    	  Case 56
    	  Call PostMessage(HwndWMP, WM_KEYDOWN, 39, 1) ' Промотать вперёд
    	  Text1.Text = "Промотать вперёд"
    End Select
    End If
    ' Отправляем окну Винампа сообщения о нажатии клавиш
    'Call PostMessage(HwndWMP, WM_KEYDOWN, 40, 1) ' Сделать тише
    
    t3:
     'MsgBox Err.Description
    
     Resume Next
    End Sub

    Сейчас сделал новую систему ДУ с пультом RC5, приемник подключается к USB и помещается в телефонную розетку. Управляет WinAmp-ом и lightAlloy-ем. Скоро добавлю поддержку проги Device Control. Все отлично, за время использования ни разу не завесился....

  10. Простой видеокоммутатор на реле, управляемый от детектора положительных импульсов. Т.е. когда присутствуют импульсы левого поворота, на выходе детектора, скажем 12В, которыми запитывается обмотка реле видеокоммутатора. Только при этом, ДВД должен быть в режиме AV.

    Если иначе, то уже несколько сложнее...

  11. Одним таймером/счетчиком отмеряешь интервал.

    Вторым счетчиком подсчитываешь импульсы...

    В некоторых случаях может пострадать точность. Когда частота относительно невысокая, можно воспользоваться другим методом:

    http://forum.cxem.net/index.php?s=&sho...st&p=219774

    ...Судя по всему вы организуете "ворота" счетчиком таймера, затем подсчитываете кол-во пришедших импульсов за определенный промежуток времени, хотя я могу ошибаться... Другой вариант - организовать ''ворота'' самими импульсами: заводим импульсы на вход МК с возможностью внешнего прерывания. По первому фронту (допустим возрастающему) возникает прерывание, запускаем таймер Т1 (65536 дискретов), с нужной частотой (чтобы при минимально возможной частоте, он не успел переполнится, либо учитывать переполнения, что несложно) и ждем второго нарастающего фронта (не забыв про задержку для антидребезга - думаю, половины длительности самого короткого импульса хватит..). После второго фронта запоминаем состояние счетчика таймера, обнуляем его и ждем третий фронт. После третьего запоминаем счетчик, сбрасываем его, сравниваем значение счетчика с предыдущим и находим разность. Если она меньше определенной величины (некой погрешности, обусловленной стабильностью импульсов) то слаживаем с предыдущим временем, делим на 2 и запоминаем в предыдущее. Если больше - отбрасываем как помеху и ждем следующего фронта. Далее аналогично. По окончании цикла измерений (лучше привязываться именно к числу импульсов, а не ко времени - по времени контролировать только таймаут, на случай если импульсы перестанут поступать...) получите среднее из n-го числа периодов - точность будет определяться величиной дискрета таймера - с отстройкой от помех... Частота импульсов невысокая и МК прекрасно все успеет...
  12. Не знаю где ты такой материал накопал, но он малость не сходится с практикой

    Я не знаю, что там у вас не сходится, но данная схемотехника является самой распространенной для устройств такого типа. Накопал в даташитах на соответствующие приборы. Несколько даташитов, разные производители, блок-схема одна... Делайте выводы..

    Приведите ссылку на даташит IR-приемника, с другой схемотехникой выходного каскада. Желательно с общим коллектором...

  13. Стараюсь выполнять деление только когда оно действительно необходимо. Переменная не увеличится только если ошибка в программе будет, или сбой... ИМХО, для деления вероятность сбоя больше либо равна чем при суммировании. А насчет ошибки в программе даже трудно представить, где ее допустить можно: все переменные рядом находятся. Если только между ними прерывание возникнет и стека не хватит... Но деление ведь тоже в несколько этапов выполняется - вероятность даже больше будет - время выполнения на порядок-другой больше будет..

  14. Выполнять ДЕЛЕНИЕ для такой простой задачи, и после этого все равно сравнивать? Смысл?

    О какой рассинхронизации идет речь? Выводим все переменные в конце цикла и все...

    Knazev33

    Посмотрите как можно без sprintf вывод переменных сделать (код существенно экономичнее):

    http://forum.cxem.net/index.php?s=&sho...st&p=326184

  15. Вводится дополнительная переменная - счетчик. Инкрементируется одновременно с i.

    В теле программы проводим проверку на равенство счетчика 20.

    Если равно - обнуляем счетчик и увел. на 1-цу ii.

    Если нет - пропускаем...

    И так по кругу...

×
×
  • Создать...