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

<channel>

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

<item><title>Лампа хамелеон (color mixing lamp)</title><guid isPermaLink="true">http://medinskiy.net/nfss/all/lampa-hameleon-color-mixing-lamp/</guid><link>http://medinskiy.net/nfss/all/lampa-hameleon-color-mixing-lamp/</link><description>&lt;p&gt;В этом проекте, мы будем использовать трехцветный светодиод и три фоторезистора, чтобы сделать лампу, которая плавно меняет свой цвет, в зависимости от внешних условий освещения.&lt;/p&gt;
&lt;!--more--&gt;&lt;div class="tiles"&gt;
            &lt;a href="pictures/IMG_0165.jpg" title=" Воины на охране макета"  rel="lightbox"&gt;
                &lt;img src="pictures/IMG_0165.jpg" /&gt;
            &lt;/a&gt;
&lt;a href="pictures/empty.jpg" &gt;
                &lt;img src="pictures/empty.jpg" /&gt;
            &lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Arduino не может менять напряжение на выходах, оно может быть либо 0, либо 5 вольт. Однако для плавного изменения яркости светодиода можно использовать технику под названием &lt;strong&gt;&lt;a href="http://ru.wikipedia.org/wiki/Широтно-импульсная_модуляция" target="_blank"&gt;широтно-импульсная модуляция&lt;/a&gt; (ШИМ). &lt;/strong&gt;ШИМ с высокой частотой включает и выключает напряжение на выходе. Это происходит так быстро, что при подключении к такому выходу светодиода человеческих глаз не может это различить. Когда вы бысто меняете на выходе  &lt;strong&gt;HIGH&lt;/strong&gt; и &lt;strong&gt;LOW&lt;/strong&gt;, это как если бы вы меняли напряжение. Часть времени, когда на выходе HIGH, называется рабочим циклом. Чем больше рабочий цикл, тем ярче светится светодиод.&lt;/p&gt;
&lt;p&gt;Для проекта мы использовали фоторезисторы (сенсоры, которые меняют свое сопротивление в зависимости от количества света, которое на них попадает). Если эти фоторезисторы подсоединить к Arduino, то можно измерять изменение сопротивления, измеряя напряжение на входе Arduino, к которому подключен сенсор.&lt;/p&gt;
&lt;p&gt;Вот схема, которую мы будем собирать:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://medinskiy.net/nfss/pictures/схема.jpg" width="640" height="442" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;На каждый из трех фоторезисторов мы наденем цветную пленку (красную, синюю и зеленую). Благодаря этому на каждый из сенсоров будет попадать только свет опраделенной длины волны (цвета) и можно будет определить примерный уровень освещенности.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://medinskiy.net/nfss/pictures/IMG_0161.jpg" width="640" height="480" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Трехцветный светодиод состоит из трех раздельных элементов (красный, зеленый и синий), которые имеют общий катод (минус). Подавая напряжение на контакты светодиода, которые подсоединены к аналоговым (&lt;strong&gt;ШИМ&lt;/strong&gt;) выходам Arduino (обозначены на плате ~), мы будем плавно изменять его цвет. Для включения режима ШИМ на выходах Arduino используется команда &lt;strong&gt;analogWrite()&lt;/strong&gt;.&lt;br /&gt;
Макет готов:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="http://medinskiy.net/nfss/pictures/IMG_0163.jpg" width="640" height="480" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;После долгих трудов мы с Арсений получили вот такую программу:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; redSens=A0;&lt;span style="color: #7e7e7e;"&gt;//красный фоторезистор pin&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; greenSens=A1;&lt;span style="color: #7e7e7e;"&gt;//зелёный фоторезистор pin&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; blueSens=A2;&lt;span style="color: #7e7e7e;"&gt;//синий фоторезистор pin&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; redLed=11;&lt;span style="color: #7e7e7e;"&gt;//красный диод&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; blueLed=10;&lt;span style="color: #7e7e7e;"&gt;//синий диод&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; greenLed=9;&lt;span style="color: #7e7e7e;"&gt;//зелёный диод&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; redVal=0;&lt;span style="color: #7e7e7e;"&gt;//выводим накрасный диод&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; greenVal=0;&lt;span style="color: #7e7e7e;"&gt;//выводим на зелёный диод&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; blueVal=0;&lt;span style="color: #7e7e7e;"&gt;//выводим на синий диод&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; redSensVal=0;&lt;span style="color: #7e7e7e;"&gt;//показания красного фоторизистора&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; blueSensVal=0;&lt;span style="color: #7e7e7e;"&gt;//показания синего фоторизистора&lt;/span&gt;
&lt;span style="color: #cc6600;"&gt;int&lt;/span&gt; greenSensVal=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;pinMode&lt;/span&gt;(redLed,&lt;span style="color: #006699;"&gt;OUTPUT&lt;/span&gt;);
  &lt;span style="color: #cc6600;"&gt;pinMode&lt;/span&gt;(blueLed,&lt;span style="color: #006699;"&gt;OUTPUT&lt;/span&gt;);
  &lt;span style="color: #cc6600;"&gt;pinMode&lt;/span&gt;(greenLed,&lt;span style="color: #006699;"&gt;OUTPUT&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;void&lt;/span&gt; &lt;span style="color: #cc6600;"&gt;&lt;b&gt;loop&lt;/b&gt;&lt;/span&gt;(){
  &lt;span style="color: #7e7e7e;"&gt;//считываем показания фоторизисторов&lt;/span&gt;
  redSensVal=&lt;span style="color: #cc6600;"&gt;analogRead&lt;/span&gt;(redSens);
  &lt;span style="color: #cc6600;"&gt;delay&lt;/span&gt;(5);
  greenSensVal=&lt;span style="color: #cc6600;"&gt;analogRead&lt;/span&gt;(greenSens);
  &lt;span style="color: #cc6600;"&gt;delay&lt;/span&gt;(5);
  blueSensVal=&lt;span style="color: #cc6600;"&gt;analogRead&lt;/span&gt;(blueSens);

  redVal=redSensVal/4;
  greenVal=greenSensVal/4;
  blueVal=blueSensVal/4;

  &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;print&lt;/span&gt;(&lt;span style="color: #006699;"&gt;«sensor Values \t Red: „&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;print&lt;/span&gt;(redSensVal);
  &lt;span style="color: #cc6600;"&gt;&lt;b&gt;Serial&lt;/b&gt;&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;print&lt;/span&gt;(&lt;span style="color: #006699;"&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;print&lt;/span&gt;(redVal);
  &lt;span style="color: #cc6600;"&gt;&lt;b&gt;Serial&lt;/b&gt;&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;print&lt;/span&gt;(&lt;span style="color: #006699;"&gt;“\t Green: „&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;print&lt;/span&gt;(greenSensVal);
  &lt;span style="color: #cc6600;"&gt;&lt;b&gt;Serial&lt;/b&gt;&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;print&lt;/span&gt;(&lt;span style="color: #006699;"&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;print&lt;/span&gt;(greenVal);
  &lt;span style="color: #cc6600;"&gt;&lt;b&gt;Serial&lt;/b&gt;&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;print&lt;/span&gt;(&lt;span style="color: #006699;"&gt;“\t Blue: „&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;print&lt;/span&gt;(blueSensVal);
  &lt;span style="color: #cc6600;"&gt;&lt;b&gt;Serial&lt;/b&gt;&lt;/span&gt;.&lt;span style="color: #cc6600;"&gt;print&lt;/span&gt;(&lt;span style="color: #006699;"&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;(blueVal);

  &lt;span style="color: #cc6600;"&gt;analogWrite&lt;/span&gt;(redLed,redVal);
  &lt;span style="color: #cc6600;"&gt;analogWrite&lt;/span&gt;(greenLed,greenVal);
  &lt;span style="color: #cc6600;"&gt;analogWrite&lt;/span&gt;(blueLed,blueVal);
}&lt;/pre&gt;
&lt;p&gt;Здесь надо прокомментировать, что с аналоговых сенсоров мы получаем значения в диапозоне от 0 до 1023, а выводить на аналоговые выходы может значения от 0 до 254, по этому предварительно значения из одного диапазона надо «привести» к значениям из другого диапазона, в данном случае мы просто делим на 4.&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/IGhOIRvrjK4" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="tiles"&gt;
     &lt;a href="pictures/IMG_0165.jpg" rel="lightbox[01]"&gt;
                &lt;img src="pictures/IMG_0165.jpg" /&gt;
        &lt;/a&gt;
  &lt;a href="pictures/схема.jpg" rel="lightbox[01]"&gt;
                &lt;img src="pictures/схема.jpg" /&gt;
           &lt;/a&gt;
  &lt;a href="pictures/IMG_0161.jpg" rel="lightbox[01]"&gt;
                &lt;img src="pictures/IMG_0161.jpg" /&gt;
           &lt;/a&gt;
  &lt;a href="pictures/IMG_0163.jpg" rel="lightbox[01]"&gt;
                &lt;img src="pictures/IMG_0163.jpg" /&gt;
           &lt;/a&gt;
  &lt;a href="pictures/IMG_0167.jpg" rel="lightbox[01]"&gt;
                &lt;img src="pictures/IMG_0167.jpg" /&gt;
           &lt;/a&gt;
  &lt;a href="pictures/IMG_0168.jpg" rel="lightbox[01]"&gt;
                &lt;img src="pictures/IMG_0168.jpg" /&gt;
           &lt;/a&gt;
&lt;/div&gt;
</description><pubDate>Fri, 01 Mar 2013 17:01:42 +0300</pubDate></item>
</channel>

</rss>