УСТАНОВКА УСТРОЙСТВА НА АВТОМОБИЛЬ
При установке устройства на автомобиль блокируется работа центробежного и вакуумного регуляторов: грузы центробежного регулятора должны быть зафиксированы при помощи скобок из проволоки вместо штатных пружин. Обойма подшипника, на которой крепится контактная группа прерывателя или датчик Холла в бесконтактном варианте, фиксируется металлической пластиной, связывающей штифт обоймы и корпус трамблёра. Шланг отбора разрежения для регулятора угла ОЗ на микроконтроллере соединён с патрубком отбора разряжения на карбюраторе или впускном коллекторе.
Любой вариант можно применять в упрощённом виде, т. е. без регулировки по разряжению. Штатный вакуумный регулятор в этом случае не блокируется, вход AN2 соединяется с +5 В через резистор 10 кОм. Эффективность устройства в упрощённом варианте уменьшиться. Если вход AN0 не используется, на него нужно подать напряжение, равное 1/2 питания микроконтроллера (+2,3 В) с делителя через резистор 10 кОм.
Зазор между контактами прерывателя устанавливается минимально возможный (для уменьшения износа кулачка прерывателя), но обеспечивающий чёткое размыкание и замыкание контактов. После этого устанавливается начальный угол ОЗ: он должен быть равен нулю по отношению к ВМТ и установлен по меткам на шкиве коленчатого вала и блоке цилиндров при неработающем двигателе.
Переход к системе зажигания на микроконтроллере можно осуществлять поэтапно. Предварительно нужно наметить для себя эти этапы, чтобы впоследствии было меньше переделок схемы.
·
Сначала собирается блок по схеме на Рис. 3 (для контактной системы зажигания) или по Рис. 4а/4б (для бесконтактной системы зажигания). Отключаются неиспользуемые входы АЦП (см. выше).
·
Затем плата устанавливается на автомобиль, при этом фиксируются грузики ЦР трамблёра. Всё, можно ездить в своё удовольствие!
·
Если в дальнейшем Вы собираетесь подключить самодельный датчик разрежения, используйте корпус несколько большего размера, для того чтобы потом разместить в нём датчик (если планируете подключить ДАД 45.3829, установите в схему 5-вольтовый стабилизатор для питания ДАД, лучше на стабилитроне и резисторе – так надежнёй).
На рисунке ниже показан пример конструкции блока зажигания с самодельным датчиком разряжения
Конечно, не следует ждать чуда от этого устройства. «Жигули» не превратятся в «Феррари», но ездить будут очень даже прилично и при этом заметно меньше расходовать бензина.
Подразумевается, что двигатель в исправном состоянии, карбюратор отрегулирован в соответствии с заводскими требованиями.
Если Вас постигла неудача при повторении устройства, не стоит ругать автора статьи и его программу: прочитайте внимательно текст на странице, и найдёте причину неудачи.
Автор не советует вносить изменения в схемы: кроме ухудшения работы и надёжности (а иногда и полной неработоспособности), ничего добиться не получится (особенно это касается замены КС147 на 7805 или ЕН5). Внешние устройства (самодельный тахометр) к портам микроконтроллера следует подключать через резисторы 3–10 кОм, причём резисторы должны находиться на плате блока зажигания – формирователя (формирователь будет работать даже при замыкании соединительных проводов тахометра на корпус). Нельзя оставлять «в воздухе» (т. е. неподключенными) запрограммированные, но не используемые входы микроконтроллера.
Опционально. Существенно снизить погрешность формирования УОЗ на низких оборотах можно, установив датчик ВМТ на шкиве коленчатого вала. Два варианта реализации этой опции рассматриваются в оригинале авторской статьи. Их реализация является достаточно трудоёмкой и не является обязательной при использовании регулятора на микроконтроллере, поэтому здесь они не приводятся. Желающие могут ознакомиться с ними самостоятельно.
Схема автоматического поддержания питания
Используя схему на переключаемых конденсаторах из предыдущего примера, можно создать устройство, поддерживающее свое питание (рис.9).
В исходном состоянии транзистор VT1 закрыт, напряжение питания контроллера Vdd равно нулю. При нажатии на кнопку напряжение источника питания Vbat подается на вывод питания микроконтроллера, и на выводе CLKOUT/OSC2 в режиме внешнего RC-генератора возникает генерация. Напряжение, вырабатываемое удвоителем, открывает транзистор VT1, соединяя шину Vbat и Vdd. Таким образом, схема начинает поддерживать свое питание.
Для выключения питания контроллера нужно выполнить инструкцию SLEEP, которая остановит тактовый генератор, что в свою очередь выключит питание микроконтроллера. Данный прием позволяет программно выключать питание устройства.
Преимущества:
- практически нулевое потребление тока;
- низкая стоимость (используется n-канальный полевой транзистор);
- высокая надежность;
- не требуется дополнительных выводов микроконтроллера.
Схема ключа
Схема ключа собрана на малогабаритном микроконтроллере ATTINY45, без изменения схемы и прошивки здесь так-же можно использовать и микроконтроллер ATTINY85.
Схема электронного ключа
Сам ключ (манипулятор) подключается к выводам микроконтроллера через переключатель, который предназначен для изменения передачи точек и тире слева на право и наоборот. Это кому как удобно, или-же для левой и правой руки.
Печатную плату я не делал, так как деталей мизерное количество. Монтаж сделан на макетной плате, которая закреплена на массивном стальном основании.
Распайка разъёмов под клавиатуру PC-2 и USB (мамы).
Эти разъёмы под различную (PC-2 и USB) клавиатуру установлены на задней стенке электронного ключа. При желании можете устанавливать один, только Вам необходимый разъём.
На задней стенке ключа так-же установлены разъёмы «Питание» и «Выход», а так-же и переключатель, меняющий положение точек и тире при передаче.
Вы себе можете установить совершенно другие разъёмы. Я поставил себе то, что было в наличии на момент сборки ключа.
Установка разъёмов на задней стенке ключа.
Светодиод подключенный к выводу 1 микроконтроллера, должен гореть, если клавиатура переключена на русскую раскладку клавиш (переключается клавишей «Caps Lock». Но к сожалению с имеющейся прошивкой этот режим не работает и контроль переключения раскладки клавиатуры можно вести только в контроле на слух.
Автор делал прошивку для этого ключа давно, и другие варианты прошивок у него уже не имеется. Правда я не пробовал с этой прошивкой контроллер ATTINY85, нет в наличии, но скорее всего результат будет тот-же самый.
Демонстрационный ролик. Он кратко знакомит радиолюбителей с работой электронного ключа. Продемонстрированы только некоторые режимы работы ключа:
В качестве звукового индикатора в ключе применена логическая микросхема К155ЛА3 или её любые аналоги.
Схему можно значительно упростить, если использовать звуковой излучатель со встроенным генератором. Он подключается непосредственно к выводу «7» микроконтроллера. Для уменьшения громкости можно использовать последовательно с ним включенный резистор (подбирается по необходимому уровню громкости). Микросхема К155ЛА3 и вся её обвязка при этом убирается.
Реле я использовал 5-ти вольтовое слаботочное (какое нашел). При подключении реле необходимо иметь в виду, что общий нагрузочный ток по выводу «7» микроконтроллера не должен превышать 40 мА.
Если пяти-вольтовых слаботочных реле нет в наличии, то можно использовать любые реле на напряжение 9-12 вольт, подключенных к контроллеру через любой буферный каскад.
Например такой;
Буферный каскад для подключения реле.
Где транзистор можно ставить любой, с соответствующим током коллектора для имеющегося реле.
Да, ещё просьба. Если у кого-то сохранился или имеется в наличии подобный ключ, такой в котором при переключении раскладки клавиатуры и при переключении её на русский язык — горит контрольный светодиод, пожалуйста поделитесь такой прошивкой, так как упоминалось ранее, в имеющейся прошивке светодиод не горит при переключении клавиатуры, и его можно использовать разве что, только для визуального контроля выходного сигнала, подключив его совместно с резистором к выводу «7» микроконтроллера.
Спасибо!
Удачи Вам, 73!
ЗАКАЗ! СПРАШИВАЕМ ЭЛЕКТРОСХЕМЫ И ДОКУМЕНТАЦИЮ!
Электросхемы и документацию нужно выкладывать в соответствующем подразделе «Электросхемы, документации», здесь в ответе человеку указать ссылку на него. Если возникнет необходимость в обсуждении выложенного, обсуждать в соответствующей теме в разделах форума !
1. Общение в этой теме ведется лаконично, по принципу — «Просьба или вопрос» — «Конкретный ответ + линк на софт».
2. Любые посты, не соответствующие тематике и правилам, будут удаляться.
3. Перед выкладыванием электросхем или документации , пожалуйста, убедитесь в его отсутствии на форуме в этом или других разделах.
2.Нуна схема штатной сигналки НИССАН СЕРЕНА 1995 г. 1.6 литра
здравствуйте! интересует меня электросхема bmw 318i E 46 базовой модели с указанием цвета проводов. заранее спасибо.
здравствуйте! интересует меня электросхема bmw 318i E 46 базовой модели с указанием цвета проводов. заранее спасибо. Поясню немножко ситуацию. Вся схема = BMW WDS размером порядка 4,5 Гигабайт. К то му же отнюдь не цветная, как в печатном издании «За Рулём». И совсем не на 2 страницах.
На что конкретно нужно?
12F675: Microcontroller Power Supply
If you don’t have a bench power supply then you should use the following
standard circuit.
All you will need is a wall power supply block with dc output (greater than 8V
and no more than 35V) or a 9V battery to plug into CN1.Note: It is best to use the 5V power supply
circuit as it not only correctly regulates the dc voltage but it protects your
PIC chip. The input voltage can go up to 35V without damaging the 7805.You would not want to use that high voltage for very long if using
reasonable current as the 7805 would have to get rid of the excess power as
heat. Say you used 100mA dropping 35V to 5V gives P=VxI = 30 *0.1 = 3W — a
huge power output — the 7805 would get very hot and go into thermal
shutdown!
Формирование высокого напряжения
Напряжение выше, чем напряжение питания, может быть сформировано с использованием одного вывода микроконтроллера. В режиме внешнего RC-генератора на выводе CLKOUT/OSC2 присутствует тактовая частота, деленная на 4. Когда напряжение на выводе контроллера OSC2 равно нулю, конденсатор накачки С1 заряжается через диод VD1 (рис.8). При напряжении на этом выводе, равном Vdd, заряд с С1 переносится через диод VD2 на выходной конденсатор С2. В результате на выходе схемы получаем удвоенное напряжение питания минус падение на двух диодах.
Этот же результат можно получить с помощью любого переключаемого вывода микроконтроллера или вывода ШИМ.
Особенности программирования
PIC
12F
629 имеет только один порт ввода/вывода под названием GPIO
. На плате линии этого порта подключены к штыревому разъему PORTA/PORTGP
и другим элементам, связанным с ним. Это позволяет производить разработку устройств и отладку программ, точно также как и для других МК. Выход температурного датчика DS18B20, имеющий возможность подключения к линии RA
5 с гнездом для PIC
12F
629 не связан.
При запуске среды разработки открывается проект, где в первую очередь, необходимо установить используемый тип генератора частоты. Наиболее востребованным вариантом для данного кристалла будет использование внутреннего генератора. Это позволяет использовать линии GP4 и GP5 для ввода/вывода. Внутренний генератор имеет обозначение INTR_OSC_NOCLOCKOUT. Также устанавливаются другие биты конфигурации, в зависимости от требований схемы. При необходимости установки калибровочной константы, сделать это можно после запуска программы программатора microICD.
Написание программы мало отличается от этого действия для других контроллеров при учете особенностейPIC
12F
629. Главная – название порта ввода/вывода. В IDE MicroPascal его глобальное определение GPIO
, а регистр конфигурации обозначается TRISIO
. Дополнительно при инициализации нужно определить назначение выводов GP
0 и GP
1. По умолчанию они являются входами аналогового компаратора. При использовании в качестве цифровых линий необходимо выполнить команду CMCON:=7. С ее помощью данные вывода настраиваются как линии дискретного ввода/вывода. Ну и не стоит забывать, что вывод GP
3 работает только как вход. В остальном программирование PIC
12F
629 ничем не отличается от других контроллеров PICmicro
.
Характеристики ключа
Электронный телеграфный ключ может работать как ямбический ключ с памятью элемента знака (точек и титре). Так же основное назначение ключа — это работа непосредственно с клавиатуры, как латинским (английским) шрифтом, так и русским. Переключение раскладки клавиатуры производится клавишей «Caps Lock». Скорость передачи устанавливается средняя при включении ключа. Уменьшить или увеличить скорость передачи знаков ключа, можно клавишей «Page Up» — больше, клавишей «Page Down» — меньше.
Передачу (макросов) можно прервать в любой момент клавишей Esc, или сразу перейти на работу с манипулятора, но при этом очистится буфер. Это сделано для тех кто учится работать с клавиатуры, чтобы в любой момент перейти на традиционный манипулятор и с него продолжить работу.
Ключ ещё может передавать кроме букв различные знаки;
Всякие знаки.
Клавиша | Описание | Как звучит |
< | SK | …-.- |
= | знак раздела | -..- |
+ | плюс | -…- |
, | запятая | —..— |
-..-. |
В памяти ключа имеются постоянно записанные макросы (не перепрограммируемые), это следующие макросы;
F1 — TEST CALL CALL TEST
F2 — QRZ? DE CALL
F3 — TU UR (RST) NR..
F4 — DE CALL или CALL (корреспондента) DE CALL — если предварительно в F9 был записан позывной корреспондента.
Tab- …..DE CALL RST RST BK
Ctrl- СQ CQ CQ DE CALL CALL CALL CQ……..PSE K. Общий вызов и свой позывной (предварительно записанный в «END») передаются три раза.
Win- типовое QSO-1
Alt- типовое QSO-2
Перезаписываемая память;
В эту память можно записывать четыре сообщения (макросы), это следующие клавиши;
Клавиша F5 позволяет записывать сообщение длиной в 80 знаков (считая и знак пробела);
Клавиша F6, на неё можно записать сообщение длиной в 60 знаков;
Клавиша F7, на неё можно записать сообщение длиной в 35 знаков;
И клавиша F8, на которую можно записать сообщение длиной в 25 знаков.
F5..F8 — используйте на своё усмотрение.***
Имеются ещё и вкладываемые перезаписываемые макросы, которые передаются в постоянно записанных макросах. Это следующие макросы;
Вкладываемые макросы:
Клавиша «END» (8 знаков) — передаёт собственный позывной.
Клавиша «Home» (8 знаков) — передаёт собственное имя.
Клавиша «F9» (8 знаков) — передаёт позывной корреспондента.
Клавиша «F10» (8 знаков) — передаёт имя корреспондента.
Клавиша «F11» (8 знаков) — передаёт RST корреспондента.
Клавиша «F12» (4 знака) — передаёт номер QSO.
Запись в перезаписываемые макросы происходит следующим образом:
1) Нажать ‘~'(она же ‘Ё’). Услышите ‘REC’.
2) Выбрать место для сообщения: F5, F6, F7, или F8 — Услышите ‘R’ (если всё нормально) или ‘?’ (если нажали что-то не то) и запись прервется.
3) Далее набрать текст не больше указанной выше длины (если набрать больше, будет сообщение AR и запись закончится), и в конце нажать ‘Enter’.
При наборе нет самоконтроля. Как подтверждение услышите ‘OK’.
ВНИМАНИЕ!!! есть ограничение по записи.
Общее количество букв вместе с вложенными макросами не должно превышать 160 знаков (размер буфера клавиатуры). Иначе кнопки F5; F6; F7; F8 при воспроизведении откажутся работать или часть записываемого макроса будет утеряна.
В этом случае сообщения с вкладываемыми макросами (кнопки: F9; F10; F11; F12; Home; End.) лучше записывать уже с предварительно записанными на эти кнопки макросами.. 4) Всё записанное можно прослушать, нажав соответствующую кнопку
4) Всё записанное можно прослушать, нажав соответствующую кнопку.
Например, чтобы записать общий вызов на F5, нужно нажать: «~» — услышите «REC», далее нажать «F5» — услышите ‘R’
Далее набрать текст с пробелами — CQ CQ CQ DE {END} {END} {END} CQ PSE K{ENTER} — услышите ‘OK’.
Так-же записываются и другие макросы, но не забудьте сначала записать в {END} свой позывной, а в Home своё имя.
5) Номер QSO:
Есть функция учета номера QSO. Для его воспроизведения служит клавиша F12. Её можно вставлять в макросы F5 — F8.
Для увеличения номера на 1 служит клавиша «PrintScreen», её также можно использовать в макросах. Начальная установка номера — клавиша «ScrollLock». На вопрос «NR» — нужно ввести номер и нажать «Enter».
Вот для примера возможная конфигурация записи макросов:
F5(CQ) : CQ TEST DE {END} {END} {END} TEST
F6(CQ Ex) : _DE {END}
F7 (Tu): TU{PrintScreen} {END} TEST
F8(S&P Ex): TU 5NN {F12}{PrintScreenz )
Home(Call): RV3AM
Software
The next thing to do is
to flash the LED to prove that the system you have is working as reading back
data is not very interesting.
Source code files :To get the file
software project files and c source code click here.
You can use the hex file directly to program the 12F675 then it will
flash the led on and off or you can re-compile the files using the free
compiler from Mikroelectronika. You
can find a very brief compiler tutorial here.Some of the C source code is :
//////////////////////////////////////////////////////////////////////void init_ports(void) { TRISIO = 0; // set as output}//////////////////////////////////////////////////////////////////////// Start herevoid main() { init_ports(); while(1) { // infinite loop GPIO = (1<<4); delay_ms(200); GPIO = 0; delay_ms(200); }} |
First of all the
init_ports() routine sets up the direction of pins in the GPIO port — in common
with all the other PIC Micros you can change the port direction at any time
using a TRIS keyword (which is just another register location). Setting a
bit in the TRISIO register to zero sets the pin direction to an output. Here
all bits are zero so all GPIO bits are set as outputs.As you can see main() is a very simple easily readable program the only
slightly non obvious part is the (1<<4) statement.This just takes the value 1 and bit shifts it left four times so the number 4
is the same as bit position 4. Bits in a byte are labeled 7 to 0 from left
to right and (1<<0)=1, (1<<1)=2, (1<<2)=4, (1<<3)=8
etc. so this gives an easy way of setting an individual bit in a byte that is
also easy to read. If you wanted to set bit 5 you could write GPIO = 32; (or
0x20 in hex) but GPIO = (1<<5) is much easier to read.Note: The C programming course has more on
PORT control techniques.Try changing the
delay time (in both delay_ms statements) to a smaller or larger value and
re-compile and re-flash the chip to see the effect.
Show Index
×
Back | 12F675 Tutorial Index | Next |
Privacy Policy
| Contact
| About MeSite Map
| Terms of Use
Oscillator modes
As with the
16F88 the 12F675 microcontroller has eight oscillator modes but unlike the
16F88 the internal oscillator is fixed at 4Mhz.You can use an external oscillator either a resistor capacitor pair, an
external clock signal or a crystal (or resonator). You can even operate the
crystal to 20Mhz if you need extra performance. Note: Only use the external modes if
absolutely necessary as you loose the use of pins (loosing 2 out of 6 I/O pins
is a lot to loose).
12F675: Tutorial 1 Flashing an LED
The first
program is a flashing LED — it always is! The reason is that there is the
least hardware to go wrong so it gives a good test of your system setup. This project also uses the 12F675’s internal oscillator and you don’t need a
crystal so there is even less to go wrong!Use the >solderless breadboard to
construct the following circuit:Note: Double check your connections on the
breadboard.Note: the plus sign on the 10u electrolytic
capacitor which must connect to the positive input voltage and have a voltage
rating stamped on it of greater than 35V (or greater than your maximum dc power
block output). The LED must be connected with the flat side to ground.
12F675: Oscillator calibration value.
See this page for procedure on
12F675 calibration.
Before Programming it with your hex file make a note of the oscillator
calibration value which is factory set by Microchip.Note:The calibration value is located at the
last memory address 0x3FFThis value calibrates the 4MHz oscillator to 1%. If overwritten you have to
re-calculate it yourself.
for m ore detailed information (in a further tutorial) and then come back
here.If you use ICPROG then it warns you that you are about to overwrite the
oscillator calibration value and asks if you use the value from the hex file —
you should answer No to keep the original value.Note: Each oscillator calibration value will
be different so you have to note down each value for each chip and not muddle
them up! If you loose it you can recalculate it but you will need a frequency counter.
TIP: This page (12F675 OCSCAL
calibration) shows you how to calibrate the 12F675 using a frequency
counter, a PICkit3 and some code running in the 12F675.
Принципиальная схема
Оба устройства выполнены на восьмиразрядном микроконтроллере PIC12F675 . В первом варианте использован внутренний калиброванный RC-генератор микроконтроллера частотой 4 МГц, обеспечивающий достаточную стабильность скорости передачи по времени и малое энергопотребление. Скорость передачи регулируется от 17 до 50 слов в минуту (60.200 знаков/мин) переменным резистором R6.
Рис. 1. Схема телеграфного ключа на микроконтроллере, предназначен для индивидуальных тренировок и обучения.
Рис. 2. Схема телеграфного ключа на микроконтроллере для встраивания в трансивер.
Во втором варианте ключа пределы изменения скорости передачи такие же, а регулируется она переменным резистором R7.
Алгоритм работы ключа определён программой, записанной в память микроконтроллера. Строго выдерживается стандартное соотношение длительностей точек, тире и пауз 1:3:1.
Для прослушивания сигнала к НЧ-выходу ключа можно подключить либо внешний усилитель, либо компьютерную микротелефонную гарнитуру с сопротивлением головных телефонов 100.600 Ом.
Тональный сигнал имеет фиксированную частоту около 750 Гц. В предлагаемых вариантах ключа нет возможности записывать и передавать макросы (по мнению автора, с этим лучше справляется компьютер), но есть ямбический режим. Принято считать, что существуют два ямбических режима — А и В. Режим А предназначен для работы на двухрычажном манипуляторе.
Нажатие обоих рычагов приводит к чередованию тире и точек, начиная со знака, рычаг которого нажат первым. При использовании однорычажного манипулятора ямбический режим А не действует.
Ямбический режим В отличается только наличием памяти знака, которая действует и при использовании однорычажного манипулятора. В обоих вариантах ключа предусмотрены оба ямбических режима.
Возможна работа и с традиционным ключом Морзе (так называемым «коромыслом») S2. Ключ, собранный по схеме на рис. 1, потребляет от стабилизатора DA1 в режиме ожидания ток 1,24 мА, при передаче серии точек со скоростью примерно 100 знаков/мин — 3 мА, при длительном нажатии — 6 мА.
Его работоспособность сохраняется при понижении напряжения питания до 3 В. Тон сигнала при этом повышается до 800 Гц, а скорость передачи фактически остаётся прежней.
Recent Articles
-
MCP41010: If you need to digitally control a resistance this is the chip to use. Use it to make programmable gain amplifiers or create voltage references.
-
ATtiny85: The smallest Arduino Chip! FOUR features you missed! Find out How Good It is, and how you can Easily program it over USB with no USB Chip!
-
Arduino Projects: Find out how to use many different chips from humidity sensors to accelerometers, DACs and much more…
-
Arduino Display: How to display Text or Graphics with an Arduino. Should you use a text or a graphics display? Find out the best Ones to Use.
-
Arduino joystick: A Tutorial showing you exactly how to read the outputs for precise joystick positioning. Test it with a new library making it Easy…
-
Arduino Interface Hardware: Easy interface Techniques
Arduino Interface Hardware: Find out exactly how to Reliably Interface Arduino Microcontrollers using techniques you may not have seen yet.
Внешний RC-генератор с изменяемой частотой генерации
Частота внешнего RC-генератора определяется параметрами внешней цепи, подключенной к выводу OSC1. Сопротивление этой цепи можно изменять, управляя напряжением на выводе порта GP. Уровень лог. «1 » на GP0 подключает резистор R2 параллельно R1, таким образом, общее сопротивление цепи уменьшается, и частота генерации увеличивается. Перевод состояния GP0 на вход увеличивает сопротивление RC-генератора, тем самым уменьшая его частоту. Данный прием позволяет изменять частоту тактирования микроконтроллера, изменять быстродействие системы, а значит, изменять потребление микроконтроллера в зависимости от выполняемой задачи.
Обработка нескольких кнопок с помощью одного входа
Микроконтроллеры PIC12Fxxx имеют аналоговый компаратор с программируемым источником опорного напряжения, а также два таймера с разрядностью 8 и 16 бит. Следующий пример показывает, как, используя только один вход микроконтроллера с компаратором, а также один из таймеров, можно определить нажатие одной из нескольких кнопок.
Время заряда конденсатора C1 (рис.4) определяется сопротивлением резисторов, подключенных между цепью напряжения питания и конденсатором. При изменении сопротивления изменяется время заряда. Когда какая-либо кнопка нажата, напряжение питания подключается к конденсатору через определенное количество резисторов и общее сопротивление зарядной цепи уменьшается, уменьшая время заряда. Использование таймера совместно с компаратором позволяет измерять время заряда, а значит, и определять, какая из кнопок нажата.
Программная последовательность:
- Конфигурируем GP2 как выход с уровнем лог. «0 » для разрядки конденсатора.
- Конфигурируем GP2 как один из входов компаратора, другой вывод компаратора подключается к внутреннему источнику опорного напряжения.
- Запускаем таймер и измеряем время до срабатывания компаратора.
Если измеренное время соответствует максимальному для данной схемы, значит, ни одна из кнопок не нажата, и процедура опроса клавиатуры повторяется. Когда какая-либо кнопка нажата, скорость нарастания пилообразного сигнала увеличивается, а время срабатывания компаратора уменьшается.
Обработка нескольких кнопок с помощью одного входа с выходом из режима SLEEP
Микроконтроллеры PIC12Fxxx имеют режим микропотребления SLEEP. В этом режиме работа ядра останавливается, и потребление контроллера может снизиться до 0,9 мкА. Работу предыдущего примера можно дополнить функцией выхода из режима SLEEP при нажатии какой-либо кнопки. Для реализации этой возможности необходимо использовать дополнительный вывод микроконтроллера (рис.5).
До входа в режим SLEEP нужно сконфигурировать вывод GP2 как выход с установленным уровнем лог. «1 », а GP1 — как вход с возможностью прерывания по изменению состояния.
Подтягивающий резистор R1 удерживает GP1 в низком состоянии. При нажатии кнопки вход GP1 переводится в высокое состояние через GP2 и Vdd, что приводит к возникновению прерывания и выходу микроконтроллера из SLEEP. После этого нужно записать в GP2 лог. «0 » для разряда конденсатора C1 через резистор R2. Затем GP1 устанавливаем в лог. «1 », а GP2 конфигурируем как вход компаратора для измерения времени заряда конденсатора.
Программная последовательность:
- GP1 соединяется с общим выводом кнопок.
- Разрешить прерывание по изменению состояния порта GP1.
- До включения режима SLEEP установить GP1 как вход, а GP2 как выход с лог. «1 ».
- Если кнопка нажата, микроконтроллер выходит из SLEEP, установить в GP2 лог. «0 » для разряда конденсатора.
- Установить GP1 в лог. «1 », определить, какая кнопка нажата, путем измерения времени заряда.
Клавиатура 4×4 с использованием одного входа
Микроконтроллер PIC12F675 имеет в своем составе 10-разрядный АЦП с временем измерения до 20 мкс. Наличие встроенного АЦП позволяет реализовать клавиатуру с большим количеством кнопок, используя всего один вход (см.рис.6). При правильном выборе значений номиналов резисторов замыкание каждой из кнопок сформирует уникальное напряжение, соответствующее именно этой кнопке. Измеряя напряжение Vout с помощью АЦП, можно определить, какая именно кнопка нажата. Для однозначности определения нажатой клавиши лучше использовать точные резисторы. Если ни одна из кнопок не нажата, измеренное напряжение будет около 0 В.
Регулятор скорости для коллекторного (щеточного) двигателя, с реверсом. Радиоуправление.
Откопал в закромах жесткого диска схемку, регулятора скорости для коллекторного — щеточного (brushed) двигателя. Для чего, да просто у сына сломалась радиоуправляемая машинка, — пульт благополучно выбросили, а машинку оставили, на запчасти. Найдя её через несколько лет в шкафу — думаю, — а не заказать ли пульт,к ней, на ebay. Сказано — сделанно. Через короткое время, по нашим меркам не много, всего 3 недели, пришел пуль — FS-GT2. И не каким боком приёмник не пристроить к этой машинке. Нет, коробочка очень маленькая, спору нет, но сигнал из этой коробочки не просто сигнал, а Стандартный Серво Сигнал… Т.е
серво машинка работает на ура, хотя и её у меня сначало небыло, нашел у сынишки в Arduino, — рулём обеспечен, а вот скоростью… Так вот, двигатель к приемнику не подключишь, там… ну не важно
Понадобился регулятор скорости который управляется стандартным серво сигналом, вот и полез в закрома.
Сразу паять на плате не стал, вдруг, думаю лажа. Решил собрать на макетке, благо в наборе с Arduino была макетная плата. Схемка простенькая но на pic контроллере 12f675.
В один вечер собрал простенький программатор для pic — схемка простенькая, но как оказалосось — надёжная и что самое важное рабочая. Схема программатора:. Программатор PIC микроконтроллеров
Программатор PIC микроконтроллеров
Схема печатной платы:
Программа для прошивки называется icprog106B, можно WinPIC 800 и PonyProg 2000, также можно использовать прочие программы поддерживающие JDM.
Вот что в принуипе у вас должно выйти:Этим программатором можно прошить многие процессора, но мне он нужен был для pic12f675.
Вот схемма того самого регулятора скорости коллекторного двигателя, с обратным ходом ESC, по словам автор (автора найти не смог т.к документ скопировал в Word из интернет), обеспечивает
206 уровней мощности в прямом и обратном направлении, с автоматическим обнаружением нулевой после включения питания… Схема, оказывается представляетиз себя обычный H-мост ( H-bridge ), которым управляет микропроцессор pic12f675, в комплекте сосхемой шел исходник: скачать можно здесь — brushed_ESC_code (если вам понадобится перевести его для другого контроллера например pic 12f639 то в архиве есть исходники), второй файл — прошивка для 12f675 код в шестнадцатиричном виде ( hex ).
Схема печатной платы:
layers — speed control brushed motor
Фото того что получилось у меня:
Ну и на последок подсоединил мост от той самой радиоуправляемой машинки с тем самым коллекторным двигателем, подсоединил серву, приемник и батарейки. Всё работает как часы — и в перёд и назад и руль в лево, в право. Осталось перенести с макетки на печаную плату. ( Задний мост, серва, регулятор скорости с реверсом, приёник от FS-GT2, батарейки )
Результаты опубликую в следующей статье когда доделаю.