<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0">

<channel>

<title>Nonfinishism studious, заметки с тегом: transistor</title>
<link>http://www.medinskiy.net/nfss/tags/transistor/</link>
<description></description>
<generator>E2 (v2842; Aegea)</generator>

<item><title>Вертушка с моторчиком</title><guid isPermaLink="true">http://www.medinskiy.net/nfss/all/vertushka-s-motorchikom/</guid><link>http://www.medinskiy.net/nfss/all/vertushka-s-motorchikom/</link><description>&lt;p&gt;В этом проекте Arduino будет управлять вращающейся с помощью моторчика вертушки.&lt;/p&gt;
&lt;p&gt;Управлять моторами с помощью Arduino намного сложнее чем управлять светодиодами. Во-первых, моторы требуют больше тока чем может дать Arduino. Во-вторых, моторы могут сами генерировать электрический ток за счет являния, называемого индукцией, и этот ток может повредить элементы схемы. Однако, моторы приводят в движение разные вещи, и от этого проекты становяться интереснее. В общем оно того стоит.&lt;/p&gt;
&lt;!--more--&gt;&lt;p&gt;Для того, чтобы что-то двигать, требуется много энергии.  Кроме того, что моторы требуют больше тока, чем дает Arduino (только 40мА на цифровом выходе), некоторым так же нужно более высокое напряжение. В момент начала движения  или при высоких нагрузках, потребление тока также может значительно возрастать.&lt;/p&gt;
&lt;p&gt;С помощью &lt;a href="https://ru.wikipedia.org/wiki/Транзистор" target="_blank"&gt;транзисторов&lt;/a&gt;, подсоединенных к Arduino можно решить эту проблему. Транзисторы позволяют управлять большим током и источниками питания с высоким напряжением с помощью небольшого управляющего тока, который уже может идти от Arduino. Существует можество разновидностей транзисторов, но принцип действия у всех одинаковый. В нашем примере транзистор лучше представить как цифровой выключатель. Есть подать напряжение на один из выходов транзистора (затвор), то он замыкает два других выхода (сток и исток). Таким образом можно включать и выключать высоковольтные и высокоамперные моторы при помощи Arduino.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://ru.wikipedia.org/wiki/Электродвигатель_постоянного_тока" target="_blank"&gt;Электромотор&lt;/a&gt; — это индуктивное устройство. &lt;a href="http://ru.wikipedia.org/wiki/Электромагнитная_индукция" target="_blank"&gt;Индукция&lt;/a&gt; — это являние возникновения изменяющегося магнитного поля вокруг провода, по которому протекает изменяющийся электрический ток. Внутри электромотора есть катушка с плотно намотанным на нее медным проводом. Когда на мотор подается электрический ток, внутри этой катушки возникает магнитное поле. Это магнитное поле заставляет вал двигателя вращаться.&lt;/p&gt;
&lt;p&gt;В обратную сторону индукция тоже работает: мотор может вырабатывать электричество, если вращать его вал. Если подключить к выходам мотора светодиод и начать вращать вал двигателя, то диод будет светиться. Так можно превратить мотор в маленький электрогенератор.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe width="768" height="480" src="http://www.youtube.com/embed/jMdlAHobzLk" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Если прекратить подавать электричество, то он по инерции продолжает какое-то время вращаться. Пока он вращается, он вырабатывает электрический ток, противоположный по направлению тому, который его вращал. Этот ток называют «обратным током», он может вывести из строя транзистор. Чтобы избежать этого, параллельно с мотором надо подключить диод и обратный ток будет проходить через диод.&lt;/p&gt;
&lt;p&gt;С учетом всего вышесказанного схема для управления мотором получается такая:&lt;/p&gt;
&lt;div class="tiles"&gt;
            &lt;a href="pictures/Motorized-Pinwheel_схема.jpg" rel="lightbox"&gt;
                &lt;img src="pictures/Motorized-Pinwheel_схема.jpg" /&gt;
            &lt;/a&gt;
&lt;a href="pictures/empty.png" &gt;
                &lt;img src="pictures/empty.jpg" /&gt;
            &lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Поскольку для мотора требуется много энергии, он питается от дополнительного источника — 9-ти вольтовой батерейки. И так получается, что управление транзистором производится с помощью Arduino, а сам мотор запитан от дополнительного мощного источника электроэнергии. Обязательное правило, которое следует соблюдать если в схеме используется несколько источников энергии — минусы всех источников должны быть соединены вместе.&lt;/p&gt;
&lt;p&gt;Теперь, когда макет готов, осталось написать программу:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; motor=9; &lt;span style="color: #7e7e7e;"&gt;//пин управления мотором&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; switchButn=2; &lt;span style="color: #7e7e7e;"&gt;//кнопка включения мотора&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; switchButnVal=0;&lt;span style="color: #7e7e7e;"&gt;//значение считанное с кнопки включения мотора&lt;/span&gt;

&lt;span style="color: #cc6600;"&gt;void&lt;/span&gt; &lt;span style="color: #cc6600;"&gt;&lt;b&gt;setup&lt;/b&gt;&lt;/span&gt;(){
  &lt;span style="color: #cc6600;"&gt;&lt;b&gt;Serial&lt;/b&gt;&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;begin&lt;/span&gt;(9600);
  &lt;span style="color: #cc6600;"&gt;pinMode&lt;/span&gt; (switchButn,&lt;span style="color: #006699;"&gt;INPUT&lt;/span&gt;);
  &lt;span style="color: #cc6600;"&gt;pinMode&lt;/span&gt;(motor,&lt;span style="color: #006699;"&gt;OUTPUT&lt;/span&gt;);
}

&lt;span style="color: #cc6600;"&gt;void&lt;/span&gt; &lt;span style="color: #cc6600;"&gt;&lt;b&gt;loop&lt;/b&gt;&lt;/span&gt;(){
  switchButnVal=&lt;span style="color: #cc6600;"&gt;digitalRead&lt;/span&gt;(switchButn);&lt;span style="color: #7e7e7e;"&gt;//считываем состояние кнопки&lt;/span&gt;
  &lt;span style="color: #cc6600;"&gt;&lt;b&gt;Serial&lt;/b&gt;&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;println&lt;/span&gt;(switchButnVal);
  &lt;span style="color: #cc6600;"&gt;if&lt;/span&gt;(switchButnVal==&lt;span style="color: #006699;"&gt;HIGH&lt;/span&gt;){
    &lt;span style="color: #cc6600;"&gt;digitalWrite&lt;/span&gt;(motor,&lt;span style="color: #006699;"&gt;HIGH&lt;/span&gt;);&lt;span style="color: #7e7e7e;"&gt;//если кнопка нажата включаем мотор&lt;/span&gt;
  }
  &lt;span style="color: #cc6600;"&gt;else&lt;/span&gt;{
    &lt;span style="color: #cc6600;"&gt;digitalWrite&lt;/span&gt;(motor,&lt;span style="color: #006699;"&gt;LOW&lt;/span&gt;);&lt;span style="color: #7e7e7e;"&gt;//если не нажата — выключаем&lt;/span&gt;
  }
}&lt;/pre&gt;
&lt;p&gt;Работает вот так:&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe width="768" height="480" src="http://www.youtube.com/embed/TU3u4SeteoM" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Чтобы за вращением наблюдать было интереснее, мы сделали деревянный диск, наклеили на него разноцветный рисунок, и подсоединили к мотору.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe width="768" height="480" src="http://www.youtube.com/embed/PZTbOulZQhA" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Если скорость вращения мотора уменьшить, то на диске с рисунком,  который крутиться, можно увидеть интересный оптический эффект. Для управления скоростью вращения в схему добавили потенциометр, и на затвор транзистора подаем напряжение от 0 до 5В, в зависимости от положения потенциометра. Программа чуть-чуть увеличилась.&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; motor=9; &lt;span style="color: #7e7e7e;"&gt;//пин управления мотором&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; switchButn=2; &lt;span style="color: #7e7e7e;"&gt;//кнопка включения мотора&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; switchButnVal=0;&lt;span style="color: #7e7e7e;"&gt;//значение считанное с кнопки включения мотора&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; pot=A0; &lt;span style="color: #7e7e7e;"&gt;// пин с потенциометром&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; potVal=0;&lt;span style="color: #7e7e7e;"&gt;//значение считанное с потенциометра&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; Val=0;&lt;span style="color: #7e7e7e;"&gt;//значение выдаваемое на пин управления мотором&lt;/span&gt;

&lt;span style="color: #cc6600;"&gt;void&lt;/span&gt; &lt;span style="color: #cc6600;"&gt;&lt;b&gt;setup&lt;/b&gt;&lt;/span&gt;(){
  &lt;span style="color: #cc6600;"&gt;&lt;b&gt;Serial&lt;/b&gt;&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;begin&lt;/span&gt;(9600);
  &lt;span style="color: #cc6600;"&gt;pinMode&lt;/span&gt; (switchButn,&lt;span style="color: #006699;"&gt;INPUT&lt;/span&gt;);
  &lt;span style="color: #cc6600;"&gt;pinMode&lt;/span&gt;(motor,&lt;span style="color: #006699;"&gt;OUTPUT&lt;/span&gt;);
}

&lt;span style="color: #cc6600;"&gt;void&lt;/span&gt; &lt;span style="color: #cc6600;"&gt;&lt;b&gt;loop&lt;/b&gt;&lt;/span&gt;(){
  potVal=&lt;span style="color: #cc6600;"&gt;analogRead&lt;/span&gt;(pot);&lt;span style="color: #7e7e7e;"&gt;//читаем значение с потенциометра&lt;/span&gt;
  Val=&lt;span style="color: #cc6600;"&gt;map&lt;/span&gt;(potVal,0,1023,0,254); &lt;span style="color: #7e7e7e;"&gt;// в значение для вывода&lt;/span&gt;
  switchButnVal=&lt;span style="color: #cc6600;"&gt;digitalRead&lt;/span&gt;(switchButn);&lt;span style="color: #7e7e7e;"&gt;//считываем состояние кнопки&lt;/span&gt;
  &lt;span style="color: #cc6600;"&gt;&lt;b&gt;Serial&lt;/b&gt;&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;println&lt;/span&gt;(switchButnVal);
  &lt;span style="color: #cc6600;"&gt;if&lt;/span&gt;(switchButnVal==&lt;span style="color: #006699;"&gt;HIGH&lt;/span&gt;){
    &lt;span style="color: #cc6600;"&gt;analogWrite&lt;/span&gt;(motor,Val);&lt;span style="color: #7e7e7e;"&gt;//если кнопка нажата включаем мотор&lt;/span&gt;
  }
  &lt;span style="color: #cc6600;"&gt;else&lt;/span&gt;{
    &lt;span style="color: #cc6600;"&gt;digitalWrite&lt;/span&gt;(motor,&lt;span style="color: #006699;"&gt;LOW&lt;/span&gt;);&lt;span style="color: #7e7e7e;"&gt;//если не нажата — выключаем&lt;/span&gt;
  }
}&lt;/pre&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe width="768" height="480" src="http://www.youtube.com/embed/SCeCVayitxY" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="tiles"&gt;
     &lt;a href="pictures/Motorized-Pinwheel_схема.jpg" rel="lightbox[01]"&gt;
                &lt;img src="pictures/Motorized-Pinwheel_схема.jpg" /&gt;
        &lt;/a&gt;
  &lt;a href="pictures/IMG_0275.jpg" rel="lightbox[01]"&gt;
                &lt;img src="pictures/IMG_0236.jpg" /&gt;
           &lt;/a&gt;
&lt;/div&gt;
</description><pubDate>Wed, 24 Apr 2013 23:02:00 +0300</pubDate></item>
</channel>

</rss>