10 сообщений в этой теме

Kudich    0

Всех приветствую!

Сам я программирую на стандартной среде ардуинки, и в одном проекте потребовалось увеличить частоту ШИМ на портах 5,6,9,10,11,13 Arduino Micro. На этой ардуино стоит Atmega32u4, есть тут знатоки avr? Как повысить частоту на этих пинах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    555
12 часа назад, Kudich сказал:

стоит Atmega32u4
Как повысить частоту на этих пинах?

Хоть бы, ради интереса, открыли "книгу" на процессор и посмотрели, как формируется выходной сигнал ШИМ. Подобные вопросы отпали бы сразу ...
Или лень-Матушка вперёд родилась ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    766
13 часа назад, Kudich сказал:

Как повысить частоту на этих пинах?

Прочесть даташит

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

Alex    555

@BARS_ , а я не тоже самое посоветовал ? :)
Зачем повторяться ? :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Kudich    0
8 часов назад, Alex сказал:

Хоть бы, ради интереса, открыли "книгу" на процессор и посмотрели, как формируется выходной сигнал ШИМ. Подобные вопросы отпали бы сразу ...
Или лень-Матушка вперёд родилась ?

Как формируется ШИМ знаю, поэтому хочу повысить частоту. А вот как это сделать не знаю, с avr только начал знакомиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Kudich    0
8 часов назад, BARS_ сказал:

Прочесть даташит

Походу придется

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    555
5 часов назад, Kudich сказал:

Походу придется

 

14 часа назад, Alex сказал:

Или лень-Матушка вперёд родилась ?

:vava:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
COKPOWEHEU    263
В 20.09.2018 в 02:47, Kudich сказал:
В 19.09.2018 в 18:24, BARS_ сказал:

Прочесть даташит

Походу придется

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snn_krs    45
On 9/19/2018 at 5:18 AM, Kudich said:

Как повысить частоту на этих пинах?

После прочтения даташита посмотрите файл d:\Program\arduino-1.8.3\hardware\arduino\avr\cores\arduino\wiring.c.

В нем есть функция init() в которой и задается частота шим. Но это может отразиться на других функциях типа измерения временных интервалов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Liqify
      Здравствуйте, форумчане!
      В связи с производственной необходимостью пришлось нарисовать схему, которая должна заряжать никелевый аккумулятор и контролировать отдаваемую через мосфет мощность на мотор с помощью ШИМ.
      Прежде никогда схем не проектировал, поэтому прошу прокомментировать и оценить возможность работы и слабые места.
      О схеме: левая часть должна заряжать аккумулятор 24 вольтами и током до 30А, а правая ограничивать мощность разряда регулировкой коэффициента заполнения (50-100%) импульсов частотой 50кГц на 22В и 10А. Левая и правая части не работают одновременно, либо заряд, либо разряд (ручной контроль). 
       

    • Автор: neon2k
      Доброго времени!

      Делаю часы на газоразрядных индикаторах, которые питаются от 180в. Сделал плату, которая получает на вход ШИМ 30кГц и 5в, а выдает 180в.

      На Arduino сгенерировать 30кГц получалось, однако сейчас необходимо это сделать на stm32. Есть знатоки?)

      Спасибо!
    • Автор: Джон_Иксрей
      Разбирался тут у вас на форуме с одной проблемкой. Обнаружил что здесь довольно дружелюбный народ обитает.
      И недолго подумав решил может тут мне помогут прояснить картину. (может быть немного оффтопа(?))
      Далее идут биографические данные:
      В общем: думаю о будущем, выбирая вектор развития. Есть, если можно так сказать, хобби - пайка всякой чуши, другими словами интересно. Ещё увлекаюсь наукой, в частности физикой, астрономией, астрофизикой. Также увлекает музыка, фото, а с недавних пор светомузыка. Последнее место работы - звукорежиссер, уже почти год. Хорошо разбираюсь во всём, о чем написал выше.
      После 9-го класса решил поступить в колледж, поступил на специальность организация гостиничных хозяйств и туристских комплексов. К несчастью умер отец, когда я был на первом курсе. Мать-пенсионерка не могла оплачивать учебу - отсюда такой разнообразный список мест работ о котором ниже. После окончания колледжа тяжело заболела, а затем умерла мама. Прошло уже 3-4 года, метаюсь то туда, то сюда по разным работам. Два года назад остепенился. Жена заканчивает учебу в этом году, но сейчас не об этом.
      Дополнительно: сменил кучу мест работы(указал только те, где работал не менее 3х месяцев) часть из них - разнорабочий, официант, токарь+плотник, строитель, водитель, фотограф, печатник, оператор эвм, сисадмин, диджей, копирайтер, дизайнер, несложный ремонт ПК. (хронология не соблюдена)... всё это за 8,5 лет.
      В идеале хотел бы стать астрофизиком, но в стране "Икс" из снг есть только одно заведение, где этому учат, за очень много денег, которых у меня попросту нет. Да и возраст уже не тот, когда всё налету схватываешь. В итоге выбираю что-то из хобби, или из того что умею. В последнее время очень интересует программирование.
      Теперь из всего предыдущего вытекла цель - заработать денег. Куча денег - не нужна, нужно немного больше чем просто на коммуналку и еду. С женой конкретно решили сменить континент проживания - учим английский. Целевая страна намного более развита, чем та, в которой живем. Блин опять отвлёкся от вопроса, простите.
      Собственно ВОПРОС:
      Стоит ли мне самоучится программированию, либо совершенствовать навыки ремонта техники. Или может ещё есть что-то что я упустил, исходя из того, что я написал выше. 
      Спасибо.
      З.Ы. сижу и жду Ваших мыслей по этому поводу.
    • Автор: AronIIStone
      Добрый день
      Возникла ситуация: имеется ноутбук IBM ThinkPad t20 с запароленым Bios. Пароль никто не помнит, но он зашит в 24rf08. Его можно прочитать програмкой для считывания данной микросхемы, но для этого нужен программатор. Можно ли использовать в качестве такого программатора Ардуино, чтобы он вопринимался этой программой как надо, и если можно, то как нужно подключить их и какой скетч залить в ардуинку? 
      Саму программу выложу чуть позже, если необходимо - с мобильника сижу. 
      Спасибо 
    • Автор: myhhyk
      Всем здравствуйте. Захотелось считать,в целях саморазвития, информацию с чипа DS2430A и заодно освоить способ связи по однопроводной шине. Посмотрел даташит, много гуглил, вроде более менее понял.С чипом можно связаться по интерфейсу 1-wire. И я решил попробовать это провернуть с помощью ардуины. Написал скетч. Пока получается только считать сигнал присутствия ведомого на шине,а считать из памяти ничего не получается,выдаются одни единицы.Пробовал менять РОМ команды,начинать со старшего бита,младшего,всё равно ничего не получается .Нужна хэлпа, подскажите пожалуйста, где мог допустить ошибку в скетче. И еще если можно мб какую нибудь литературу.
      /*Подключить пин Мастера надо через полевой транзистор, чтобы отпускать линию было проще   для прерывания будет использоваться пин №2 на плате(0 по обозначению)   Подключаемся к DS2430A*/ unsigned long save;//переменная для хранения времени byte pinMas = 5;//пин мастера volatile byte pinRead = 6;// пин для чтения линии volatile boolean infa = 1;//пин для хранения состояния линии byte adr[256] = {};//массив для хранения данных int i; /***********************************************************/ void reader() //для записи состояния линии {   infa = digitalRead (pinRead);//  считвываем состояние линии } /***********************************************************/ void pulseReset() {   delayMicroseconds(480);//заряжаем линию, ждём 500 мкс   /*___________________________________________________________________*/   digitalWrite(pinMas, 0); //подаем 0, открываем полевик=опускаем линию на ноль   delayMicroseconds(480);//ждём 480 мкр   digitalWrite (pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию   infa = 1;//чтобы в значение линии не сохранился ноль, когда линию дёргает ведущий   delayMicroseconds (15);//ждём переходный процесс 15 мкр   /*___________________________________________________________________*/   save = micros();   while (micros() - save < 240) {};//Здесь должно сработать прерывание и сохранение значения переменной   Serial.print("Presence = ");//выводим состояние линии, если ведомый опустит линию, то   Serial.println(infa);       //в infa запишется ноль } void comWr0()//передача нуля { digitalWrite(pinMas, 0); //подаем 0, открываем полевик=>опускаем линию на ноль   delayMicroseconds(80);//ждём 80 мкc   digitalWrite(pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию   delayMicroseconds(20);//ждём переходный процесс 15 мкр } void comWr1()//передача единицы {   digitalWrite(pinMas, 0); //подаем 0, открываем полевик=>опускаем линию на ноль на 2 мкс   delayMicroseconds(3);//ждём 3 мкc   digitalWrite(pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию   delayMicroseconds(90);//ждём переходный процесс 90 мкc } int comRead() {   digitalWrite(pinMas, 0); //подаем 0, открываем полевик=>опускаем линию на ноль на 2 мкс   delayMicroseconds(2);//ждём 2 мкc   digitalWrite(pinMas, 1);//подаём 1, закрываем полевик,отпускаем линию   delayMicroseconds(15);   infa = digitalRead(pinRead);//читаем линию   return infa;//возвращаем значение переменной infa   delayMicroseconds(48);//ждём переходный процесс 48 мкc } void setup() {   Serial.begin(9600);   attachInterrupt(0, reader, FALLING);   pinMode(pinMas, OUTPUT);   pinMode (pinRead, INPUT);   pulseReset();   /*******************************/   //comWr1(); comWr1(); comWr0(); comWr0(); comWr1(); comWr1(); comWr0(); comWr0();    comWr0(); comWr0(); comWr1(); comWr1(); comWr0(); comWr0(); comWr1(); comWr1();//SKIP ROM CCh с младшего бита   /*******************************/   comWr0(); comWr0(); comWr0(); comWr0(); comWr1(); comWr1(); comWr1(); comWr1();   //comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); comWr1();   //comWr1(); comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); comWr1(); comWr0(); //поcылаем AAh с младшего бита   /*******************************/   comWr0(); comWr0();  comWr0();  comWr0(); comWr0(); comWr0(); comWr0();  comWr0(); //посылаем адрес   for ( i = 0; i < 256; i++) //записываем значение состояний линии в массив   { comRead();     adr[i] = comRead();     /* Serial.print("Bit");       Serial.print(i);       Serial.print(" = ");       Serial.println(adr[i]);*/   }   for (i = 0; i < 256; i++) {     Serial.print("Bit");     Serial.print(i);     Serial.print(" = ");     Serial.println(adr[i]);   } } void loop() { }
  • Сообщения

    • Сам спросил - сам ответил. Хм, надо же, смог добавить. 
      Сделал достаточно легко:

      1. Скачал модель с расширением .cir от производителя.
      2. Открыл её блокнотом, нашел строчку .SUBCIRCUIT. Закрыл.
      3. Сменил расширение на .lib.
      4. Скинул этот файл в папку %(путь к папке микрокапа)\Micro-Cap 11\LIBRARY
      5. Зашел в MicroCap, выбрал Window -> Component Editor.
      6. В редакторе компонентов (сверху) выбрал "Add Part Wizard". Иконка с волшебной палочкой, если что.
      7. В открывшемся окошке выбрал своей файл, который я скинул.
      8. Везде почти тыкал "далее". 
      9. Когда высветилось окошко со строчкой "Memo" (строка для краткого описания), то скопировал краткое описание с сайта производителя.
      10. Ещё потыкал далее. 
      11. Все.
    • вообщем в результате экспериментов пришёл к интересному заключению - выброс напряжения на выходе ФНЧ происходит из-за электролитических конденсаторов в цепях выпрямителя и стабилизатора (больше емкость - больше амплитуда выброса). В случае применения в качестве стабилизаторов обычных стабилитронов - значение выброса меньше (в 2-3 раза), но оно всё равно присутствует. Если исключить электролитические конденсаторы оставив лишь керамику, то выброс напряжения отсутствует. Природа этого явления для меня осталась непонятна (сперва думал что это из-за явления самоиндукции трансформатора, но отключение не трансформатора от сети, а стабилизатора от вторичной обмотки  - картину с выбросом не изменяет). Аналоговым осциллографом пронаблюдать какой-либо импульс по питанию в момент отключения не удалось. Возможно применение дросселей в плечах питания поможет решить эту проблему (ещё не пробовал).
    • Трудно будет найти 16 разных, реагирующих только на свою кнопку.
    • Он не будет до вилки звониться, он через нормально разомкнутые контакты реле идет. Лампу подключи вместо подставки и аккуратно включи в сеть, если реле щелкнет и лампа загорится - дело в подставке, если реле щелкнет и лампа не загорится - меняй реле.
    • 2 черных провода -- это от терморегулятора вроде. С проводом как раз все хорошо до гнезда он звонится, а до вилки -- нет. Или он может и не должен прозваниваться?   Тогда я окончательно запутался.