Поиск сообщества
Показаны результаты для тегов 'AVR'.
Найдено: 205 результатов
-
Дано: отладочная плата STM32F303VC, индукционный датчик. Доброго времени суток, суть моего проекта в детектировании вибраций(ударов) при помощи аналогового датчика. Код отслеживания удара написан, но я не пойму то ли я ошибся с алгоритмом его работы то ли не правильно сконфигурировал отладочную плату. Информация по датчику. Индукционный датчик удара, шок сенсор, Arduino может использоваться в проектах на микроконтроллерах (в т.ч. Arduino), в которых нужно следить за уровнем вибрации или подобных механических возмущений. Принцип действия датчика основан на электромагнитной индукции. Движущийся стальной, ферритовый или магнитный сердечник относительно катушки создает в катушке ЭДС, подходящую по амплитуде ударного воздействия на систему. Чувствительный элемент датчика установлен в прозрачный пластиковый параллелепипед для защиты от действий внешней среды. Для использования датчика нужно подключить его к Arduino контроллеру или другому микропроцессорному управляющему устройству, подать питание, создать программу для работы с датчиком или использовать готовое решение. На корпусе датчика есть два отверстия, с помощью которых можно жестко закрепить датчик на плоской поверхности. В состоянии покоя напряжение на выходе из датчика около 5 В, при возмущении напряжение на датчике падает пропорционально силе возмущения. Индукционный датчик удара, шок сенсор, Arduino имеет один 3-контактный разъем для подключения к контроллеру и питания: контакт обозначенный «–» – общий контакт; средний контакт – напряжение питания; контакт S – аналоговый выходной сигнал датчика. Датчик может питаться как от Arduino контроллера (другого микропроцессорного управляющего устройства), так и от внешнего источника питания. Напряжение питания 3,3 – 5 вольт постоянного тока. Характеристики: принцип действия: индукционный; выходной сигнал: аналоговый; напряжение питания: 3,3 – 5 вольт постоянного тока; размеры: 30 х 18 х 11; вес: 2 г. Shock.7z
- 3 ответа
-
- stm32f303vc
- avr
-
(и ещё 3 )
C тегом:
-
Здравствуйте, у меня проблема. Не программируется ATmega2561-8AU. Программатор USBASP. Микроконтроллер 100% рабочий. Питание и контакты программатора припаяны правильно. Что можете посоветовать?
-
Всем здравствуйте! Есть необходимость метирить переменное напряжение от трех источников 220v. И питание получать от них же. (1.) Набросал схемку, будет ли она мерить и с какой точностью? измерять думаю в диапазоне от 150 до 250в. по идее точность будет 0.1 вольт. (2.) Но какие подводные камни я могу поймать? (3.) Или придется еще и операционный усилитель лепить на каждый вход АЦП?
-
Добрый день. Никто не делал такую плату? Показалась очень удобной, но продается только в Украине. Печаток различных адаптеров нашел море, какие-то сделал, но этот совмещает в себе вообще все, что мне надо и очень эстетичен. Или может кто-то может помочь с ее покупкой и пересылом? Развести я такую сам не смогу, хоть и понятно, что достаточно даташитов...
-
Есть вот такой фрагмент кода отвечающий за ШИМ в программе управления BLDC. { TCCR0A |= (1 << COM0A1)|(0 << COM0A0)| // Сброс вывода OC0A при совпадении (1 << COM0B1)|(0 << COM0B0)| // Сброс вывода OC0B при совпадении (1 << WGM01)|(1 << WGM00); // Режим Fast PWM TCCR0B |= (1 << CS00); // Предделитель CLK/1 TCCR2A |= (1 << COM2B1)|(0 << COM2B0)| // Сброс вывода OC2B при совпадении (1 << WGM01)|(1 << WGM00); // Режим Fast PWM TCCR2B |= (1 << CS00); // // Предделитель CLK/1 PCMSK0 |= (1 << PCINT2)|(1 << PCINT1)|(1 << PCINT0); // Активируем входы внешних прерываний PCICR |= (1 << PCIE0); // Разрешаем прерывание по изменению состояния порта B ADMUX |= (1 << MUX1)|(1 << MUX0); // Вход ADC3 ADCSRA |= (1 << ADEN) | (1 << ADPS1); // Разрешаем АЦП, предделитель на 4 DDRC |= (1 << PC2)|(1 << PC1)|(1 << PC0); // Порт С - выход(светодиоды) PORTC &= ~(1 << PC2)|(1 << PC1)|(1 << PC0); DDRB |= (1 << PB2)|(1 << PB1)|(1 << PB0); // Кратковреммено подаем лог.1 на входы датчиков PORTB |= (1 << PB2)|(1 << PB1)|(1 << PB0); // для первоначального запуска двигателя PORTB &= ~(1 << PB2)|(1 << PB1)|(1 << PB0); DDRB = 0x00; // Порт B - вход sei(); // Глобально разрешаем прерывания DDRD = 0xFF; // Порт D - выход программа работает но двигатель пищит что очень напрягает нервы, я так понимаю что писк происходит из-за низкой частоты ШИМ. Проект собран на AVR Atmega48 с кварцем на 16МГц. Как поднять частоту ШИМ (в программировании я не силен но стараюсь разобраться, данный отрывок программы брался из интернета и как он работает я понимаю хреновато)
-
Прошу Вашей помощи уважаемые форумчане! Автором В. Нефёдовым, г. Брянск была предложена интересная схема "Универсального микроконтроллерного зарядного устройства", http://www.radioradar.net/radiofan/power_supply/microcontroller_universal_charger.html#comment, которая была мной повторена. Схема рабочая, но по причине моей неграмотности в программировании - работает у меня не корректно! А именно не могу правильно записать при программировании через eXtreme Burner в EEPROM приведенные им коды: по адресу 00H - 2СН, по адресу 01H - 03H, по адресу 02H - 0BEH, по адресу 03H -64H. Не понимаю что, как и куда писать. Не судите строго! Прошу либо скиньте фотку как это должно выглядеть в программе, либо файл .eep
-
Всем привет! Я пишу код в Atmel studio для вывода текста на дисплей. В определенном случае мне нужно, чтобы при отображении на дисплее определенного текста, который задается функцией GLCD_String(1,"123") и нажатия клавиши, например PB2=0 Запускалась другая функция. Однако, на while(1) { if ((GLCD_String()=GLCD_String(1,"123"))|PB2=0) { ABC(); } } компилятор ругается "Error too few arguments to function 'GLCD_String'". Однако, сама по себе функция GLCD_String() работает, если брать без if. Как устранить эту ошибку?
-
Здравствуйте! Хочу сделать программную регулировку контрастности для дисплей 1602. МК у меня atmega8. В эмуляторе не видно результата по этому думаю как плату разводить. Я перечитал много тем но толком не нашел ответ. Мне нужно от 5 вольт с помощью ШИМ регулировать напряжение на дисплее от 0 до 5В. Для сглаживая я хотел использовать RC фильтр, но видимо в простом варианте это не подойдет судя по ответам на других форумах. Встречал предложения сделать подряд несколько фильтров, использовать транзистор, добавить ОУ, использовать инвертор напряжения на двух диодах и двух конденсаторах. У меня есть парочка LM358. Решил остановится на этом варианте. Если я выход фильтра подключу на положительный вход ОУ а отрицательный соединю с выходом ОУ - я избавлюсь от неизвестности сопротивления нагрузки. МК работает на частоте 8MHz ШИМ 31250Hz. Нашел формулу расчета цепочки. R = 1/(2 * 3.14 * 31250Hz * 1nF) = 5k. Кто нибудь делал такую регулировку? Этого достаточно? Или можно выкинуть ОУ? Или лучше сделать два фильтра подряд? Тогда как расчитывать номиналы?
-
Добрый день! Необходимо подобрать микроконтроллер, который будет получать команды по serial от esp8266 и димировать RGBW светодиод по следующему алгоритму: https://docs.google.com/document/d/1FkPLiIgxleuDQn8pjihICQGRrMPXbwFzqCt6StQZjhU/edit?usp=sharing а также написать для него прошивку на си. Отвечать можете в телеграм arsenicum32 или сюда. Пишите цену / сроки, находитесь ли в МСК и/или в области.
-
Доброго времени всем! Собрал паяльную станцию теперь из схемы хочу попробовать исключить операционный усилитель, т.к. паяльник с терморезистором сделать по схеме резистивного делителя. Диапазон регулировки напряжений получается мал. Помогите программно рассчитать рабочий диапазон чтобы показания на дисплей выводились от 0 до 420. Все значения на рисунке условны, главное узнать общий принцип расчета. PS: Очень нужно да и для будущих поделок пригодится.
-
Всем привет. Можно ли измерить 230 вольт ардуиной,если напряжение пропустить через диодный мост и делитель напряжения? Вроде понизить нужно в 72 раза,но в инете я такого не встречал. Питание контроллера будет через импульсный БП.
-
Есть проект СГУ на AVR. Музой проекта послужил не безызвестный проект СГУ на PIC. Хотел сделать его ещё в 2012 но знаний не хватало. А вот сейчас знаний хватает, вот и сбылась моя мечта. Пока что прикреплю видео, когда напишу статью о нем, ждите публикацию на ГЛ странице сайта. В качестве динамика использовал колонку от Соньки музыкалки.
-
Доброго дня Пересматривая множество мануалов и примеров по ассемблеру для AVR, возник такой вопросик по работе с памятью данных (SRAM). Множество документов и примеров пересмотрел, нигде не нашел ответа. В начале программы мы можем в сегменте данных зарезервировать память под некие переменные. Для VAR1, например, резервируем один байт .DSEG VAR1: .BYTE 1 после чего с помощью LDS/STS с ним работаем. А теперь самая мякотка. Директивой BYTE мы можем зарезервировать более одного байта для переменной. Если я правильно понимаю, то данный код .DSEG VAR2: .BYTE 8 я создаю некое подобие массива, что-то вроде char VAR2[8], если провести аналогию с Си. Каким образом на ассемблере я могу работать с N-ным байтом зарезервированной области VAR2?
-
Здравствуйте, пытаюсь прошить свой первый микроконтроллер, Atmega8. Нашел программу в Atmel Studio, мигания светодиодом, откомпилировал и получил hex файл. Начал зашивать в МК делал все как в примере Как прошить микроконтроллер. Не пойму момент в этом примере : "после того как мы прошили МК, нам нужно установить FUSE бит CKDIV8". Зачем нужно делить тактовую частоту на 8, так всегда нужно делать? И почему именно на 8 а не на другой делитель?
-
Доброго времени суток. Хотел бы попросить вас помочь мне изучить микроконтроллеры STM32. Я знаком с AVR, ну STM32 кажется мне сложнее, хотелось бы получить от ВАС какую-то литературу, полезные ссылки. Начать своё изучения я хочу с мигания светодиода). Сперва я думал сам сделать себе отладочную плату, ну потом мной было принято решения взять себе не очень дорогой вариант Discovery, так как он имеет встроенный программатор, который можно использовать к разным МК этой компании.
-
Здравствуйте. У меня возникла проблема в прошивке микроконтроллера Atmega8. Задача заключается в том чтобы сравнивалось опорное на напряжение АЦП с подаваемым на вход АЦП напряжением и далее результат выводился на дисплей. У меня возникли сложности с настройкой АЦП, как я думаю оно находится в спящем режим так как когда я загружаю hex файл в Proteus и запускаю пошаговую отладку, то мои условия не выполняются и в переменной в которую я прописываю значение подаваемого напряжения постоянно находится значение опорного напряжения. Код пишу в Atmel Studio 6 на С Симуляцию делаю в Proteus Очень нужна помощь Спасибо! Примерный код в Atmel,не судите строго только начинаю изучать микроконтроллеры #define F_CPU 1000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> static volatile int u = 0; static volatile float v; int main(void) { DDRB=0xFF; PORTB=0x00; DDRC=0x00; PORTC=0xFF; //настройка АЦП// ADCSRA |=(1<<ADEN)//включение ацп |(1<<ADPS1)|(1<<ADPS0)|(1<<ADFR);//ADPS2-ADPS0-тактовая частота АЦП??? //ADCRA=0x83 ADMUX |= (0<<REFS1)|(1<<REFS0)//внешний ИОН |(0<<MUX0)|(0<<MUX1)|(0<<MUX2)|(0<<MUX3); //вход PC0 //ADMUX=0x00 while(1) {ADCSRA |=(1<<ADSC);//начинаем преобразование while ((ADCSRA&(1<<ADIF))==0);//ждём флага окончание преобразование _delay_ms(5); u=ADCW;// считываем ADC v = (float) u*0.0048828; if (v>=2.1){ PORTB=0x01; } else{ PORTB=0xFF; } _delay_ms(5); Также начальный проект в протеус, опять же не судите строго) micro.pdsprj
-
Есть задумка собрать вольтметр постоянного напряжения (до 1000В) на ГРИ, использовав за основу популярную схему часов. Либо на базе микросхемы ICL7107, если это возможно. Знающих прошу помочь.
- 14 ответов
-
- AVR
- микроконтроллер
-
(и ещё 1 )
C тегом:
-
Меня тут порадовали задачкой для АВР (я когда то очень много таких порешал, на практике - напомнили молодость ): http://cxem.net/mc/mc446.php сформулирована так: Нужно два быстрых элемента "И" и одновибратор. Можно использовать серию 155 у которой время срабатывания даже меньше получается, но не подходит по энергопотреблению. Хотелось бы сделать это на Attiny13. Остановимся пока на Я, соответственно, предложил реализацию: Можожно сделать так: loop1: in reg1, pina; 1-tick in reg2, pinb; 1-tick and reg1, reg2; 1-tick LSR reg1; 1-tick out portB, reg1; 1-tick rjmp loop1; 2-tick Это код на ассемблере , который реализует два «элемента И» на АВР со временем срабатывания около 1мкс, в зависимости от тактовой частоты МК. На частоте 16 MHz это 7/16 мк-секунды(7 ticks, на самом деле +4 = 11тиков максимум время срабатывания, позже поясню), входы элемента-И должны быть на одинаковых пинах условных портов A and B, а выходы следующие по старшинству биты-пины. Вообще говоря перед выводом в порт, скорее всего, нужно будет еще маску добавить это еще +1 тик! Цикл можно переделать на использование только одного порта. Мой вариант в закодированном архиве приатачен, ключ выложу через неделю! Мне интересно можно ли сделать быстрее чем у меня получилось! Сможет кто нибудь предложить вариант решения? В общем, похоже что, на ассемблере можно написать «два элемента И» со временем срабатывания около 1.5мкс даже на 10МГц при произвольном расположении ног на одном порту. bestAvrCodeForAnd.7z
-
Прошу помочь изменить прошивку из проекта http://cxem.net/mc/mc187.php Часы будут содержать 4 индикатора 1) управление функционалом без изменений (время, дата, температура). 2) убраны индикаторы отвечающие за секунды, т.е. нужно вырезать функции отображения секунд и года. 3) отображение температуры без десятых градуса (индикатор №3 и №4). Схема:
- 7 ответов
-
- Часы
- Микроконтроллер
-
(и ещё 2 )
C тегом:
-
Для коптера делаем контроллер для автополета на ардуине. Но не можем совладать с калибровкой внешнего компаса. Требуется написать прошивку для контроллера, который бы считал калибровку и выдавал ардуине готовый сигнал. Компас классический HMC5983, подключается по I2C. Но при его использовании ближе к югу или северу начинает показания резко менять, получается так называемый "эллипс" а не круг. Контроллер найду, прошью, но с программированием на AVR вообще никак ((. В итоге должна получится железка, на входе компас, на выходе готовый сигнал после поправок. И кнопка начала калибровки. Т.е. по ее нажатию, надо крутануть компас вокруг своей оси. Проект не коммерческий, для себя, если кто хочет внести свой небольшой вклад, буду очень рад! Спасибо! С меня пивасик! )
- 19 ответов
-
Влияние измеряемых сигналов друг на друга
serj280294 опубликовал тема в Периферия и внешние устройства
Всем привет. Собираю вольтамперметр на микроконтроллере. Снимаю напряжение с шунта и усиливаю его с помощью ОУ. Развел плату, собрал, но при подключении к плате проводов, измеряющих напряжение самого источника питания и напряжение снятое с шунта, на последнем сильно проседает напряжение. Я понимаю, что ОУ при таком подключении не должен влиять на измеряемое напряжение. Я предполагаю, что проблема может скрываться в разнице потенциалов земель измеряемых напряжений и источника питания вольтамперметра. Вольтамперметр имеет отдельное питание. Если отключить контакты, измеряющие напряжение источника питания, амперметр работает как и задумано и напряжение на шунте падает в соответствии с измеренным при проектировании вольтамперметра. Подскажите пожалуйста, как правильно развести земли или изменить схему подключения. -
Здравствуйте. Посоветуйте пожалуйста схемы программаторов для AVR и STM- универсальный не надеюсь. Имеется в наличии usbasp китайский-работает как гнилой еврей раз в неделю. Сделал PICKIT2 за 4 года ни одного отказа. usbasp может сегодня тупо отказываться работать на 3 компьютерах, на следующий день как часики прошивает 1-2 камня и опять отдыхает. Надоело.
- 1 ответ
-
- программатор
- avr
-
(и ещё 1 )
C тегом:
-
Приветствую всех. Как на 2313 рассчитать значение для записи в эти регистры, если я хочу получить задержку в 6 секунд? OCR1AH OCR1AL TCCR1B
-
Обязанности: · Разработка радиоэлектронных и GSM-устройств: разработка схем, программирование, разводка печатных плат, разработка документации. · Программирование микроконтроллеров STM, AVR, ARM, PIC на языке С/С++ в личку или en@argument74.com
-
Всем доброго времени суток. Помогите пожалуйста начинающему.Нужна программа для Attiny13a на языке С. Вот такой алгоритм: Нажимают кнопку и начинают мигать светодиоды типа "Бегущие огни", при отпускании остается светится один из четырех, причем в случайном порядке как в рулетке.Нажимают и снова начинают бежать- отпускают остается гореть один.