Как сделать регулятор напряжения с Arduino Uno?

Lachin
Offline
Зарегистрирован: 02.10.2016
Ребята всем привет,я тут новенький сайте прошу сильно не пинать,не так давно стал изучать тему Arduino.
 
Вопрос заключается в следующем,есть так назовем (условно программатор) и к нему не посредственно будет подключатся сама ардуина,то есть питание которое идет самого программатора не будет использоваться а это питание должно идти с ардуино на сам микроконтроллер,нужно сделать так что бы моя ардуинка могла от 0в до 5в с интервалом 1 секунда повышать напряжении,то есть например (1.1в 1.2в 1.3в 1.4в 1.5в 1.6в 1.7в 1.8в) и так даллия до 5в,потом обратно должно возвратится назад и повторно делать эту процедуру в бесконечном цикли,то есть что бы было плавное поднятия напряжения,возможно ли такое сделать? есть разные ардуинки  (Arduino Uno Arduino Mega2560  Arduino Pro Mini) можно ли получить такое из них? с чего начать писать саму программу,покажите пожалуйста примеры по мое теме,буду очень благодарен вам.
 
Ребята строго не судить,если что не так написал.Спасибо.
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Lachin пишет:

я тут новенький сайте прошу сильно не пинать

Просьба отклонена. У нас демократия и полное равенство. Пинают всех одинаково.

Lachin пишет:

Вопрос заключается в следующем,есть так назовем (условно программатор) и к нему не посредственно будет подключатся сама ардуина,то есть питание которое идет самого программатора не будет использоваться а это питание должно идти с ардуино на сам микроконтроллер,

Вы сами-то поняли, что сказали?

Lachin пишет:

нужно сделать так что бы моя ардуинка могла от 0в до 5в с интервалом 1 секунда повышать напряжении,то есть например (1.1в 1.2в 1.3в 1.4в 1.5в 1.6в 1.7в 1.8в) и так даллия до 5в,потом обратно должно возвратится назад и повторно делать эту процедуру в бесконечном цикли,то есть что бы было плавное поднятия напряжения

Нужно, так делайте.

Lachin пишет:

с чего начать писать саму программу,
 

Начать нужно с того, что сесть. почесать репу и внятно сформулировать задачу. Пока чтоу Вас полный сумбур.

Затем взять начальный скетч

void setup(void) {}
void loop(void) {}

и добавить к нему всё необходимое

Lachin пишет:

покажите пожалуйста примеры по мое теме

Вот здесь есть полное описание и конкретная схема, как из ШИМ сделать постоянный ток.

Вот здесь написано что такое ШИМ.

А вот здесь описано как пользоваться ШИМ и, таким образом, управлять напряжением того постоянного тока, о котором говорилось выше.

 

 

Lachin
Offline
Зарегистрирован: 02.10.2016

ЕвгенийП пишет:

Lachin пишет:

я тут новенький сайте прошу сильно не пинать

Просьба отклонена. У нас демократия и полное равенство. Пинают всех одинаково.

Lachin пишет:

Вопрос заключается в следующем,есть так назовем (условно программатор) и к нему не посредственно будет подключатся сама ардуина,то есть питание которое идет самого программатора не будет использоваться а это питание должно идти с ардуино на сам микроконтроллер,

Вы сами-то поняли, что сказали?

Lachin пишет:

нужно сделать так что бы моя ардуинка могла от 0в до 5в с интервалом 1 секунда повышать напряжении,то есть например (1.1в 1.2в 1.3в 1.4в 1.5в 1.6в 1.7в 1.8в) и так даллия до 5в,потом обратно должно возвратится назад и повторно делать эту процедуру в бесконечном цикли,то есть что бы было плавное поднятия напряжения

Нужно, так делайте.

Lachin пишет:

с чего начать писать саму программу,
 

Начать нужно с того, что сесть. почесать репу и внятно сформулировать задачу. Пока чтоу Вас полный сумбур.

Затем взять начальный скетч

void setup(void) {}
void loop(void) {}

и добавить к нему всё необходимое

Lachin пишет:

покажите пожалуйста примеры по мое теме

Вот здесь есть полное описание и конкретная схема, как из ШИМ сделать постоянный ток.

Вот здесь написано что такое ШИМ.

А вот здесь описано как пользоваться ШИМ и, таким образом, управлять напряжением того постоянного тока, о котором говорилось выше.

 

 

Вот спасибо добрый человек,почитаем темы,а потом будем дальше писать.

nik182
Offline
Зарегистрирован: 04.05.2015

Самый главный вопрос - сколько тока будет потреблять нагрузка. От этого сильно зависят возможные варианты реализации.

Lachin
Offline
Зарегистрирован: 02.10.2016

А какое максимально допустимое потребление может быть?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Lachin пишет:

А какое максимально допустимое потребление может быть?

У чего? Вы написали какая Ардуина у Вас? И как Вам  отвечать?

Если UNO/Nano, то предел - 40mA на ногу, но не более 200mA на "всё про всё".

Lachin
Offline
Зарегистрирован: 02.10.2016

ЕвгенийП пишет:

Lachin пишет:

А какое максимально допустимое потребление может быть?

У чего? Вы написали какая Ардуина у Вас? И как Вам  отвечать?

Если UNO/Nano, то предел - 40mA на ногу, но не более 200mA на "всё про всё".

Есть Mega

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Зачем вообще тут ардуина?  Можно на lm358 сделать генератор колебаний треугольной формы, забейте в гугл он подскажет схему.

Lachin
Offline
Зарегистрирован: 02.10.2016

Мне нужно что бы именно программно было управления.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Нечётко задан вопрос,  что такое с интервалом 1 секунду и в бесконечном цикле?

Поэтому решений задачи может быть несколько.
Начиная с генератора пилы на 555 таймере.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Lachin пишет:

Есть Mega

Вот я не понимаю, Вы специально издеваетесь или уж совсем ничего не знаете? Меги они тоже разные бывают - 2560 и 1280 - кстати, на Вашей должно быть написано. ну, а уж если написано ... значит специально издеваетесь, т.к. не знать не можете.

Для мег (обеих) ответ на Ваш вопрос такой же, как для UNO.

А вообще, если хотите, чтобы Вам помогали, отвечайте на вопросы полно и ясно. Не создавайте ненужных проблем тем, кто хочет помочь, а то ведь люди могут и не захотеть эти проблемы решать.

Lachin
Offline
Зарегистрирован: 02.10.2016
Есть Мега 2560 есть UNO есть Nano,не знаю что из них лучше подоидет,нет не каких издевательств не над кем.
 
Объясню суть дела как и что нужно,есть микроконтроллер MC68HC908JL3 MOTOROLA,нужно что бы Мега2560 либо UNO либо Nano ,могла от 0в до 5в повышать напряжении,то есть что бы не брать питания от программатора +5в,а что бы от самой Arduino шло на мой микроконтроллер,и это питание должно с интервалом 1 секунда повышаться,то есть например стартует 1в через секунду 1.1в и так до 5в.
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так вроде, всё, что для этого нужно, я Вам описал ещё в посте №1. Вы. что, до сих пор не сделали?

Lachin
Offline
Зарегистрирован: 02.10.2016

ЕвгенийП я вам при много благодарен,то есть то что вы мне показали это то что мне надо?на данный момент изучаю и собираю информацию,после приступлю к работе,вам спасибо за поддержку.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Абсолютно то.

На ногу выдаёте ШИМ, а цепочкой из первой ссылки превращаете его в постоянный ток. напряжение зависит от скважности ШИМа, какую скважность укажете, такое напряжение и будет.

Lachin
Offline
Зарегистрирован: 02.10.2016

ЕвгенийП на ногу моего МК выдавать ШИМ?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, а куда его ещё выдавать?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Lachin пишет:

ЕвгенийП на ногу моего МК выдавать ШИМ?

ну это смотря на какую..... такое дело, панимАшь...

ЕвгенийП пишет:

Ну, а куда его ещё выдавать?

а ведь и правда, а куда ж его еще?

saftik
Offline
Зарегистрирован: 08.04.2015

Как вариант взять стандартный скетч "Fade"
И переделать его под себя.

 This example code is in the public domain.
 */

int led = 9;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
//(тут поставить нужное число(шаг на сколько хотите подымать 255\5в = 51 примерно 1 вольт

int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin 9 to be an output: pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin 9: analogWrite(led, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness <= 0 || brightness >= 255) { fadeAmount = -fadeAmount; } // wait for 30 milliseconds to see the dimming effect delay(30); // здесьсь поставить время нужного вам интервала одна секунда delay (1000) }

первое что пришло в голову 
 

Lachin
Offline
Зарегистрирован: 02.10.2016

saftik пишет:

Как вариант взять стандартный скетч Fade
 

 This example code is in the public domain.
 */

int led = 9;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // set the brightness of pin 9:
  analogWrite(led, brightness);

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(30);
}

И переделать его под себя.
 

 

saftik спасибо вам,по пробую

saftik
Offline
Зарегистрирован: 08.04.2015

Как вариант взять стандартный скетч Fade
 

 This example code is in the public domain.
 */

int led = 9;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // set the brightness of pin 9:
  analogWrite(led, brightness);

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(30);
}

И переделать его под себя.
в fadeAmount поставить 255/5в=51
и в delay (1000) 
это первое что пришло в голову 

nik182
Offline
Зарегистрирован: 04.05.2015

Я имел в виду какое входное сопротивление у того устройства, на которое надо подавать напряжение. Меня напрягает слово питание. ШИМ питание без усилителя обеспечить не может. Можно попробовать сделать ЦАП на резисторах. 8 выводов дадут разрешение 20 мВ.
http://easyelectronics.ru/parallelnyj-cifro-analogovyj-preobrazovatel-po...

Lachin
Offline
Зарегистрирован: 02.10.2016

Ребята спасибо вам,буду пробовать.

Lachin
Offline
Зарегистрирован: 02.10.2016

Ребята привет,со схемой и кодом разобрался,вот возник еще один вопрос,как мне сделать привязку RESET с моего программатора к UNO,то есть когда мой программатор делает  RESET в этот момент UNO должна понижать напряжения,то есть отработал RESET питание понизилось,и так от 0в до 5в и 5в до 0в.То есть после каждого ресета подается напряжения на МК,как это реализовать, Спасибо.

И еще один вопрос,как все это сделать так что бы отображалось на дисплеи 16х2 .

alexval2007
Offline
Зарегистрирован: 10.11.2012

Итить вы загадочный ну и кто видел схему вашего програматора или хотябы его точное название сначала выложите схему своего творения потом ставте чотко задачу ну а потом и подумать можно вместе
Вот кстати схема регулятора напряжения управляемого шимом на ток до 1.5 а http://cxem.net/pitanie/5-267.php

Lachin
Offline
Зарегистрирован: 02.10.2016
Привет! то есть эту схему можно применить к ардуино?  http://cxem.net/pitanie/5-267.php
Вот схема самого программатора то что у меня есть,если пройти по этой ссылки там есть схема программатора MON08.
alexval2007
Offline
Зарегистрирован: 10.11.2012

Посмотрел схему програматора по идее вместо max232 можно использовать конвертор самой ардуино usb/uart на какой ножке програмируемого микроконтролера нужно менять напряжение.

Lachin
Offline
Зарегистрирован: 02.10.2016

На ножке Vdd  это +5вольт на МК на этой ножке нужно менять напряжения.

alexval2007 можно вашу почту?

Alex_Ferrum
Offline
Зарегистрирован: 04.05.2015

А вам для чего так менять напряжение, больше похоже не на генератор пилы, а на попытку подобрать напряжение питания при котором можно будет считать защищенную прошивку.

Если так, то может есть смысл сразу написать какая у вас задача, а не ходить кругами. Конечно если вам нужно именно для этого, возможно будут троллить или отправлять в раздел поиска исполнителя, но так вы быстрее получите ответы по вашей задачи.

Как вариант можно сделать на ЦАП, например, MCP4822, с буфером из операционного усилителя, например, MCP6022 и транзистора (желательно P-канальный mosfet с нормированным сопротивлением сток-исток для напряжения не более 5 вольт на затворе).

Lachin
Offline
Зарегистрирован: 02.10.2016
Привет,да можно сказать вы правы.
 
До этого обходился разными самодельными схемами но если честно чуть напрягает постоянно самому ловить это напряжения,вот и решил сделать это программно что бы самому не ловить,есть программатор который работает с моими МК так называемый MON08,вот к нему не посредственно мне и нужно пристроить саму ардуино что бы в момент чтения МК что бы это напряжение постепенно понижалось и повышалось то есть как я писал выше,вот и пытаюсь найти правильную схему,и как правильно написать код для этого,и хотелось бы что бы эти напряжения отображались на экранчике,если есть какие то ссылки на нужные схемки то только буду рад ,ну и какой не будь пример на исполняемый код для ардуино,если у вас есть какие та наработки или предложения судоводителем выслушаю буду рад.
 
Во тут я нашел статью но не знаю то-ли это или нет. Статья называется 

Цифровой регулятор напряжения на Arduino с компаратором

 
 
alexval2007
Offline
Зарегистрирован: 10.11.2012

Моя почта это мой ник собака рамблер ру
Схема из статьи предложенная вами даже лучше что предложил я она точнее и в ней шире диапазон напряжения на выходе от 0 до 12 в

Alex_Ferrum
Offline
Зарегистрирован: 04.05.2015

Рекомендую поглядеть в сторону импульсных понижающих стабилизаторов серии IRU3XXX, например, IRU3055. Конечно для вашей задачи они слишком сильноточные, но это не помеха, самое главное их достоинство - возможность устанавливать выходное напряжение в диапазоне от 1.075 до 1.850 вольт путем подачи параллельного 5-ти битного кода на соответствующие входы стабилизатора, а также подходящий диапазон напряжений (минимальное для МЕГ как правило 1.8 вольта, имеется ввиду для вашей цели).

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Lachin пишет:

Во тут я нашел статью но не знаю то-ли это или нет. Статья называется 
Эту статью нужно переименовать в "Чокнутый проффесор-2, или делаем DC-DC Step Down из говна и палок"
Если серьёзно, то вы до сих пор не ответили на самый главный вопрос который вам задали в #3.  Невозможно что-то советовать не зная тока нагрузки!
Lachin
Offline
Зарегистрирован: 02.10.2016

Вы имеите виду потребления самого МК? если так то потребления не больше 50mA на сколько я помню так было.

Lachin
Offline
Зарегистрирован: 02.10.2016

Alex_Ferrum пишет:

Рекомендую поглядеть в сторону импульсных понижающих стабилизаторов серии IRU3XXX, например, IRU3055. Конечно для вашей задачи они слишком сильноточные, но это не помеха, самое главное их достоинство - возможность устанавливать выходное напряжение в диапазоне от 1.075 до 1.850 вольт путем подачи параллельного 5-ти битного кода на соответствующие входы стабилизатора, а также подходящий диапазон напряжений (минимальное для МЕГ как правило 1.8 вольта, имеется ввиду для вашей цели).

Можно как то с вами связаться?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Lachin пишет:

Вы имеите виду потребления самого МК? если так то потребления не больше 50mA на сколько я помню так было.

Берите стандартную схему, и не парьте тут людям мозг. Если более 30ma жрёт то лучше взять ОУ повышенной мощности а-ля AD8531

Lachin
Offline
Зарегистрирован: 02.10.2016
// Henry's Bench LM358 Arduino PWM to Voltage Converter

int pwmOut = 3;  // The output to the transistor that drives the motor

void setup()
{
  pinMode(pwmOut, OUTPUT);  
}


void loop()                     
{
  analogWrite(pwmOut, 0); // about zero volts
  delay(3000);
  analogWrite(pwmOut, 51); // about 1 volt
  delay(3000);
  analogWrite(pwmOut, 102); // about 2 volts
  delay(3000);
  analogWrite(pwmOut, 128); // about 2.5 volts
  delay(3000);
  analogWrite(pwmOut, 153); // about 3.0 volts
  delay(3000);
  analogWrite(pwmOut, 204); // about 4.0 volts
  delay(3000);
  analogWrite(pwmOut, 255);  // about 5.0 volts
  delay(3000);
}

Вот код с той ссылки,допустим там начинается с 1в потом видно в коде идет 2в,а как мне сделать то что мне надо 1.1в  1.2в  1.3в, где и что мне нужно изменить

 

 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

dimax пишет:

ОУ повышенной мощности а-ля AD8531

Не, для ТС это мало :) Надо LM675 или L165 :))))

Alex_Ferrum
Offline
Зарегистрирован: 04.05.2015

Lachin пишет:

Можно как то с вами связаться?

chemill@yandex.ru

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Lachin пишет:
Вот код с той ссылки,допустим там начинается с 1в потом видно в коде идет 2в,а как мне сделать то что мне надо 1.1в  1.2в  1.3в, где и что мне нужно изменить

Это у Вас троллинг такой (типа юмор) или Вы и впрямь не знаете?

Вам показали как сделать 1В, 2В, 3В и т.д., но Вы хотите, чтобы за Вас сделали 1,1, 1,2 и т.д.? Ну,допустим, кто-то Вам это напишет, а что будете делать когда потребуется 2,2, 2,3, ... опять сюда придёте?

Читайте вот это столько раз, сколько потребуется, чтобы снять этот вопрос раз и навсегда. Или идите в раздел "Ищу исполнителя" и закажите эту работу тому, кто согласится её сделать.

Lachin
Offline
Зарегистрирован: 02.10.2016

ЕвгенийП пишет:

Lachin пишет:
Вот код с той ссылки,допустим там начинается с 1в потом видно в коде идет 2в,а как мне сделать то что мне надо 1.1в  1.2в  1.3в, где и что мне нужно изменить

Это у Вас троллинг такой (типа юмор) или Вы и впрямь не знаете?

Вам показали как сделать 1В, 2В, 3В и т.д., но Вы хотите, чтобы за Вас сделали 1,1, 1,2 и т.д.? Ну,допустим, кто-то Вам это напишет, а что будете делать когда потребуется 2,2, 2,3, ... опять сюда придёте?

Читайте вот это столько раз, сколько потребуется, чтобы снять этот вопрос раз и навсегда. Или идите в раздел "Ищу исполнителя" и закажите эту работу тому, кто согласится её сделать.

Уважаемы ЕвгенийП,нет у меня манеры такой,если бы я знал не ужели бы я выносил бы тут мозг вам всем,я же писал самом начале что я начинающий в ардуино,потому столько тупых вопросов,я конечно не прошу что бы за меня написали код,а всего лишь по просил подсказать как правильно сделать,а остальное уже сам.
 
Найти исполнителя это конечно можно,но начинать надо когда то самому.
 
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Lachin пишет:
Найти исполнителя это конечно можно,но начинать надо когда то самому.

Вы на верном пути! Вот и начинайте

ЕвгенийП пишет:
Читайте вот это столько раз, сколько потребуется, чтобы снять этот вопрос раз и навсегда.