Поиск сообщества
Показаны результаты для тегов 'Attiny13'.
Найдено: 21 результат
-
Всем привет. Так получилось, что цифровой электроникой я занимаюсь уже более 5 лет (работаю с FPGA). Последний раз я программировал микроконтроллеры еще в университете, и с тех времен у меня в столе пылится десяток ATTiny13, которые были куплены на заре появления Aliexpress для простых университетских проектов. С тех пор многое поменялось: университет я закончил, магистерскую защитил, профессиональные интересы сместились в сторону FPGA и цифрового синтеза, но ощущение того, что я пропустил какую-то важную главу в электронике никуда не делись, а наоборот, только росли. Во время очередной инвентаризации моих закромов с электронными компонентами, я наткнулся на уже упомянутые ATTiny13 и решил, что пора закрыть этот гештальт. Понятно, что в 2022 году интернет полон руководствами того, как работать с микроконтроллерами AVR и более того, в современных реалиях, когда есть STM, возможно эти руководства уже никому и не нужны. Славные времена, когда Atmel был лучшим предложением за свои деньги, остались в прошлом, и только Arduino не потерял актуальности. Поэтому, я решил вести блог не столько ради того, чтобы кому-то что-то объяснить, сколько ради отслеживания личного прогресса и, возможно, обсуждения, если кому-то будет это интересно. Поехали. Как человек, который привык работать с красивыми фирменными отладочными платами, в какой-то момент я понял, что не хочу каждый раз тратить время на пайку макетных плат, а потом еще и искать где на ней отвалился провод. Было решено воскресить свои знания по работе в DipTrace: нарисовать схему, развести плату и отправить все это дело на jlcpcb. Стоит отметить, что до этого, я никогда не пользовался услугами китайских изготовителей плат и было немного боязно за возможность потерять время и деньги, но почитав в интернете про опыт других электронщиков я все-таки решил рискнуть (ну и на самом деле мне очень не хотелось "плескаться" в хлорном железе). После отправки архива с исходными файлами платы, китайский инженер-технолог прислал мне письмо, где указал на найденные им недостатки. Скажу честно, я был приятно удивлен таким сервисом. Замечания были исправлены, архив с исходниками был еще раз отправлен и все что мне оставалось - ждать. Пока я ждал платы, было решено обновить свои знания в программировании на С. Приобрел первую попашуюся книгу по С в ближайшем ко мне книжном магазине. Вот такую: Книга показалось мне удачной. Конечно, в ней ничего не рассказывалось про микроконтроллеры, но в целом чтобы вспомнить синтаксис языка - мне хватило. Таким образом прошел месяц подготовлений, а потом я получил заказанные мною платы. Если говорить о качестве, то он топ за свои деньги. Местами есть мелкие недочеты, но в целом жаловаться не на что. Как Вы могли уже обратить внимание, у меня было некоторое количество разноцветных PLS, и надо признать, после монтажа внешний вид у плат получился как минимум интересный. Т.к. моя основная операционная система на компьютере - linux, то мною были установлены avr-gcc компилятор и avrdude. При попытке вычитать ID микроконтроллера usbasp'ом, avrdude ругался на то, что вычитанный ID не соответствует ID ATTiny13. Проблема решилась снижением скорости на ISP установкой перемычки JP3 на программаторе. После успешного чтения ID была написана простейшая программа мигания светодиодами. Чтобы не заморачиваться со скриптами, было решено читать ID контроллера, компилировать прошивку и загружать ее во flash с помощью Makefile. Далее я поигрался с таймером, ШИМом и wachdog-таймером. Все исходники лежат на GitHub. Там же буду размещать другие примеры работ с АЦП и прерываниями, когда дойду до них. На этом пока завершаю свое повествование. video_2022-08-14_17-56-54.mp4
-
Появилась необходимость собрать реле паузы для стеклоочистителя для установки на автомобиль Славута, и грузовой автомобиль с бортовой системой питания 24 вольта. Много готовых проектов в сети , но логика работы немного не подходит , да и хочется сделать самому. Вот нарисовал схему, посмотрите по номиналам деталей, может что надо изменить или переделать, номиналы брал с аналогичных схем. Хочется что бы схема подключалась одинаково к питанию +12 так и к питанию +24 вольта без изменения номиналов деталей. Работать будет при включении первого положения переключателей дворников , команду для паузы брать от переключателя на омыватель стекла. таймер для дворников.spl7
- 16 ответов
-
- ATTiny13
- реле паузы
-
(и ещё 1 )
C тегом:
-
Здравствуйте, уважаемые форумчане! Вообще говоря, не имею такой привычки - донимать людей вопросами, и до всего стараюсь доходить самостоятельно. Но в данном случае без "помощи зала" совсем никак: перепробовал уже все, что только смог придумать - а "воз и ныне там! Поэтому и обращаюсь сюда - возможно, кто-то уже сталкивался с чем-то подобным, и сумел найти решение... Суть проблемы в следующем: решил построить ШИМ-контроллер для автомобильного вентилятора охлаждения ("карлсона"), но никак не могу заставить его работать - как только открываются VT2 и VT3, подключая нагрузку, МК уходит в резет или виснет (чаше - первое)!.. Сбросившись, опять пытается подключить нагрузку, и опять резетится, и так - без конца! Причем, изначально решил испытать схему не на индуктивной нагрузке (электромоторе), а на вполне себе пассивной 60Вт (около 3A по току) лампочке из фары - и та же фигня: МК пытается запуститься, сбрасывается, лампа моргает, дергается... Даже не ШИМ, а обычное мигание лампой с частотой 1Гц через несколько вспышек или вешает МК, или резетит его (что видно по сбою ритма моргания). При этом без нагрузки - по осциллографу, подключенному к ноге 5 МК или к нижнему (по схеме) выводу R7 - все отлично: наблюдается ровный и чистенький ШИМ-сигнал, изменяющийся согласно тестовой программе! Однако, стоит подать нагрузку, как осциллограмма начинает прыгать: появляются ШИМ-импульсы, затем ровная линия, затем снова импульсы с тем заполнением, которое должно быть в самом начале программы... Собственно, это наблюдение и позволило сделать вывод о том, что МК перезагружается. Естественно, первая мысль - слабый лабораторник (он у меня импульсный, самодельный, где-то на 3А - действительно слабый; но та же петрушка наблюдалась и при попытках питать устройство от трансформаторного ЗУ на 10А). Ну, пригнал машину, снял с нее аккум (100% свежий и не дающий просадок!), запитал от него - однако проблема повторилась... Значит, дело не в питании!.. Пробовал много различных танцев с бубном: отключал внешнюю цепочку сброса R2-C2 (результат - ноль), включал BOD микроконтроллера (стало еще хуже), подвешивал вместо C4 и C6 электролиты большей емкости (не помогло)... Думал, что, возможно, кондеи C4 и C6 разряжаются через R7 - экспериментировал с его сопротивлением (от 100 до 960 Ом), перекидывал его верхний вывод на анод VD1 (чтобы отсечь резистор от фильтрующих C4 и C6) - тщетно... Грешил даже на то, что какие-то проблемы вносит емкость затворов VT2 и VT3 - уменьшал сопротивление R10 и R12, дабы затвор быстрее "разряжался" - безрезультатно... Игрался с частотой МК и ШИМ - перебрал частоты ШИМ от 18 до 4687 Гц; пытался запускать нагрузку с разным заполнением ШИМ, от 10 до 40% - как глючило, так и глючит... Т.е., перелопатил, практически, всю схему! Удалось заставить устройство нормально работать на лампу, и даже на пару спаралеленных электродвигателей МЭ218 (от "печки") следующим образом: R8 был исключен (вместо него - перемычка), а C7 (изначально - К73-17В всего на 0,47мкФ) был заменен на пару электролитов по 1500мкФ, включенных плюс к плюсу последовательно (для устранения полярности кондеев). Нагрузка стала нормально подключаться, отрабатывать как на повышение, так и на убывание заполнения ШИМ. Двигатели отлично работали как при ступенчатом изменении ШИМ-заполнения, так и при плавном. Единственное, что при попытке подать на двигатели ШИМ с заполнением менее 20%, МК опять начинал дергаться и резетить, а так же резетил при резком отключении движков: если раскрутить их до 100%, а потом снять сигнал, то МК перезагружался; однако, если после 100% плавно понижать обороты где-то до 40%, и лишь потом снимать сигнал, то схема работала нормально. Плюс, очень сильно нагревались электролиты C7... Однако, когда принес схему в машину - для отладки непосредственно в "боевых условиях", и подключил мощный двигатель вентилятора, началась старая песня с резетами... Сейчас, вроде бы, "осенило" - поменял VD2 на Шоттки 1N5822 - лампочка запустилась на "ура" даже без С7; так же отлично и мягко стартовала спарка из МЭ218 - радостный побежал к машине... Но с "карлсоном" - опять мимо: МК вновь ушел в перезагрузку... Все: я не знаю, что тут делать - каждую деталь уже перелопатил, и кучу вариантов испробовал!!! Но ничего не понятно(( Вот и прошу помочь: может быть, кто-то уже был в такой ситуации, и как-то решил подобную проблему? VT2 и VT3 стоят "фирменные", IR-овские (не Китай) - из "Чип и Дипа". ATtiny13 - с Алиэкспресс; чтобы исключить возможность брака конкретной микросхемы, пробовал ставить в схему несколько разных экземпляров МК (из одной посылки). DS18B20 пока еще не подключал (нужно разобраться с ШИМ!). IRF3205 каскадированны для уменьшения нагрева (хотя его и так практически нет), и для дополнительной надежности (чтобы в случае выхода из строя одного транзистора не перегреть машину). Тестовую программу специально написал "китайским стилем", без циклов и т.п. - чтобы она была максимально простой, наглядной и линейной - для уверенности, что не в ней дело. Подскажите пожалуйста - откуда эти резеты, и как с ними бороться? Как заставить схему отрабатывать на мощную нагрузку? Заранее благодарю!!! ;*************ТЕСТОВАЯ ПРОГРАММА************* ;============ДИРЕКТИВЫ ТРАНСЛЯТОРУ=========== .device ATtiny13 .include "tn13def.inc" .list ;Обзывательство регистров .def Temp = R16 .cseg .org 0x00 ;=========ТАБЛИЦА ВЕКТОРОВ ПРЕРЫВАНИЙ======== rjmp Begin //Начальный сброс reti //Внешнее прерывание INT0 reti //Изменение состояния любой линии reti //Переполнение T0 reti //Готовность EEPROM reti //Срабатывание компаратора reti //Совпадение в канале A таймера T0 reti //Совпадение в канале B таймера T0 reti //Переполнение сторожевого таймера reti //Завершение преобразования в АЦП ;============МОДУЛЬ ИНИЦИАЛИЗАЦИИ============ Begin: ;-----Инициализация стека ldi Temp, RAMEND out SPL, Temp ;-----Отключение компаратора ldi Temp, 0x80 out ACSR, Temp ;-----Настройка портов ldi Temp, 0b00000111 out DDRB, Temp //PB0 - на вывод ;-----Настройка ШИМ ldi Temp, 0b11000001 out TCCR0A, Temp //Режим - быстрый ШИМ с инверсией ldi Temp, 0b00000010 out TCCR0B, Temp //Делим тактирование таймера на 8 rjmp Start //При старте пропускаем 5-секундную задержку ;===============ТЕСТОВЫЙ ЦИКЛ================ PWM: ldi Temp, 0b00000000 out OCR0A, Temp //ШИМ=0% rcall Delay5sec //Ждем 5 сек ;-----Повышаем скорость Start: ldi Temp, 77 out OCR0A, Temp //ШИМ=30% rcall Delay2sec ldi Temp, 102 out OCR0A, Temp //ШИМ=40% rcall Delay2sec ldi Temp, 128 out OCR0A, Temp //ШИМ=50% rcall Delay2sec ldi Temp, 154 out OCR0A, Temp //ШИМ=60% rcall Delay2sec ldi Temp, 179 out OCR0A, Temp //ШИМ=70% rcall Delay2sec ldi Temp, 205 out OCR0A, Temp //ШИМ=80% rcall Delay2sec ldi Temp, 230 out OCR0A, Temp //ШИМ=90% rcall Delay2sec ldi Temp, 255 out OCR0A, Temp //ШИМ=100% rcall Delay2sec ;-----Понижаем скорость ldi Temp, 230 out OCR0A, Temp //ШИМ=90% rcall Delay2sec ldi Temp, 205 out OCR0A, Temp //ШИМ=80% rcall Delay2sec ldi Temp, 179 out OCR0A, Temp //ШИМ=70% rcall Delay2sec ldi Temp, 154 out OCR0A, Temp //ШИМ=60% rcall Delay2sec ldi Temp, 128 out OCR0A, Temp //ШИМ=50% rcall Delay2sec ldi Temp, 102 out OCR0A, Temp //ШИМ=40% rcall Delay2sec ldi Temp, 77 out OCR0A, Temp //ШИМ=30% rcall Delay2sec rjmp PWM //Возвращаемся, и начинаем с 5 сек "молчания" ;===========ПОДПРОГРАММЫ ЗАДЕРЖКИ============ ;-----Задержка в 2 секунды Delay2sec: ldi R17, 253 ldi R18, 75 ldi R19, 29 L1: subi R17, 1 sbci R18, 0 sbci R19, 0 brcc L1 nop ret ;-----Задержка в 5 секунд Delay5sec: ldi R17, 253 ldi R18, 61 ldi R19, 73 L2: subi R17, 1 sbci R18, 0 sbci R19, 0 brcc L2 nop ret
-
Доброго дня всем гуру программирования в BASCOM AVR ! В программировании я также как и в космической отрасли ... Увлекаюсь рыбалкой, использую электронные сигнализаторы поклевки (китайские). У меня их с приказавшим долго жить микроконтроллером уже больше десятка. Появилась идея , в корпуса изготовить свою плату на МК attiny13, соответственно без полного набора функций как у оригинала. Здесь на сайте нашел статью "Музыкальный звонок на МК Attiny13". В готовую схему в колхозил светодиод. По факту кнопку планирую заменить на геркон. Не могу разобраться как сделать чтоб при нажатии кнопки, контролер выполнил программу один раз и остановил цикл даже с нажатой кнопкой(это тот случай когда магнит на ролике остановился возле геркон и замкнул контакт ) ? Отпустил,нажал еще раз все повторилось. Есть вторая проблема, во время цикла контролер не реагирует на кнопку .Как сделать чтоб при повторном нажатии происходил сброс программы (уже действующего цикла) и запускалась новая программа (цикл)? $regfile = "attiny13.dat" $crystal = 1200000 $hwstack = 16 $swstack = 16 $framesize = 16 $noramclear Config PINB.1 = Input Config PORTB.2 = Output Toch Alias PINB.1 Led Alias PORTB.2 Config INT0 = Low Level On INT0 Button: Enable Interrupts Enable INT0 Declare Sub Melodi1() Dim Melcount As Byte Do Powerdown Loop End Sub Melodi1() Do Sound , PORTB.0 , 30 , 100 Waitms 10 Sound , PORTB.0 , 30 , 150 Waitms 10 Melcount = Melcount + 1 Loop Until Melcount = 5 Melcount = 0 if Toch = 1 Then Led = 0 if Toch = 0 Then Led = 1 Led = 1 Waitms 200 Led = 0 Waitms 200 Led = 1 Waitms 200 Led = 0 Waitms 200 Led = 1 Waitms 200 Led = 0 Waitms 200 Led = 1 Waitms 200 Led = 0 Waitms 200 Led = 1 Waitms 200 Led = 0 Waitms 200 End Sub Button: Call Melodi1() GIFR = 64 Return Спасибо всем кто откликнется! Буду рад любой помощи. ver 1.1.0.bas
-
Простой селектор входов для УМ (2..4 входа)
aitras опубликовал запись в блоге в Заметки радиолюбителя
Простой селектор входов для усилителя мощности. Выполнен на микроконтроллере ATtiny13A. Подключение выполняется по следующей схеме: Естественно, что вместо светодиодов должны стоять реле. В 1 кбайте памяти микроконтроллера спрятан следующий функционал: - использование от 2-х до 4-х входов, количество которых определяется автоматически (неиспользуемые 4-й или 3-й и 4-й входы следует подтянуть к питанию через резистор 5-10 кОм); - переключение одной кнопкой "по кругу"; - запоминание последнего выбранного входа; - задержка при включении (2 c); - защита от дребезга кнопки; - mute между переключениями каналов (0,5 c). При программировании следует установить фьюзы следующим образом: HIGH - 0xFF, LOW - 0x79. То есть нужно отключить делитель частоты на 8, и выбрать источник тактирования - внутренний RC-генератор на 4,8 МГц с задержкой старта в 64 мс. Платы под схему нет, предполагаю, что каждый нарисует себе сам под необходимые детали. На видео показан макет, демонстрирующий работу селектора: Скачать файл прошивки -
Здравствуйте. Решил попробовать в деле ATTiny13. Решил начать с самого простого - поморгать светодиодами. ОК, запустил platformIO, скопировал пример - вроде все работает. Светодиод моргает. Но. как только решил поменять значение _delay_ms, то понял, что что-то пошло не так. Дело в том, что светодиод моргает вообще игнорируя этот самый delay. Не важно сколько бы ms задержки я там не выставил - получается эпилептическое моргание. Прошиваю через Arduino Uno. AtTiny опробовал пару разных - на второй микрухе тот же самый эффект. Причем если не прописывать включать светодиод - он не горит. Примеры пробовал разные, эффект везде один. Уже и не знаю на что думать Пример моего кода: #define F_CPU 120000UL // Указываем тактовую частоту МК #define LED PB2 // Используем светодиод, подключенный к PB2 (7 пин) #include <avr/io.h> // Подключаем определения ввода/вывода #include <util/delay.h> // Подключаем библиотеку функций задержки int main(void) { // Светодиод DDRB |= (1<<LED); // конфигурируем пин как выход while (1) { PORTB |= (1<<LED); _delay_us(1000L); PORTB &= ~(1<<LED); _delay_ms(10000L); } } На всякий случай конфигурация platformIo: [env:attiny13a] platform = atmelavr board = attiny13 ; change microcontroller board_build.mcu = attiny13 ; change MCU frequency board_build.f_cpu = 1200000L upload_protocol = stk500v1 ; each flag in a new line upload_flags = -P$UPLOAD_PORT -b$UPLOAD_SPEED ; edit these lines upload_port = COM3 upload_speed = 19200
-
Изучаю прерывания на attiny13. Пока остановился на прерываниях по переполнению. Сделал тестовый код в Atmel Studio и сразу через программатор заливаю на тиньку со светодиодом. Проблема в том что гореть он должен 10 секунд и выключаться, а горит примерно 20-23 секунды. Прошу помощи в правильном расчёте. Код ниже (пока учусь сильно не ругайтесь) : #define F_CPU 1000000 #define LED PB2 #include <avr/io.h> //#include <util/delay.h> #include <avr/interrupt.h> unsigned char work_time =384; // 1000000/1024/256=3.8 (0.026 сек) 10/0.026=384 volatile unsigned char temp =0; ISR (TIM0_OVF_vect) { TCNT0=0x00; temp ++; if (temp>=work_time) { PORTB &=~(1<<LED); //Инвертируем состояние TCCR0B=0x00 // остановка таймера cli (); //общее запрещение прерываний } } int main (void) { init(); while (1) { } } void init () { DDRB |= (1<<LED); // выход PORTB =(1<<LED); //включен TCCR0B =0x05; // установка делителя на 1024 TIMSK0 |= _BV(TOIE0); sei(); // Либо SREG |= (1<<SREG_I); //Разрешаем прерывания глобально TCNT0 = 0X00; //Обнулить счётный регистр }
- 1 ответ
-
- Attiny13
- Прерывания
-
(и ещё 1 )
C тегом:
-
Всем привет. Есть задачка на 2 пина контроллера посадить 4 кнопки и распознавать их состояние, а так же состояние "ни одна не нажата". Есть схемы подключения их в матрицу R2R и последующее аналоговое измерение, но я почему-то думаю, что можно считывать и чисто цифровым методом. Пораскинув мозгами, получилась эта схема.В ней опрос будет такой- сначала читаем состояние выводов, потом переключаем пины попеременно в 1 и смотрим состояние другого вывода. Может есть схемы проще, но вот что-то не нашел.
-
Доброго времени суток! Друг попросил сделать эму некий аппарат: пищалку, которая издает звук с определенным периодом. Пример работы: сигнал 2 секунды, тишина 1 минуту, потом опять по новой. Так вот, программу написал, и вроде как даже работает, но как-то не стабильно.. Иногда пропустит один цикл, иногда (почти всегда) после нескольких минут вообще перестает работать. Использую сон ради экономии батареи, т.к. устройство автономно. Генерирую ШИМ на ноге PB0. переключатели подсоединены к PB3 PB4. Прошу помогите найти ошибку, а то я уже не знаю что тут не так..
-
Доброго времени суток! Имеется такая схема для управления яркостью светодиода и стабилизации по току , схемы не мои а содраны из разных источников, я их соединил. Прошу мне помочь из проверкой схемы может где что то подправить , доработать в общем помогите мне в этом деле! Питать буду от 18650 через плату заряда с защитой от розряда .
-
Здравствуйте. Подскажите пожалуйста, возможно ли на attiny13 реализовать такую штуку. Мне в процессе работы программы нужно поменять режим работы таймера/счетчика с fast PWM на обычный счёт, отсчитать длительный промежуток времени и опять вернутся в режим ШИМ. Т.е. я подаю на ногу сигнал ШИМ и когда он в максимальном значении, я его отключаю, и тупо подаю на ногу высокий лог. уровень. В это время Т/С по идее свободен, и мне надо посчитать время работы выхода на максимальном лог. уровне, при достижении какого-то значения времени нужно перевести т/с обратно в ШИМ. Возможно ли это? И как приблизительно это реализовать
- 1 ответ
-
- микроконтроллер
- AVR
-
(и ещё 2 )
C тегом:
-
Есть проект СГУ на AVR. Музой проекта послужил не безызвестный проект СГУ на PIC. Хотел сделать его ещё в 2012 но знаний не хватало. А вот сейчас знаний хватает, вот и сбылась моя мечта. Пока что прикреплю видео, когда напишу статью о нем, ждите публикацию на ГЛ странице сайта. В качестве динамика использовал колонку от Соньки музыкалки.
-
Прошу помощи сообщества в решении такой проблемы. Имеем Attiny13 задачей которой стоит формирование ШИМ сигнала, скважность задаём состояние входов PB4 PB3 PB2. Загвоздка в том, что не могу заставить тиньку сменить скважность, несмотря на то, что на прерывание по состоянию входов реагирует, значения в OCR0A заносит. Маленькое замечание в железе не делал, только в Proteus. Код: #define F_CPU 9600000 #include <avr/io.h> #include <avr/eeprom.h> #include <avr/interrupt.h> volatile bool SetMode_flag = false; volatile char Select_Mode = 0; //------------------------------------------------- void PWM_init() { //Порты PB0 и PB1 устанавливаем на выход, остальные на вход DDRB = 0b00000011; //Входные порты PINB0 и PINB1 в HIGH, остальные в Pull-UP PORTB = 0b00111111; //Разрешаем прерывания PCINT1 - по изменению вывода GIMSK |= (1<<PCIE); //Накладываем маску на выводы PCMSK |= (1<<PINB4) |(1<<PINB3) |(1<<PINB2); //Запрещаем все прерывания пo совпадению и переполнению TIMSK0 = 0x00; //Устанавливаем режим работы таймера в режиме ШИМ с фазовой коррекцией TCCR0A |= (1<<COM0A1) |(1<<COM0B1) |(0<<WGM01) |(1<<WGM00); TCCR0B |= (1<WGM02); //Предделитель частоты уставливаем clk\1024 или приблизительно 18Гц // Fclk_I/O //Fpcpwm = -------- (N предделитель 1, 8, 64, 256, 1024) // N *510 TCCR0B |= (1<<CS02) |(0<<CS01) |(1<<CS00); //Обнуляем счётный регистр TCNT0 = 0x00; } //------------------------------------------------- ISR (PCINT0_vect) { SetMode_flag = true; // Устанавливаем флаг события Select_Mode = (PINB >> 2); //Сохраняем значение со сдвигом младших разрядов } //------------------------------------------------- int main(void) { PWM_init(); sei(); while (1) { if (SetMode_flag) { switch ( Select_Mode ) { case 0: OCR0A = 0; break; // ШИМ выключен case 1: OCR0A = 40; break; //Скважность 15% case 2: OCR0A = 80; break; //Скважность 30% case 3: OCR0A = 120; break; //Скважность 45% case 4: OCR0A = 150; break; //Скважность 60% case 5: OCR0A = 180; break; //Скважность 75% case 6: OCR0A = 210; break; //Скважность 90% case 7: OCR0A = 255; break; //Включен постоянно default: break; } SetMode_flag = false; //Сбрасывем флаг } } } main.cpp PWM neew.pdsprj
-
Приветствую всех, задумка простая вроде бы,но воплощение оказалось чуть сложней... Хочу собрать простую сигнализацию,которая будет охранять входную дверь квартиры. Должна работать по следующему принципу: Собираюсь на работу,обулся,оделся -перед тем как открыть дверь нажал на потайную кнопку- вышел, закрыл (в углу снаружи на двери светодиод: пока сигналка ослепла от нажатия кнопки-он просто моргает зеленым. Когда сигналка в боевом режиме-led моргает красным.) Вернулся с работы-открыл дверь (led что в углу загорелся красным постоянно или перешел на более частые вспышки) , сигнализация с момента разрыва геркона начала отчет до включения сирены. И тут нажимаешь ту же потайную кнопку либо тумблер отключения сигнализации полностью. А если ворвется посторонний и не отключит сигнализацию она по истечении времени отчета включит сирену, которая будет орать 2-3 минуты, а после перейдет снова с боевой режим ( и светодиод уже будет моргать красным и зеленым-говоря хозяину ,что во время охраны было проникновение в квартиру). Мозгом сигнализации будет attiny13. В интернете нашел подходящую статью ,но вот исходников к прошивке нет, а с автором я не могу связаться. Прошу помощи в разработке кода, вот статья http://cxem.net/guard/3-61.php
- 4 ответа
-
- attiny13
- сигнализация
-
(и ещё 1 )
C тегом:
-
Всем привет! хочу собрать себе светодиодный стробоскоп (типа клубного) на attiny13 у меня есть IRL3705N как мне его подключить к МК напрямую или через резистор и какое сопротивление? какой максимальный ток нагрузки он выдержит? напряжение будет 12 вольт я знаю что можно почитать даташит но я не понимаю что значат все эти цифры
-
В общем решил сделать амперметр на мк attiny13 с выводом на семисегментник использывал регистры сдвига, все спаял, но возникла проблема при напряжении 3,5 В контроллер работает но в восемь раз медленней (запустил на нём тестовую программу каждую секунду число выводимое на индикатор увеличиваеться на один но вместо одной секунды 8), а если подать 5 вольт тогда на индикаторе всякий мусор, может встречали похожую проблему?
-
Здравствуйте. Программирую avr через COM-порт, но это неудобно, комп в котором есть порт не всегда доступен, плюс подключаться нужно напрямую к материнке (не выведен), и выходит так, что саму программу я пишу в codevision-avr на ноуте, потом переношу на флешке ее на другой тот комп, там через uniprof заливаю скетч. Совсем неудобно. Заказал в китае usbisp, но он где-то затерялся в пути (уже несколько раз вылетел с аэропорта, и всё). Решил пока что использовать Arduino Uno в качестве программатора, и тут столкнулся с некоторыми проблемами: 1. Я хотел бы программировать НЕ через Arduino IDE, но все примеры которые я нашел - именно через нее (мне кажется это будет пустая трата памяти). Ардуинку использовать только в качестве программатора. 2. Ладно, пока я не нашел решения первого пункта, решил прошить через Arduino IDE в Ubuntu, но никак не хочет появляться плата attiny13 в выборе плат. Устанавливал архив (там где hardware и т.д.) - не помогло, возможно не туда поставил, подскажите пожалуйста для Ubuntu путь, где он должен быть, в примерах винда. 3. Забил. Взял другой ноут с виндой, установил IDE, устанавливаю драйвер для ch340 - винда блочит, говорит "без подписи - значит не рабочий" (а везде в описаниях так радужно, никаких проблем). Ладно, отключил в винде проверку цифровой подписи - при установке драйвера вылетела ошибка по таймауту... Жесть! Подскажите хоть по одному пункту, пожалуйста.
-
Написал код для работы AtTiny13, DHT11, TM1637. Всё удачно уместилось в памяти микрухи. На первый взгляд всё работает. Данные передаются без сбоев, контрольная сумма в норме. Вот видео, если кому интересно. Но обнаружилась проблема. Периодически, примерно каждые 5-6 запросов данных от датчика DHT11, показания влажности и температуры скачут. На 5 - 10 единиц могут прыгнуть. При этом рассогласования с контрольной суммой нет. Поначалу списал всё на "несерьезность" датчика, но... Залил тот же самый код в Ардуино Уно - нет никаких скачков. Цепляю датчик и дисплей обратно к тиньке - пляшут данные. Подключаю питание непосредственно от этой ардуинки - не помогает, скачут показания. Припаиваю непосредственно к датчику конденсатор по питанию 100 нФ, как рекомендуется в даташите, - бесполезно. Меняю на тиньке частоты: 1.2, 4.8, 9,6 Мгц - никакого результата. Кстати, по ходу дела, заметил еще одну странность: на 9.6 Мгц тинька в этой связке запускается только от 3 вольт, от пяти - не хочет. На дисплей при этом нужно подавать 5 вольт. В общем, у меня закончились предположения, пришел за помощью к вам. В чем подвох может быть, ведь на ардуинке с тем же питанием показания стабильны? Код:
-
Доброго времени суток. Мне понадобилось запустить трёх фазный мотор от жёсткого диска. Посмотрите на схему. Как думаете, так работать будет? Да и ещё, на графике я нарисовал последовательность импульсов 1)A ON 2)DELAY 3)A OFF 4)DELAY 5)B ON 6)DELAY 7)B OFF 8)DELAY 9)C ON 10)DELAY 11)C OFF 12)DELAY То есть между выключением одного канала и включением другого есть пауза, это правильно?
-
Здравствуйте. Требуется таймер на отключение нагрузки на 10 минут с питанием от сети. Целой схемы найти не удалось, поэтому требуется согласовать две. Так вот вопрос, если совместить вот этот таймер (он уже проверен). Вот сайт Очень простой регулируемый таймер отключения нагрузки: http://radio.aliot.com.ua/?p=854 вот с этой схемой. Будет ли работать? Хватит ли напряжения для открытия симистора? собираюсь использовать BT138-600, или нужен драйвер типа биполярного транзистора? Не слишком ли большая емкость у гасящего конденсатора , не пробьёт ли стабилитрон?(собираюсь использовать на 5.1V)
-
Всем доброго времени суток. Собрал я вот такую электронную свечку. Схему стабилизации тока увидел в какой-то ветке у Falconist. Для проверки тока, на R1 R2 R3 подал постоянные 5В. Всё работает но есть одно НО, Q1-3 очень сильно греются (90-100°С). Пробовал ставить IRL3705N, K3919 (выпаял из материнки), греется как зараза. Я понимаю что они греются из за того что на них падает около 5,9В. Может быть можно вместо них поставить что то другое? Например Биполярный транзистор? Но нужен в SMD корпусе. Подскажите, пожалуйста что делать.
- 27 ответов