Управление минусом через шим

Turbovod
Offline
Зарегистрирован: 11.08.2015

Привет.

Только начал изучение, имею Arduino Uno.

С шимои по плюсу разобрался на измнении яркости диода, а вот наоборот, чтоб порт давал шим по минусу (минус-ничего-минус-ничего) чет непонимаю, через какую функцию?

Ткните носом плиз.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

А что значит "давал минус". Для чего вам это?
Вы уверены, что правильно представляете, что вам нужно?

Turbovod
Offline
Зарегистрирован: 11.08.2015

Да, основной смысл в перспективе подключить электоро магнитный клапан, и чтоб он управлялся по минусу, и шимом задавать открытие от 0-100%.

bwn
Offline
Зарегистрирован: 25.08.2014

Turbovod пишет:

С шимои по плюсу разобрался на измнении яркости диода, а вот наоборот, чтоб порт давал шим по минусу (минус-ничего-минус-ничего) чет непонимаю, через какую функцию?

Ткните носом плиз.

При однополярном питании, минус и есть то самое "ничего".

Turbovod
Offline
Зарегистрирован: 11.08.2015

bwn пишет:

Turbovod пишет:

С шимои по плюсу разобрался на измнении яркости диода, а вот наоборот, чтоб порт давал шим по минусу (минус-ничего-минус-ничего) чет непонимаю, через какую функцию?

Ткните носом плиз.

При однополярном питании, минус и есть то самое "ничего".

Думал об этом, но нужно через минус.

alex_r61
Offline
Зарегистрирован: 20.06.2012

Тогда на выходе нужно ставить двухтактный каскад и питать двуполярным напряжением.

bwn
Offline
Зарегистрирован: 25.08.2014

Тогда объясните, что вы понимаете под словом "минус"? Относительно чего?

bwn
Offline
Зарегистрирован: 25.08.2014

alex_r61 пишет:

Тогда на выходе нужно ставить двухтактный каскад и питать двуполярным напряжением.

А я думаю, что ТС в терминах запутался.

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

При последовательном соединении всего чего угодно вы можете разрывать цепь в любом месте.
Только ключ должен успешно с этим справляться.
В вашем случае это или NPN транзистор или N-Mosfet

http://www.talkingelectronics.com/projects/MOSFET/MOSFET.html

Turbovod
Offline
Зарегистрирован: 11.08.2015

bwn пишет:

Тогда объясните, что вы понимаете под словом "минус"? Относительно чего?

Grd

 

Turbovod
Offline
Зарегистрирован: 11.08.2015

trembo пишет:

При последовательном соединении всего чего угодно вы можете разрывать цепь в любом месте.
Только ключ должен успешно с этим справляться.
В вашем случае это или NPN транзистор или N-Mosfet

http://www.talkingelectronics.com/projects/MOSFET/MOSFET.html

Походу так и нужно.

bwn
Offline
Зарегистрирован: 25.08.2014

Turbovod пишет:

С шимои по плюсу разобрался на измнении яркости диода, а вот наоборот, чтоб порт давал шим по минусу (минус-ничего-минус-ничего) чет непонимаю, через какую функцию?

Ткните носом плиз.

А теперь подсоедините ваш диод, анодом к +5, а катодом к пину (резистор не забудьте) и посмотрите, что получится.

P.S. для клапана ключ по любому потребуется.

Turbovod
Offline
Зарегистрирован: 11.08.2015

bwn пишет:

Turbovod пишет:

С шимои по плюсу разобрался на измнении яркости диода, а вот наоборот, чтоб порт давал шим по минусу (минус-ничего-минус-ничего) чет непонимаю, через какую функцию?

Ткните носом плиз.

А теперь подсоедините ваш диод, анодом к +5, а катодом к пину (резистор не забудьте) и посмотрите, что получится.

P.S. для клапана ключ по любому потребуется.

 Дак смотря, что в проге будет, с подтяжкой или без, пока только вкурсе, как менять шим от 0 до +5

P.S.Ага, про ключ уже понял.

bwn
Offline
Зарегистрирован: 25.08.2014

А подтяжка здесь при чем? Визуально для вас будет от +5 до 0. ШИМ кстати делает 0 и +5, промежуточных значений на пине нету.

bwn
Offline
Зарегистрирован: 25.08.2014
brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Чета грустно стало... Любая портовая нога атмела может иметь три состояния +5 вольт (логическая единица), 0 вольт (логический ноль) и хайимпеданс (то самое ничего, достигается переключением ноги на вход без подтяжки). Думаю как сделать то 0, то ничего,  дотумкаете сами. Или нет расскажу: переключайте порт на вход - получаете ничего, переключаете на выход и в логический 0 - получаете 0 вольт. Можете еще и диод повесить , для пущей защиты. Только вот шим аппаратный не пройдет в таких плясках, но програмнмо дергать ногу в шим прерываниях никто не мешает.

Кстати если ногу включать через диод, то и у обычного шима можно отсечь +5, правда питание клапана должно быть не выше 5 вольт. 

Все бы хорошо, но скорее всего этот совет не прокатит из-за ограничений по току, поскольку нога процессора штука слаботочная, а клапан, как правило, жрет как утюг. Так что ключ придется юзать именно из-за этого. А еще есть Дарлингтон :) В гугле - "uln200X" , целое семейство ключей.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

 

Обратите внимание

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

Если вы попали сюда из результатов поиска Яндекса:

  • Вернитесь назад и обновите страницу — нажмите клавишу F5.
  • Или введите новый поисковый запрос
trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011
Клапауций 999
Offline
Зарегистрирован: 06.06.2015

trembo пишет:

Всё равно перейти: http://homes-smart.ru/upload/arduino/arduinoBasicConnections.pdf

теперь Дохтора злобный пдф съест.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Ты правда считаешь что Доктор может бояться вируса?

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

JollyBiber пишет:

Ты правда считаешь что Доктор может бояться вируса?

я считаю, что доктор боится предупреждений о вероятном вирусном заражении.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Вывод - считать ты не умеешь.

bwn
Offline
Зарегистрирован: 25.08.2014

JollyBiber пишет:

 

Обратите внимание

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

Если вы попали сюда из результатов поиска Яндекса:

  • Вернитесь назад и обновите страницу — нажмите клавишу F5.
  • Или введите новый поисковый запрос

Не знаю как у вас в Европах, а у меня пдф-ка открывается)))

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

bwn пишет:

Не знаю как у вас в Европах, а у меня пдф-ка открывается)))

яндекс ложил на безопасность россиян

bwn
Offline
Зарегистрирован: 25.08.2014

Клапауций 999 пишет:

bwn пишет:

Не знаю как у вас в Европах, а у меня пдф-ка открывается)))

яндекс ложил на безопасность россиян

А нас, хрен проймешь))))

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

Turbovod, решениет очень простое - поставьте на Ваш плюс операционник по схеме инвертирующего услилителя он Вам плюся в минус и перевернёт (инвертирует). Про двуполярное питание Вам тут уже писали, надеюсь, Вы в курсе что это такое.

Turbovod
Offline
Зарегистрирован: 11.08.2015

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

Turbovod, решениет очень простое - поставьте на Ваш плюс операционник по схеме инвертирующего услилителя он Вам плюся в минус и перевернёт (инвертирует). Про двуполярное питание Вам тут уже писали, надеюсь, Вы в курсе что это такое.

Спасибо, основную мысль понял, пока попробую как есть, если возникнет необходимость, тогда уже будем колдовать)

Пока доработал управление шимом через потециометр.

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

Turbovod пишет:

Спасибо, основную мысль понял, пока попробую как есть, если возникнет необходимость, тогда уже будем колдовать)

Если что, то схема и подробная инструкция как расчитать номиналы резисторов есть, например, вот здесь (риунок 5 и текст вокруг него) - http://cxem.net/beginner/beginner96.php  Кстати, там же (рисунок 6) приведена схема с регулируемым усилением и опять же, подробный разбор чего и как.

bwn
Offline
Зарегистрирован: 25.08.2014

ЕвгенийП, чет ваша ссылка говорит "404 not found"

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Там в конце пробел убрать надо

Turbovod
Offline
Зарегистрирован: 11.08.2015

Хотя все таки шим нужно сделать по duty циклу:

100% (grd) 

90% (90% grd, 10% нет сигнала)

50% (50% grd, 50% нет сигнала)

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

bwn пишет:

ЕвгенийП, чет ваша ссылка говорит "404 not found"

Там пробел затесался. Вот так лучше.

maksim
Offline
Зарегистрирован: 12.02.2012

Не нужно никаких инверторов, уже все есть, что бы инвертировать ШИМ, достаточно написать одну строку в сетапе, для нужного вывода. Пример для 10 вывода:

void setup()  { 
  //TCCR0A |= (1<<COM0A0)|(1<<COM0A1); // 6 вывод
  //TCCR0A |= (1<<COM0B0)|(1<<COM0B1); // 5 вывод
  //TCCR1A |= (1<<COM1A0)|(1<<COM1A1); // 9 вывод
  TCCR1A |= (1<<COM1B0)|(1<<COM1B1); // 10 вывод
  //TCCR2A |= (1<<COM2A0)|(1<<COM2A1); // 11 вывод
  //TCCR2A |= (1<<COM2B0)|(1<<COM2B1); // 3 вывод
}

Но так как вы пользуетесь analogWrite'ом, то вам прийдется позаботиться о "крайних положениях". А можно просто вычесть значение из 255 и все: analogWrite(255-pwm);.

Но думаю все это бессмысленно, вот интересно, что это за такой электромагнитный клапан, который будет питаться он ноги МК или ОУ ???

Да и ваше "ничего" все равно долно быть в пределах земли и питания, это вам не транзистор с открытым коллектором.

Turbovod
Offline
Зарегистрирован: 11.08.2015

maksim пишет:

Не нужно никаких инверторов, уже все есть, что бы инвертировать ШИМ, достаточно написать одну строку в сетапе, для нужного вывода. Пример для 10 вывода:

void setup()  { 
  //TCCR0A |= (1<<COM0A0)|(1<<COM0A1); // 6 вывод
  //TCCR0A |= (1<<COM0B0)|(1<<COM0B1); // 5 вывод
  //TCCR1A |= (1<<COM1A0)|(1<<COM1A1); // 9 вывод
  TCCR1A |= (1<<COM1B0)|(1<<COM1B1); // 10 вывод
  //TCCR2A |= (1<<COM2A0)|(1<<COM2A1); // 11 вывод
  //TCCR2A |= (1<<COM2B0)|(1<<COM2B1); // 3 вывод
}

Но так как вы пользуетесь analogWrite'ом, то вам прийдется позаботиться о "крайних положениях". А можно просто вычесть значение из 255 и все: analogWrite(255-pwm);.

Но думаю все это бессмысленно, вот интересно, что это за такой электромагнитный клапан, который будет питаться он ноги МК или ОУ ???

Да и ваше "ничего" все равно долно быть в пределах земли и питания, это вам не транзистор с открытым коллектором.

Возьму на заметку.

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

Код вот такой:


int potPin = A0;    // порт куда подключен сигнал потенциометра
int ledPin = 11;    // порт куда подключен светодиод
int potValue = 0;  // ячейка для записи значения потенциометра
int potValueDiag = 2; // ячейка для вывода значения на ком для диагностики

void setup() {

   pinMode(ledPin, OUTPUT); // устанавливаем порт для диода на выход
   Serial.begin(9600);     //  инициализируем и устанавливаем скорость ком порта 
  
}


void loop() {
  
    potValue = analogRead(A0);    // читаем значение с потенциометра 
    potValue = potValue/4 ;       // записываем значение потенциометра в ячейку и делим на 4 т.к. вход 1023, а выход 255
    analogWrite(ledPin, potValue);  // выдаем на порт светодиода значение из ячейки 
    potValueDiag = potValue  ;
    Serial.println(potValueDiag);      // выдаем на ком порт значения на входном порту, для визуального состояния значений потенциометра 
}

Но хочу, чтоб на ком выводился вольтаж, через  potValueDiag = potValue, но когда пишу так  potValueDiag = potValue * ( 5 / 255), на ком приходят нули, почему, я хз, подскажите?

maksim
Offline
Зарегистрирован: 12.02.2012

Потому что 5 / 255 = 0. писать надо так 5.0 / 255.0

Turbovod
Offline
Зарегистрирован: 11.08.2015

maksim пишет:

Потому что 5 / 255 = 0. писать надо так 5.0 / 255.0

Все ровно 0 пишет(((

step962
Offline
Зарегистрирован: 23.05.2011

Turbovod пишет:

Все ровно 0 пишет(((

м.б. еще и тип переменной potValueDiag поменять?

На float, например?

Turbovod
Offline
Зарегистрирован: 11.08.2015

step962 пишет:

Turbovod пишет:

Все ровно 0 пишет(((

м.б. еще и тип переменной potValueDiag поменять?

На float, например?

Точно вместо int, float и стало показывать.

Спасибо.

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

maksim пишет:

вот интересно, что это за такой электромагнитный клапан, который будет питаться он ноги МК или ОУ ???

А в чём проблема? Например, такойК примеру, вот такой ОУ может и штуки три за раз потянуть :)

 

Turbovod
Offline
Зарегистрирован: 11.08.2015

Подключил э.м.клапан через транзистор вместо светодиода, не работает как задумывалось, он начинает при повороте потенциометра и включается при повороте больше 60%, а не щелкает, как должен при шим((((

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

Какая у вас частота ШИМа ?
Клапан успеет  щёлкать с этой частотой?

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

 

Turbovod
Offline
Зарегистрирован: 11.08.2015

trembo пишет:

Какая у вас частота ШИМа ?
Клапан успеет  щёлкать с этой частотой?

Есть такое понятие как гистерезис реле- оно удерживается меньшим током чем трогается с места.

 

У ардуино 500гц, а вот нужно походу меньше, теперь вопрос, как уменьшить?

Turbovod
Offline
Зарегистрирован: 11.08.2015

Turbovod пишет:

trembo пишет:

Какая у вас частота ШИМа ?
Клапан успеет  щёлкать с этой частотой?

Есть такое понятие как гистерезис реле- оно удерживается меньшим током чем трогается с места.

 

У ардуино 500гц, а вот нужно походу меньше, теперь вопрос, как уменьшить?

Точно, дело было в частоте, спасибо за наводку.

После прочтения этой темы http://arduino.ru/forum/obshchii/shim-ili-kak-vzorvat-mosfet, изменил частоту и услышал заветные щелчки)))

smirnovboris
Offline
Зарегистрирован: 26.01.2017

Вы победили то очём я сейчас думаю. Помогите пожалуйста, пришлите код. 

Заранее благодарен, Борис.