Как сделать квадратное отверстие
Автор DI HALT
Опубликовано 28 июля 2009
Рубрики: Радиолюбительские Технологии
Метки: Корпус, Мелочи, самопал
Думаю каждый из вас делал корпус для своей электронной поделки. И при изготовлении корпуса часто возникает одна мерзкая проблема — проделать дырку формой отличной от окружности. Например, квадратную, под LED индикатор.
Я раньше долго мучался, высверливал по контуру, затем шлифовал эти зубчики, матерился по поводу того, что сошлифовал лишнее или запорол параллельность. В общем, на все что касается механообработки материала у меня руки из задницы. И с этим ничего не поделать. Но там где не могут руки должна работать голова. И придумалось простое и эффективное решение.
Итак. Надо профигачить в пластиковом корпусе квадратную дырку.
Читать полностью
Модернизация бокорезов
Автор DI HALT
Опубликовано 25 Апр 2009
Рубрики: Инструмент
Метки: Мелочи, Рацуха
Где то на форуме был разговор про зачищалки проводов. Не спорю, штука полезная. Но мне во первых влом их покупать, а во вторых я знаю что они будут вечно либо мешаться под рукой, а когда надо будут валяться незнамо где. Тем более все зачищалки которые я видел довольно громоздкие конструкции. Поэтому я проблему решил так:
Сделал две небольшие проточки в китайских бокорезах. Побольше и поменьше, у самого корня, в нерабочей области. И ими наловчился снимать изоляцию без обрыва жилок практически на любом проводе. В том числе и на тонюсеньком МГТФ. СНимается без разлохмачивания изоляции, главное наловчиться, но это на раз.
![]() |
Переменный резистор
Автор DI HALT
Опубликовано 04 Окт 2008
Рубрики: Начинающим
Метки: Мелочи, Резистор, Схемотехника, Трюки
| Переменный резистор |
|
| Ограничение крайних значений |
| Повышение точности |
Хитрость конструктивная:
Допустим, нам надо сделать переменное сопротивление. Выводов нам надо два, а у девайса их три. Вроде бы напрашивается очевидная вещь - не использовать один крайний вывод, а пользоваться только средним и вторым крайним. Плохая идея! Почему? Да просто в момент движения по полоске подвижный контакт может подпрыгивать, подрагивать и всячески терять контакт с поверхностью. При этом сопротивление нашего переменного резистора становится под бесконечность, вызывая помехи при настройке, искрение и выгорание графитовой дорожки резистора, вывод настраимого девайса из допустимого режима настройки, что может быть фатально.
Решение? Соединить крайний вывод с средним. В этом случае, худшее что ждет девайс - кратковременное появление максимального сопротивления, но не обрыв.
Борьба с предельными значениями.
Если переменным резистором регулируется ток, например питание светодиода, то при выведении в крайнее положение мы можем вывести сопротивление в ноль, а это по сути дела отстутствие резистора - светодиод обуглится и сгорит. Так что нужно вводить дополнительный резистор, задающий минимально допустимое сопротивление. Причем тут есть два решения - очевидное и красивое :) Очевидное понятно в своей простоте, а красивое замечательно тем, что у нас не меняется максимально возможное сопротивление, при невозможности вывести движок на ноль. При крайне верхнем положении движка сопротивление будет равно (R1*R2)/(R1+R2) - минимальное сопротивление. А в крайне нижнем будет равно R1 - тому которое мы и рассчитали, и не надо делать поправку на добавочный резистор. Красиво же! :)
Если надо воткнуть ограничение по обеим сторонам, то просто вставляем по постоянному резистору сверху и снизу. Просто и эффективно. Заодно можно и получить увеличение точности, по принципу приведенному ниже.
Повышение точности.
Порой бывает нужно регулировать сопротивление на много кОм, но регулировать совсем чуть чуть - на доли процента. Чтобы не ловить отверткой эти микроградусы поворта движка на большом резисторе, то ставят два переменника. Один на большое сопротивление, а второй на маленькое, равное величине предполагаемой регулировки. В итоге мы имеем две крутилки - одна “Грубо” вторая “Точно” Большой выставляем примерное значение, а потом мелкой добиваем его до кондиции.
AVR. Учебный курс. Стартовая инициализация
Автор DI HALT
Опубликовано 09 июля 2008
Рубрики: AVR. Учебный курс
Метки: Assembler, Мелочи, Программирование
Инициализация памяти
Мало кто подозревает о том, что при включении в оперативке далеко не всегда все байты равны 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
Либо значения сразу же инициализируются нужными величинами. Но, обычно, я от нуля всегда пляшу. Поэтому зануляю все.





