24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

Регулятор оборотов двигателя постоянного тока.

Здесь только проекты на ATtiny
Post Reply
kredovit
Пробегал мимо
Posts: 18
Joined: 24 Jun 2011 21:54
Location: Алматы, Казахстан

Re: Регулятор оборотов двигателя постоянного тока.

Post by kredovit »

проще :-)
Casper_pro
Частенько бываю
Posts: 36
Joined: 01 Dec 2010 23:19

Re: Регулятор оборотов двигателя постоянного тока.

Post by Casper_pro »

Вот если так все выражения сокращать то в микрик мона и по 2 функции запихивать))))
tiptop_a
Пробегал мимо
Posts: 2
Joined: 18 Aug 2011 16:59
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by tiptop_a »

Здравствуйте,
тема заинтересовала так, что захотелось самому попробовать .
Я начинающий, поэтому, всё что смог это промоделировать схему в протэусе :oops:
Заметил, одну особенность, когда кнопка "старт" не замкнута, проц всё равно посылает короткие импульсы большой скважности на транзистор.
Подозреваю, что исправить это не сложно, где-то прописать sleep? но сам пока разобраться :dontknow: я не могу...
спасиб
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

tiptop_a, в реале этого нету.
tiptop_a
Пробегал мимо
Posts: 2
Joined: 18 Aug 2011 16:59
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by tiptop_a »

Может, это потому, что выход нагружаю на светодиод, а в реале ёмкость полевика...
Не подскажешь алгоритм, как организовать плавный старт? :sorry:
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

tiptop_a, включаем на минимум, а потом по таймеру добавляем до установленного значения.
valmaks
Пробегал мимо
Posts: 2
Joined: 13 Jun 2011 14:00
Location: Запорожье

Re: Регулятор оборотов двигателя постоянного тока.

Post by valmaks »

Всем привет.Собрал я этот регулятор,работает нормально. hardlock болшое спасибо.
Такой вопрос.Максимальное напряжение на моем моторчике 6v.
Что изменить,добавить,что-бы регулировка была до 6v.
Спасибо.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

valmaks wrote:Что изменить,добавить,что-бы регулировка была до 6v.
ничего - просто питайте мотор не от 12-ти, а от 6-ти вольт, но тогда надо отдельно организовать питание тиньки, т.к. 7805 не сможет работать при входном напряжении 6 вольт.
yura-gn
Пробегал мимо
Posts: 12
Joined: 08 Feb 2012 12:54
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by yura-gn »

hardlock, очень нужна твоя помощь, что нужно дописать в прошивке чтобы был плавный пуск? Помоги, очень надо!
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

yura-gn,
стартовать с минимального значения и через промежутки времени добавлять значение ШИМа. Постараюсь найти исходник.
yura-gn
Пробегал мимо
Posts: 12
Joined: 08 Feb 2012 12:54
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by yura-gn »

hardlock wrote:yura-gn,
стартовать с минимального значения и через промежутки времени добавлять значение ШИМа. Постараюсь найти исходник.
Я еще в етом совсем ничего не понимаю. Очень, Очень прошу, постарайтесь найти исходник!
yura-gn
Пробегал мимо
Posts: 12
Joined: 08 Feb 2012 12:54
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by yura-gn »

hardlock wrote:yura-gn,
стартовать с минимального значения и через промежутки времени добавлять значение ШИМа. Постараюсь найти исходник.
hardlock, как там дела с поиском исходника, нашли?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

yura-gn wrote: нашли?
ещё не добрался до того компьютера.
yura-gn
Пробегал мимо
Posts: 12
Joined: 08 Feb 2012 12:54
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by yura-gn »

hardlock, подскажи что делать, когда я меняю код:

Code: Select all

вместо 
pwm = 110 + read_adc(2) / 7;

эти строчки
pwm = read_adc(2);
 pwm = pwm >> 2 ;
регулировка получается от 0, но регулируется только до половины положения потенциометра, а дальше скорость не меняется.
Как это исправить?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

yura-gn, так у вас получается если АДЦ больше "00111111" (63), то уже ничего не поменяется, т.к. "pwm = pwm >> 2" убивает два старших разряда.

ЗЫ: Не, не правильно... Что-то с утра голова не варит... но думаю проблема где-то тут. И зачем от нуля? Всё равно двигатель от нуля работать не будет.
yura-gn
Пробегал мимо
Posts: 12
Joined: 08 Feb 2012 12:54
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by yura-gn »

hardlock, я методом тыка зделал вот так:

Code: Select all

 pwm = 0 + read_adc(2) / 6;
стало работать нормально, но не знаю почему двигатель работает только процентов на 95.
Можете обьяснить как спецыалист что я этими изминениями сделал, и можно сделать чтоб работало на 100%?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

yura-gn wrote:Я методом тыка зделал вот так:
надо не тыкать, а разбираться. АЦП 10-ти битный (1023 максимум), ШИМ - 8-ми битный (255 максимум).

Отсюда получаем:

Code: Select all

pwm = read_adc(2) / 4;
Хотя эта конструкция тоже должна была работать:

Code: Select all

pwm = read_adc(2);
pwm = pwm >> 2 ;
может опробовать прямо так:

Code: Select all

pwm = read_adc(2) >> 2 ;
Что-то я сам запутался.
Для проверки, что двигатель работает на 100% поставьте pwm = 255 и прошейте МК. Двигатель должен работать в полную мощь. Лучше всего проверить осциллографом, что творится на выходе МК.
yura-gn
Пробегал мимо
Posts: 12
Joined: 08 Feb 2012 12:54
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by yura-gn »

hardlock, только что побробовал и выяснилось следующие:
что так

Code: Select all

pwm = read_adc(2);
pwm = pwm >> 2 ;
что так

Code: Select all

pwm = read_adc(2) >> 2 ;
работает отлично, но когда повышаю частоту

Code: Select all

TCCR0A=0x83;
TCCR0B=0x01;
плавная регулировка исчезает.
Что теперь посоветуете?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

yura-gn wrote:TCCR0A=0x83;
TCCR0B=0x01;
соответствует работе таймера на частоте самого камня, т.е. 9,6Мгц. Зачем такая частота? - это раз. МК может не успевать всё обработать, да и не успевает, т.к. каждый такт возникает новое прерывание - это два.
yura-gn
Пробегал мимо
Posts: 12
Joined: 08 Feb 2012 12:54
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by yura-gn »

hardlock wrote:
fantom wrote:Блин мне надо чтобы маторчик крутился на малых оборотах без писка как это сделать.
Блин, а мне надо машину отремонтировать!
Разберитесь немного в коде - там ничего нет сложного... Подсказка - копать в эту сторону:

Code: Select all

TCCR0A=0x83;
TCCR0B=0x02;
Сделать так:

Code: Select all

TCCR0A=0x83;
TCCR0B=0x01;
Только это уже не подсказка, а решение... Будет вместо 18,75 кГц - 37,5кГц
hardlock, скажите пожалуйста, можно выбрать что-нибудь среднее между 18,75 кГц и 37,5кГц, так как 18,75 кГц мало, а 37,5кГц много?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

yura-gn wrote:скажите пожалуйста, можно выбрать что-нибудь среднее между 18,75 кГц и 37,5кГц, так как 18,75 кГц мало, а 37,5кГц много?
надо поднимать частоту генератора, не меняя настроек (что невозможно), или опускать, меняя (TCCR0B), что тоже невозможно, т.к. ноги для кварца заняты.
yura-gn
Пробегал мимо
Posts: 12
Joined: 08 Feb 2012 12:54
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by yura-gn »

hardlock wrote:
yura-gn wrote:скажите пожалуйста, можно выбрать что-нибудь среднее между 18,75 кГц и 37,5кГц, так как 18,75 кГц мало, а 37,5кГц много?
надо поднимать частоту генератора, не меняя настроек (что невозможно), или опускать, меняя (TCCR0B), что тоже невозможно, т.к. ноги для кварца заняты.
Понятно. Ну а что там с поиском исходника плавного пуска, еще не искали?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

yura-gn wrote:а что там с поиском исходника плавного пуска, еще не искали?
может быть завтра на работе посмотрю.
yura-gn
Пробегал мимо
Posts: 12
Joined: 08 Feb 2012 12:54
Location: Украина

Re: Регулятор оборотов двигателя постоянного тока.

Post by yura-gn »

hardlock, ну как там дела с поиском?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Регулятор оборотов двигателя постоянного тока.

Post by hardlock »

yura-gn wrote:hardlock, ну как там дела с поиском?
Исхоник не нашёл. Поэтому попробуем так. Заменить процедуру таймера:

Code: Select all

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
  // Place your code here
  if (++c > 500)
  {
    c = 0;
    pwm = 110 + read_adc(2) / 7; 
    if (pwm > 255) pwm = 255;
  
    if (!PINB.3)
    {
      switch (Working) 
      {
        case 0:  //старт на минимальных оборотах
          OCR0A = 110;
          Working = 1;
        break;    
        case 1: //плавно наращиваем до установленного значения
          if (OCR0A < (pwm - 20))
          {
            OCR0A += 20;
          }
          else
          {
            OCR0A = pwm;
            Working = 2;        
          }
        break;
        case 2:  //работаем на установленном значении
          OCR0A = pwm;
        break;
      };
    }
    else
    {
      OCR0A = 0;      
      Working = 0;
    } 
  }  
}
В самом верху описываем переменную:

Code: Select all

unsigned char Working;
и перед #asm("sei") вставляем:

Code: Select all

Working = 0;
Post Reply