Микроконтроллеры |
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Микроконтроллеры |
13.11.2010, 20:39
Сообщение
#61
|
|
Технический Маньяк-Гуру Группа: Технический Маньяк Сообщений: 1724 Регистрация: 15.10.2009 Из: Москва, п. Монино Вне форума Репутация: 8 |
Блин, спасибо, что ты есть!!! (IMG:style_emoticons/default/smile.gif) Слушай, а можешь нарисовать самую, на мой взгляд, крутую модель - электромагнитный излучатель без генератора управляемый одной ножкой МК? И почему сюда нужно подавать однополярный сигнал? Я думал, что надо и минус тоже?..
|
|
|
13.11.2010, 21:10
Сообщение
#62
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Посмотри здесь, не только схема, но и примеры кода (IMG:style_emoticons/default/smile.gif)
http://www.mikroe.com/eng/products/view/440/easybuzz-board/ В любом случае микродинамик можно подключать и без транзистора, но через разделительный конденсатор, а пьезо - сразу сажаем на порт. A eще есть серия микросхем UM66TxxL - генераторы мелодий, если запитать от порта МК, то при подаче высокого уровня подключенный к выходу микродинамик (типа таких как используются например в модемах) начнет играть мелодию. Список мелодий можно посмотреть в даташите на микросхему. |
|
|
15.11.2010, 12:49
Сообщение
#63
|
|
Технический Маньяк-Гуру Группа: Технический Маньяк Сообщений: 1724 Регистрация: 15.10.2009 Из: Москва, п. Монино Вне форума Репутация: 8 |
Нашёл на просторах инета такую схему, пишут, что очень хитрая и классная. Что скажешь? Я вот не втыкаю ваще почему так (IMG:style_emoticons/default/smile.gif)
|
|
|
15.11.2010, 17:01
Сообщение
#64
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
А черт его знает, что это за схема... Динамик включен в качестве смещения транзистора. Надо проанализировать чем она может быть так крута... Лучше по-моему использовать классику - как на ссылке.
|
|
|
15.11.2010, 17:37
Сообщение
#65
|
|
Технический Маньяк-Гуру Группа: Технический Маньяк Сообщений: 1724 Регистрация: 15.10.2009 Из: Москва, п. Монино Вне форума Репутация: 8 |
Из твоих слов понял только слово "смещение" (IMG:style_emoticons/default/smile.gif) Может как раз это и сместит сигнал 0..5В до -2.5В..2.5В? Ну и усилит до (сколько там надо) -5В..5В? (IMG:style_emoticons/default/smile.gif)
|
|
|
15.11.2010, 18:13
Сообщение
#66
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Нет, об отрицательном напряжении речь не идет. Смещение надо для перевода транзистора в активный режим, иначе он будет работать только в так называемом ключевом режиме - открыт-закрыт.
Если интересно - в двух словах поясню, Если база транзистора соединена непосредственно с портом МК (естественно через ограничительный резистор) то при отсутствии сигнала ток в цепи базы равен 0 и соотв. коллекторный ток тоже отсутствует. При поступлении сигнала - транзистор открывается и будет выдавать макс. коллекторный ток. Таким образом мы как-бы усиливаем дискретный сигнал, усиливать аналоговый таким образом нельзя т.к. из-за нелинейности ВАХ (вольт-амперной характеристики) транзистора на выходе получится неизвестно что. Вот для усиления аналоговых сигналов и надо сместить рабочую точку транзистора, т.е. организовать небольшой ток базы в отсутствии входного сигнала. |
|
|
18.11.2010, 10:51
Сообщение
#67
|
|
Технический Маньяк-Гуру Группа: Технический Маньяк Сообщений: 1724 Регистрация: 15.10.2009 Из: Москва, п. Монино Вне форума Репутация: 8 |
Ну ладно, не будем экспериментировать (IMG:style_emoticons/default/smile.gif) Тогда помоги плиз разобрать эту официальную схему:
C1 = 100nF - это понятно. E1 = 10uF - это конденсатор? Почему Е? Buzzer - это я так понял к любому пину МК? Что должен выдавать этот пин - постоянное напряжение или колеблющееся по play_sound? PZ1 - пьезоизлучатель? Они полярные или нет? С генератором или без? VCC это питание как на МК - 5В или любое, на которое рассчитан пьезик? |
|
|
18.11.2010, 11:28
Сообщение
#68
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
10uF = 10мкФ. Допускается замена "мю" на "u".
А вот все остальное - это импровизация, "Е" - по-видимому от слова electrolytic, да и условное обозначение отличается от нашего (кстати и неполярный тоже) Бузер подключается к любому пину, главное проинициализировать этот пин - Sound_Init(PORT, PIN). Работает от колеблющегося сигнала. Пьезоизлучатель - любой (без генератора), подключать можно и к 5В и, если есть, к 12В. |
|
|
18.11.2010, 11:59
Сообщение
#69
|
|
Технический Маньяк-Гуру Группа: Технический Маньяк Сообщений: 1724 Регистрация: 15.10.2009 Из: Москва, п. Монино Вне форума Репутация: 8 |
В схеме есть и 5В и 12В, т. е. я подключаю к тому напряжению, на которое рассчитан пьезик?
|
|
|
18.11.2010, 12:28
Сообщение
#70
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Да.
|
|
|
12.12.2010, 19:17
Сообщение
#71
|
|
Технический Маньяк-Гуру Группа: Технический Маньяк Сообщений: 1724 Регистрация: 15.10.2009 Из: Москва, п. Монино Вне форума Репутация: 8 |
А ты когда-нибудь работал по прерываниям? Допустим в основное время МК ничего не делает, а программа (кусок кода) срабатывает только когда например на входе появляется 1 вместо 0? Вроде так можно, читал в мануале, но хотелось бы примерчик работающий (IMG:style_emoticons/default/smile.gif) Pic 12F675.
|
|
|
12.12.2010, 19:34
Сообщение
#72
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
С аппаратными прерываниями (по входу INT, GP2 в 12F675) - просто пока такой необходимости не возникало, с прерываниями по таймеру - в примерах приведены образцы работающего кода:
Timer0 Interrupt Timer1 Interrupt Timer2 Interrupt Для расчета прерываний по таймеру есть отличная программа, которая и код к тому же генерирует TMRCalc.zip ( 160,38 килобайт ) Кол-во скачиваний: 461 |
|
|
15.12.2010, 16:44
Сообщение
#73
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Сегодня перечитал даташит на указанную микруху.
Соотв. установкой регистра INTCON можно не только активировать GP2/INT но также вызывать прерывания и по изменению уровня сигнала на остальных входах GPIO. И еще - по сигналу от компаратора или внутреннего АЦП а также по окончании записи во внутр. EEPROM. Ну и естественно остаются прерывания по переполнению таймеров. Всего аж 7 (!) источников прерываний... |
|
|
15.12.2010, 17:01
Сообщение
#74
|
|
Технический Маньяк-Гуру Группа: Технический Маньяк Сообщений: 1724 Регистрация: 15.10.2009 Из: Москва, п. Монино Вне форума Репутация: 8 |
Ну да, а вот как их использовать? Например установил я INTCON на прерывание по GP0. А самой программы типа while true do ... у меня и нет (она ведь теперь не нужна?). Я же должен описать что-то типа "on gp0 change do ..." вот как правильно? (IMG:style_emoticons/default/smile.gif)
|
|
|
15.12.2010, 17:12
Сообщение
#75
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Конечно, не нужна. В MikroPascal-e (на нем пишешь если не ошибаюсь) да и в Си и бейсике есть специальная процедура interrupt куда передается управление при возникновении прерывания. А вот в теле этой процедуры и можешь писать те действия, которые надо выполнять при возникновании прерывания.
Вот пример из help - при каждом переполнении таймера TMR0 значение переменной counter увеличивается на единицу procedure interrupt; begin counter := counter + 1; TMR0 := 96; INTCON := $20; end; |
|
|
17.12.2010, 9:02
Сообщение
#76
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
Возвращаясь к адаптеру для PicKit2, упомянутом в сообщениях #16 (фото) и #20 (разводка)...
Если в разводке для PIC все ясно, то адаптер для прошивки EEPROM имеет некоторые особенности, а именно 2 джампера и резистор, предназначение которых не объяснено. Исправляю упущение (IMG:style_emoticons/default/smile.gif) Разводка составлена согласно документации на PicKit2, в которой приведена таблица подключения программируемых микросхем памяти 24хх, 25хх и 93хх. Согласно этой таблице вывод 5 микросхемы 24хх должен подтягиваться к плюсу (pullup) а для остальных нет. Подтягивающий резистор - на 3...5,6кОм. Т.е. если программируем 24хх - джампер ставим, 25хх и 93хх - снимаем. Нижний джампер - для выбора типа организации памяти в микросхеме 93хх, для 8-битной надо соединить верхние два контакта (вывод 6 микросхемы на общий провод), для 16-битной - нижние (6 - на питание). Следует иметь в виду что некоторые микросхемы из этой серии имеют только один тип организации памяти (или 16 или 8 бит), а некоторые могут быть запрограммированы и так и так. |
|
|
17.12.2010, 10:43
Сообщение
#77
|
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 16.12.2010 Вне форума Репутация: 0 |
Как уже отмечалось, с PicKit-ом удобно использовать универсальный адаптер для прошивки отдельных МК и EEPROM. Выкладываю разводку такого адаптера, вернее 2-х, один для пиков, другой для микросхем памяти. [attachment=2354:PickitHeader.rar] Отличный адаптер - стал недавно обладателем pickit2 и занялся поиском универсального адаптера использующего ZIF панели с поддержкой максимального числа МК. Есть много других вариантов (на одной панельке например) но они по некоторым причинам не устраивали (часть выводов под нежелательным питанием, использование миропереключателей итд и тп ) Я так понимаю зеркалить надо Какие контроллеры прошивали ? Сообщение отредактировал jn79 - 17.12.2010, 10:51 |
|
|
17.12.2010, 12:09
Сообщение
#78
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
На двух по-моему удобнее. Просто хоть один из ZIF-ов надо поставить как у меня - с широкими контактами.
Прошивал все, и пики в разных корпусах (40, 28, etc.) и все три вида памяти - на втором адаптере. Плюс, прошивал все обозначенное и внутрисхемно и для отладки использовал питание через PicKit2. Адаптер не совместим с dsPIC-ами (сам PicKit- прошивает, но адаптер должен быть другим) Встречалась мне схема на одном ЗИФ-е, что мне не понравилось - разные пики надо ставить вразнобой, во кстати и этот адаптер. Рабочий или нет - не знаю, не проверял и даже не вникал (IMG:style_emoticons/default/wink.gif) Adapter.rar ( 46,52 килобайт ) Кол-во скачиваний: 537 Платы - да, надо зеркалировать. Еще для программатора посоветую изготовить удлинитель, просто соединенные жгутом 6-контактные колодки папа и мама, не всегда удается подлезть к разъёму ICP... |
|
|
14.1.2011, 13:59
Сообщение
#79
|
|
Технический Маньяк-Гуру Группа: Технический Маньяк Сообщений: 1724 Регистрация: 15.10.2009 Из: Москва, п. Монино Вне форума Репутация: 8 |
А можно ли при программировании, чтобы не запутаться в куче пинов, заранее обозначить как-нить так:
Код Led1 := PORTA.0; Led2 := PORTA.3; Btn1 := PORTA.1; А потом просто писать типа: Код if Btn1 then do
Begin Led1:= 1; Led2:= 0; end; |
|
|
14.1.2011, 14:53
Сообщение
#80
|
|
Технический Маньяк-Гуру Группа: Администраторы Сообщений: 7044 Регистрация: 3.6.2009 Из: Армения Вне форума Авто: Lancer IX, AT Репутация: 263 |
В MikroBasic такая возможность есть, надо в начале программы записать что-то типа этого:
symbol Inputport = PORTB.0 Записывается именно в начале программы, до объявлений переменных и т.д. В help-е на Паскаль я что-то не нашел такого, может в про версии присутствует (у меня её нет чтоб посмотреть) |
|
|
+7-978-708-85-73 Дроссель Amadeus Productions. Быстрый заказ по телефону. (Viber, WhatsApp, Telegram) |
Текстовая версия | © 2006-2024 Форум Технических Маньяков. |
|