Как сделать квадратное отверстие

Автор DI HALT
Опубликовано 28 июля 2009 
Рубрики: Радиолюбительские Технологии
Метки: , ,

Думаю каждый из вас делал корпус для своей электронной поделки. И при изготовлении корпуса часто возникает одна мерзкая проблема — проделать дырку формой отличной от окружности. Например, квадратную, под LED индикатор.

Я раньше долго мучался, высверливал по контуру, затем шлифовал эти зубчики, матерился по поводу того, что сошлифовал лишнее или запорол параллельность. В общем, на все что касается механообработки материала у меня руки из задницы. И с этим ничего не поделать. Но там где не могут руки должна работать голова. И придумалось простое и эффективное решение.

Итак. Надо профигачить в пластиковом корпусе квадратную дырку.
Читать полностью

Комментариев (35)

Модернизация бокорезов

Автор DI HALT
Опубликовано 25 Апр 2009 
Рубрики: Инструмент
Метки: ,

Где то на форуме был разговор про зачищалки проводов. Не спорю, штука полезная. Но мне во первых влом их покупать, а во вторых я знаю что они будут вечно либо мешаться под рукой, а когда надо будут валяться незнамо где. Тем более все зачищалки которые я видел довольно громоздкие конструкции. Поэтому я проблему решил так:
Сделал две небольшие проточки в китайских бокорезах. Побольше и поменьше, у самого корня, в нерабочей области. И ими наловчился снимать изоляцию без обрыва жилок практически на любом проводе. В том числе и на тонюсеньком МГТФ. СНимается без разлохмачивания изоляции, главное наловчиться, но это на раз.

Читать полностью

Комментариев (21)

Переменный резистор

Автор DI HALT
Опубликовано 04 Окт 2008 
Рубрики: Начинающим
Метки: , , ,

Переменный резистор
Переменный резистор
Ограничение крайних значений
Ограничение крайних значений
Повышение точности
Повышение точности
Вроде бы простая деталька, чего тут может быть сложного? Ан нет! Есть в использовании этой штуки пара хитростей. Конструктивно переменный резистор устроен также как и нарисован на схеме — полоска из материала с сопротивлением, к краям припаяны контакты, но есть еще подвижный третий вывод, который может принимать любое положение на этой полоске, деля сопротивление на части. Может служить как перестариваемым делителем напряжения (потенциометром) так и переменным резистором - если нужно просто менять сопротивление.

Хитрость конструктивная:
Допустим, нам надо сделать переменное сопротивление. Выводов нам надо два, а у девайса их три. Вроде бы напрашивается очевидная вещь - не использовать один крайний вывод, а пользоваться только средним и вторым крайним. Плохая идея! Почему? Да просто в момент движения по полоске подвижный контакт может подпрыгивать, подрагивать и всячески терять контакт с поверхностью. При этом сопротивление нашего переменного резистора становится под бесконечность, вызывая помехи при настройке, искрение и выгорание графитовой дорожки резистора, вывод настраимого девайса из допустимого режима настройки, что может быть фатально.
Решение? Соединить крайний вывод с средним. В этом случае, худшее что ждет девайс - кратковременное появление максимального сопротивления, но не обрыв.

Борьба с предельными значениями.
Если переменным резистором регулируется ток, например питание светодиода, то при выведении в крайнее положение мы можем вывести сопротивление в ноль, а это по сути дела отстутствие резистора - светодиод обуглится и сгорит. Так что нужно вводить дополнительный резистор, задающий минимально допустимое сопротивление. Причем тут есть два решения - очевидное и красивое :) Очевидное понятно в своей простоте, а красивое замечательно тем, что у нас не меняется максимально возможное сопротивление, при невозможности вывести движок на ноль. При крайне верхнем положении движка сопротивление будет равно (R1*R2)/(R1+R2) - минимальное сопротивление. А в крайне нижнем будет равно R1 - тому которое мы и рассчитали, и не надо делать поправку на добавочный резистор. Красиво же! :)

Если надо воткнуть ограничение по обеим сторонам, то просто вставляем по постоянному резистору сверху и снизу. Просто и эффективно. Заодно можно и получить увеличение точности, по принципу приведенному ниже.

Повышение точности.
Порой бывает нужно регулировать сопротивление на много кОм, но регулировать совсем чуть чуть - на доли процента. Чтобы не ловить отверткой эти микроградусы поворта движка на большом резисторе, то ставят два переменника. Один на большое сопротивление, а второй на маленькое, равное величине предполагаемой регулировки. В итоге мы имеем две крутилки - одна “Грубо” вторая “Точно” Большой выставляем примерное значение, а потом мелкой добиваем его до кондиции.

Комментариев (38)

AVR. Учебный курс. Стартовая инициализация

Автор DI HALT
Опубликовано 09 июля 2008 
Рубрики: AVR. Учебный курс
Метки: , ,

Инициализация памяти
Мало кто подозревает о том, что при включении в оперативке далеко не всегда все байты равны 0xFF. Они могут, но не обязаны. Равно как и регистры РОН не всегда равны нулю при запуске. Обычно да, все обнулено, но я несколько раз сталкивался со случаями когда после перезапуска и/или включения-выключения питания, микроконтроллер начинал творить не пойми что. Особнно часто возникает когда питание выключаешь, а потом, спустя некоторое время, пара минут, не больше, включаешь. А всему виной остаточные значения в регистрах.

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

1
2
3
4
5
6
7
8
9
10
11
12
RAM_Flush:	LDI	ZL,Low(SRAM_START)	; Адрес начала ОЗУ в индекс
		LDI	ZH,High(SRAM_START)
		CLR	R16			; Очищаем R16
Flush:		ST 	Z+,R16			; Сохраняем 0 в ячейку памяти
		CPI	ZH,High(RAMEND+1)	; Достигли конца оперативки?
		BRNE	Flush			; Нет? Крутимся дальше!
 
		CPI	ZL,Low(RAMEND+1)	; А младший байт достиг конца?
		BRNE	Flush
 
		CLR	ZL			; Очищаем индекс
		CLR	ZH

Поскольку адрес оперативки у нас двубайтный, то мы вначале смотрим, чтобы старший байт совпал с концом, а потом добиваем оставшиеся 255 байт в младшем байте адреса.
Далее убиваем все регистры от первого до последнего. Все, контроллер готов к работе.

1
2
3
4
5
		LDI	ZL, 30		; Адрес самого старшего регистра	
		CLR	ZH		; А тут у нас будет ноль
		DEC	ZL		; Уменьшая адрес
		ST	Z, ZH		; Записываем в регистр 0
		BRNE	PC-2		; Пока не перебрали все не успокоились

За процедурку зануления регистров спасибо Testicq

Либо значения сразу же инициализируются нужными величинами. Но, обычно, я от нуля всегда пляшу. Поэтому зануляю все.

З.Ы.
Кстати, о оперативке. Нашел я недавно планку оперативной памяти на 1килобайт, древнюю как говно мамонта, еще на ферромагнитных кольцах.

Комментариев (20)


Материалы сайта являются авторскими. Копирование и публикация материалов без активной ссылки на первоисточник запрещено.

Реклама: