<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=23&amp;t=2376&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-02-19T20:04:26+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=23&amp;t=2376&amp;mode</id>
<entry>
<author><name><![CDATA[tomekpop]]></name></author>
<updated>2013-02-19T20:04:26+01:00</updated>
<published>2013-02-19T20:04:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28704#p28704</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28704#p28704"/>
<title type="html"><![CDATA[Re: Sterownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28704#p28704"><![CDATA[
Z tą funkcją to faktycznie zobaczę czy da się zrobić a podłączenie taśmy jest pokazane na trzecim filmie 1:41 a dokładnie tutaj <a href="http://www.youtube.com/watch?feature=player_detailpage&amp;v=0x70g_-QWj8#t=101s"  class="postlink">http://www.youtube.com/watch?feature=player_detailpage&amp;v=0x70g_-QWj8#t=101s</a><br />+taśmy do zasilacza, minusy kolorów do masy przez tranzystory BD139<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=237">tomekpop</a> — 19 lut 2013, o 20:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jachu]]></name></author>
<updated>2013-02-19T10:29:31+01:00</updated>
<published>2013-02-19T10:29:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28638#p28638</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28638#p28638"/>
<title type="html"><![CDATA[Re: Sterownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28638#p28638"><![CDATA[
A nie latwiej zrobic jedna funkcje prog ( parametry wejsciowe ) i nie masz 10 funkcji al jedna tylko zmieniaja sie na wejsciu dane  do funkcji ? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Tak na szybko bez dokladnej analizy tych funkcji ale wydaje mi sie ze to do zrobienia <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Mozesz pokazac jak podlaczylest ta tasme ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=110">jachu</a> — 19 lut 2013, o 10:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomekpop]]></name></author>
<updated>2013-02-18T20:24:15+01:00</updated>
<published>2013-02-18T20:24:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28614#p28614</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28614#p28614"/>
<title type="html"><![CDATA[Re: Sterownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28614#p28614"><![CDATA[
Wstawiam poprawiony i nieco bardziej czytelny kod:<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 17-02-2013<br /> *       Autor: tomekpop<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;lcd.h&quot;<br />#include &quot;i2c_twi.h&quot;<br />#include &quot;IR_DECODE/ir_decode.h&quot;<br /><br />// klawisze<br />#define KEY1 (1&lt;&lt;PC7)<br />#define KEY2 (1&lt;&lt;PC6)<br />#define KEY3 (1&lt;&lt;PC5)<br />#define KEY4 (1&lt;&lt;PC4)<br /><br />volatile uint8_t pwm1, pwm2, pwm3;<br />volatile uint16_t Timer1, Timer2;<br /><br />volatile uint8_t int0_flag = 1;<br />void timer_init(void);<br />void zegar(void);<br />void lcd_show1(void);<br />void lcd_show2(void);<br />void prog_1(void);<br />void prog_2(void);<br />void prog_3(void);<br />void prog_4(void);<br />void prog_5(void);<br />void prog_6(void);<br />void prog_7(void);<br />void prog_8(void);<br />void prog_9(void);<br />void prog_10(void);<br />void prog_11(void);<br />void prog_default(void);<br /><br />uint8_t dec2bcd(uint8_t dec);<br />uint8_t bcd2dec(uint8_t bcd);<br /><br />uint8_t key_lock1;<br />uint8_t key_lock2;<br />uint8_t key_lock3;<br />uint8_t key_lock4;<br /><br />uint8_t menu_sw;<br />;<br />uint8_t efekty;<br />uint8_t rgb;<br />uint8_t sw;<br />uint8_t rgb_sw;<br />uint8_t t;<br />uint8_t bufor[4];<br />uint8_t sekundy, minuty, godziny;<br />uint8_t j, k, l;<br />uint8_t m, n, o;<br />enum {<br />ss = 1, mm, hh<br />};<br /><br />#define PCF8583_ADDR 0xA2<br /><br />int main(void) {<br />uint8_t menu_sw = 0;<br />//podwietlenie lcd<br />DDRA |= (1 &lt;&lt; PA7);<br />PORTA |= (1 &lt;&lt; PA7);<br />//dioda RGB<br />DDRD |= (1 &lt;&lt; PD3) | (1 &lt;&lt; PD4) | (1 &lt;&lt; PD5);<br />PORTD |= (1 &lt;&lt; PD3) | (1 &lt;&lt; PD4) | (1 &lt;&lt; PD5);<br />//klawisze<br />PORTC |= KEY1 | KEY2 | KEY3 | KEY4;<br /><br />timer_init();<br />// Przerwanie INT0<br />MCUCR |= (1 &lt;&lt; ISC01);<br />GICR |= (1 &lt;&lt; INT0);<br />PORTD |= (1 &lt;&lt; PD2);<br /><br />ir_init();<br />i2cSetBitrate(100);<br />sei();<br />lcd_init();<br />lcd_show1();<br /><br />while (1) {<br />zegar();<br />lcd_show2();<br /><br />if (Ir_key_press_flag) {<br />if (!address &amp;&amp; 36 == command)<br />menu_sw++;<br /><br />Ir_key_press_flag = 0;<br />command = 0xff;<br />address = 0xff;<br />}<br />//klawisz zmiany programu<br />if (!key_lock1 &amp;&amp; !(PINC &amp; KEY1)) {<br />key_lock1 = 1;<br />menu_sw += 1;<br />} else if (key_lock1 &amp;&amp; (PINC &amp; KEY1))<br />key_lock1++;<br />if (menu_sw &gt; 11)<br />menu_sw = 0;<br />if (menu_sw &gt; 8 &amp;&amp; menu_sw &gt; 9) {<br />lcd_locate(2, 11);<br />lcd_str(&quot;         &quot;);<br />}<br />lcd_locate(3, 18);<br /><br />switch (menu_sw) {<br />case 1: {<br />prog_1();<br />break;<br />}<br />case 2: {<br />prog_2();<br />break;<br />}<br />case 3: {<br />prog_3();<br />break;<br />}<br />case 4: {<br />prog_4();<br />break;<br />}<br />case 5: {<br />prog_5();<br />break;<br />}<br />case 6: {<br />prog_6();<br />break;<br />}<br />case 7: {<br />prog_7();<br />break;<br />}<br />case 8: {<br />prog_8();<br />break;<br />}<br />case 9: {<br />prog_9();<br />break;<br />}<br />case 10: {<br />prog_10();<br />break;<br />}<br />case 11: {<br />prog_11();<br />break;<br />}<br />default: {<br />prog_default();<br />break;<br />}<br />}<br /><br />}<br />}<br />void timer_init(void) {<br />//TIMER2<br />TCCR2 |= (1 &lt;&lt; WGM21);<br />TCCR2 |= (1 &lt;&lt; CS20);<br />OCR2 = 200;<br />TIMSK |= (1 &lt;&lt; OCIE2);<br /><br />//TIMER0<br />TCCR0 |= (1 &lt;&lt; WGM01);<br />TCCR0 |= (1 &lt;&lt; CS02) | (1 &lt;&lt; CS00);<br />OCR0 = 180;<br />TIMSK |= (1 &lt;&lt; OCIE0);<br />}<br />// procedura obsługi przerwania INT 0<br />ISR( INT0_vect ) {<br />int0_flag = 1;<br />}<br />// konwersja liczby dziesiętnej na BCD<br />uint8_t dec2bcd(uint8_t dec) {<br />return ((dec / 10) &lt;&lt; 4) | (dec % 10);<br />}<br />// konwersja liczby BCD na dziesiętną<br />uint8_t bcd2dec(uint8_t bcd) {<br />return ((((bcd) &gt;&gt; 4) &amp; 0x0F) * 10) + ((bcd) &amp; 0x0F);<br />}<br />ISR( TIMER2_COMP_vect) {<br />static uint8_t cnt;<br /><br />if (cnt &gt;= pwm1)<br />PORTD &amp;= ~(1 &lt;&lt; PD3);<br />else<br />PORTD |= (1 &lt;&lt; PD3);<br />if (cnt &gt;= pwm2)<br />PORTD &amp;= ~(1 &lt;&lt; PD4);<br />else<br />PORTD |= (1 &lt;&lt; PD4);<br />if (cnt &gt;= pwm3)<br />PORTD &amp;= ~(1 &lt;&lt; PD5);<br />else<br />PORTD |= (1 &lt;&lt; PD5);<br /><br />cnt++;<br />}<br />ISR(TIMER0_COMP_vect) {<br />uint16_t x;<br />x = Timer1;<br />if (x)<br />Timer1 = --x;<br />x = Timer2;<br />if (x)<br />Timer2 = --x;<br />}<br />void lcd_show1(void) {<br />lcd_locate(0, 0);<br />lcd_str(&quot;***Sterownik--RGB***&quot;);<br />lcd_locate(1, 0);<br />lcd_str(&quot;RED  :&quot;);<br />lcd_locate(2, 0);<br />lcd_str(&quot;GREEN:&quot;);<br />lcd_locate(3, 0);<br />lcd_str(&quot;BLUE :&quot;);<br />lcd_locate(3, 13);<br />lcd_str(&quot;Prog:&quot;);<br />}<br /><br />void zegar(void) {<br />//zegar<br />if (int0_flag) {<br />TWI_read_buf(PCF8583_ADDR, 0x01, 4, bufor);<br />sekundy = bcd2dec(bufor[ss]);<br />minuty = bcd2dec(bufor[mm]);<br />godziny = bcd2dec(bufor[hh]);<br />lcd_locate(1, 12);<br />if (godziny &lt; 10)<br />lcd_str(&quot;0&quot;);<br />lcd_int(godziny);<br />lcd_str(&quot;:&quot;);<br />if (minuty &lt; 10)<br />lcd_str(&quot;0&quot;);<br />lcd_int(minuty);<br />lcd_str(&quot;:&quot;);<br />if (sekundy &lt; 10)<br />lcd_str(&quot;0&quot;);<br />lcd_int(sekundy);<br />int0_flag = 0;<br />}<br />}<br />void lcd_show2(void) {<br />//wartosci pwm na lcd<br />lcd_locate(1, 7);<br />lcd_int(pwm1);<br />if (pwm1 &lt; 100)<br />lcd_str(&quot; &quot;);<br />if (pwm1 &lt; 10)<br />lcd_str(&quot; &quot;);<br />lcd_locate(2, 7);<br />lcd_int(pwm2);<br />if (pwm2 &lt; 100)<br />lcd_str(&quot; &quot;);<br />if (pwm2 &lt; 10)<br />lcd_str(&quot; &quot;);<br />lcd_locate(3, 7);<br />lcd_int(pwm3);<br />if (pwm3 &lt; 100)<br />lcd_str(&quot; &quot;);<br />if (pwm3 &lt; 10)<br />lcd_str(&quot; &quot;);<br />lcd_locate(3, 18);<br />}<br />void prog_1(void) {<br />//RED<br />lcd_str(&quot;1 &quot;);<br />pwm1 = 255;<br />pwm2 = 0;<br />pwm3 = 0;<br />}<br />void prog_2(void) {<br />//GREEN<br />lcd_str(&quot;2 &quot;);<br />pwm1 = 0;<br />pwm2 = 255;<br />pwm3 = 0;<br />}<br />void prog_3(void) {<br />//BLUE<br />lcd_str(&quot;3 &quot;);<br />pwm1 = 0;<br />pwm2 = 0;<br />pwm3 = 255;<br />}<br />void prog_4(void) {<br />//RED-GREEN<br />lcd_str(&quot;4 &quot;);<br />pwm1 = 255;<br />pwm2 = 255;<br />pwm3 = 0;<br />}<br />void prog_5(void) {<br />//GREEN-BLUE<br />lcd_str(&quot;5 &quot;);<br />pwm1 = 0;<br />pwm2 = 255;<br />pwm3 = 255;<br />}<br />void prog_6(void) {<br />//RED-BLUE<br />lcd_str(&quot;6 &quot;);<br />pwm1 = 255;<br />pwm2 = 0;<br />pwm3 = 255;<br />}<br />void prog_7(void) {<br />//RED-GREEN-BLUE<br />lcd_str(&quot;7 &quot;);<br />pwm1 = 255;<br />pwm2 = 255;<br />pwm3 = 255;<br />}<br />void prog_8(void) {<br />//łagodne zapalanie po kolei każdego z podstawowych kolorów<br />lcd_str(&quot;8 &quot;);<br />if (!Timer1) {<br />Timer1 = 255;<br />rgb_sw++;<br />}<br /><br />if (rgb_sw &gt; 6)<br />rgb_sw = 1;<br /><br />if (rgb_sw == 1) {<br />k=0;<br />l=0;<br />if (!Timer2) {<br />Timer2 = 1;<br />j++;<br />}<br />}<br />if (rgb_sw == 2) {<br />if (!Timer2) {<br />Timer2 = 1;<br />j--;<br />}<br />}<br /><br />if (rgb_sw == 3) {<br />j=0;<br />l=0;<br />if (!Timer2) {<br />Timer2 = 1;<br />k++;<br />}<br />}<br />if (rgb_sw == 4) {<br />if (!Timer2) {<br />Timer2 = 1;<br />k--;<br />}<br />}<br /><br />if (rgb_sw == 5) {<br />j=0;<br />k=0;<br />if (!Timer2) {<br />Timer2 = 1;<br />l++;<br />}<br />}<br />if (rgb_sw == 6) {<br />if (!Timer2) {<br />Timer2 = 1;<br />l--;<br />}<br />}<br /><br />pwm1 = j;<br />pwm2 = k;<br />pwm3 = l;<br />if (j &gt; 255)<br />j = 255;<br />if (j &lt; 0)<br />j = 0;<br />if (k &gt; 255)<br />k = 255;<br />if (k &lt; 0)<br />k = 0;<br />if (l &gt; 255)<br />l = 255;<br />if (l &lt; 0)<br />l = 0;<br /><br />}<br />void prog_9(void) {<br />//łagodne przejcie między kolorami<br />lcd_str(&quot;9 &quot;);<br /><br />if (!Timer1) {<br />Timer1 = 255;<br />sw++;<br />}<br />if (sw &gt; 3)<br />sw = 1;<br />if (sw == 1) {<br />if (!Timer2) {<br />Timer2 = 1;<br />m--;<br />n++;<br />o = 0;<br />}<br />}<br />if (sw == 2) {<br />if (!Timer2) {<br />Timer2 = 1;<br />m = 0;<br />n--;<br />o++;<br />}<br />}<br />if (sw == 3) {<br />if (!Timer2) {<br />Timer2 = 1;<br />m++;<br />n = 0;<br />o--;<br />}<br />}<br />if (m &gt; 255)<br />m = 255;<br />if (m &lt; 0)<br />m = 0;<br />if (n &gt; 255)<br />n = 255;<br />if (n &lt; 0)<br />n = 0;<br />if (o &gt; 255)<br />o = 255;<br />if (o &lt; 0)<br />o = 0;<br />pwm1 = m;<br />pwm2 = n;<br />pwm3 = o;<br /><br />}<br /><br />void prog_10(void) {<br />//przełączanie między kolorami<br />lcd_str(&quot;10&quot;);<br /><br />if (!Timer1) {<br />Timer1 = 50;<br />rgb++;<br />if (rgb &gt; 3)<br />rgb = 1;<br />if (rgb == 1) {<br />pwm1 = 255;<br />pwm2 = 0;<br />pwm3 = 0;<br />}<br />if (rgb == 2) {<br />pwm1 = 0;<br />pwm2 = 255;<br />pwm3 = 0;<br />}<br />if (rgb == 3) {<br />pwm1 = 0;<br />pwm2 = 0;<br />pwm3 = 255;<br />}<br /><br />}<br />}<br />void prog_11(void) {<br />//ręczny wybór koloru<br />lcd_str(&quot;11&quot;);<br />if (!key_lock2 &amp;&amp; !(PINC &amp; KEY2)) {<br />key_lock2 = 1;<br />rgb_sw += 1;<br />} else if (key_lock2 &amp;&amp; (PINC &amp; KEY2))<br />key_lock2++;<br />if (rgb_sw &gt; 3)<br />rgb_sw = 1;<br />if (rgb_sw == 1) {<br />lcd_locate(3, 6);<br />lcd_str(&quot; &quot;);<br />lcd_locate(1, 6);<br />lcd_str(&quot;*&quot;);<br />if (!key_lock3 &amp;&amp; !(PINC &amp; KEY3)) {<br />key_lock3 = 1;<br />pwm1 += 5;<br />} else if (key_lock3 &amp;&amp; (PINC &amp; KEY3))<br />key_lock3++;<br />if (!key_lock4 &amp;&amp; !(PINC &amp; KEY4)) {<br />key_lock4 = 1;<br />pwm1 -= 5;<br />} else if (key_lock4 &amp;&amp; (PINC &amp; KEY4))<br />key_lock4++;<br />}<br />if (rgb_sw == 2) {<br />lcd_locate(1, 6);<br />lcd_str(&quot; &quot;);<br />lcd_locate(2, 6);<br />lcd_str(&quot;*&quot;);<br />if (!key_lock3 &amp;&amp; !(PINC &amp; KEY3)) {<br />key_lock3 = 1;<br />pwm2 += 5;<br />} else if (key_lock3 &amp;&amp; (PINC &amp; KEY3))<br />key_lock3++;<br />if (!key_lock4 &amp;&amp; !(PINC &amp; KEY4)) {<br />key_lock4 = 1;<br />pwm2 -= 5;<br />} else if (key_lock4 &amp;&amp; (PINC &amp; KEY4))<br />key_lock4++;<br />}<br />if (rgb_sw == 3) {<br />lcd_locate(2, 6);<br />lcd_str(&quot; &quot;);<br />lcd_locate(3, 6);<br />lcd_str(&quot;*&quot;);<br />if (!key_lock3 &amp;&amp; !(PINC &amp; KEY3)) {<br />key_lock3 = 1;<br />pwm3 += 5;<br />} else if (key_lock3 &amp;&amp; (PINC &amp; KEY3))<br />key_lock3++;<br />if (!key_lock4 &amp;&amp; !(PINC &amp; KEY4)) {<br />key_lock4 = 1;<br />pwm3 -= 5;<br />} else if (key_lock4 &amp;&amp; (PINC &amp; KEY4))<br />key_lock4++;<br />}<br />if (key_lock3 &gt; 1)<br />key_lock3 = 0;<br />if (key_lock4 &gt; 1)<br />key_lock4 = 0;<br />}<br /><br />void prog_default(void) {<br />lcd_str(&quot;0 &quot;);<br />pwm1 = 0;<br />pwm2 = 0;<br />pwm3 = 0;<br />efekty = 0;<br />rgb = 0;<br />sw = 0;<br />lcd_locate(1, 6);<br />lcd_str(&quot; &quot;);<br />lcd_locate(2, 6);<br />lcd_str(&quot; &quot;);<br />lcd_locate(3, 6);<br />lcd_str(&quot; &quot;);<br />rgb_sw = 0;<br />j = 0;<br />k = 0;<br />l = 0;<br />m = 0;<br />n = 0;<br />o = 0;<br />}<br />[/syntax]<br /><br />i filmik z taśmą RGB<br /><a href="http://youtu.be/0x70g_-QWj8"  class="postlink">http://youtu.be/0x70g_-QWj8</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=237">tomekpop</a> — 18 lut 2013, o 20:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kila]]></name></author>
<updated>2013-02-18T19:26:49+01:00</updated>
<published>2013-02-18T19:26:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28603#p28603</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28603#p28603"/>
<title type="html"><![CDATA[Re: Sterownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28603#p28603"><![CDATA[
<div class="quotetitle">tomekpop napisał(a):</div><div class="quotecontent"><br />Dioda bezpośrednio z portu ale oczywiście przez rezystorki.<br />Teraz właśnie testuję na taśmie RGB przez tranzystory.<br />Postaram się jeszcze dzisiaj wrzucić poprawiony(bardziej czytelny) kod i filmiki z testów<br /></div><br /><br />Looknij sobie w moim podpisie mój proto-typek <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=699">kila</a> — 18 lut 2013, o 19:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomekpop]]></name></author>
<updated>2013-02-18T19:21:38+01:00</updated>
<published>2013-02-18T19:21:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28601#p28601</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28601#p28601"/>
<title type="html"><![CDATA[Re: Sterownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28601#p28601"><![CDATA[
Dioda bezpośrednio z portu ale oczywiście przez rezystorki.<br />Teraz właśnie testuję na taśmie RGB przez tranzystory.<br />Postaram się jeszcze dzisiaj wrzucić poprawiony(bardziej czytelny) kod i filmiki z testów<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=237">tomekpop</a> — 18 lut 2013, o 19:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kila]]></name></author>
<updated>2013-02-18T19:17:43+01:00</updated>
<published>2013-02-18T19:17:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28600#p28600</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28600#p28600"/>
<title type="html"><![CDATA[Re: Sterownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28600#p28600"><![CDATA[
Albo przez tranzystorka?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=699">kila</a> — 18 lut 2013, o 19:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomwisnia]]></name></author>
<updated>2013-02-18T18:58:20+01:00</updated>
<published>2013-02-18T18:58:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28591#p28591</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28591#p28591"/>
<title type="html"><![CDATA[Re: Sterownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28591#p28591"><![CDATA[
sterujesz bezpośrednio z pinów Atmegi32 tą diodą? Nie bezpieczniej przez ULN?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=183">tomwisnia</a> — 18 lut 2013, o 18:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-02-17T23:13:54+01:00</updated>
<published>2013-02-17T23:13:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28482#p28482</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28482#p28482"/>
<title type="html"><![CDATA[Re: Sterownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28482#p28482"><![CDATA[
Bardzo przyjemnie się patrzy na takie projekty gdy widać jak panowie rośniecie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> szok<br /><br />przy okazji bardzo cenne wskazówki daje ci kolega Anty - czyli jak najszybciej zacznij uczyć się wyprowadzania wszystkiego z pętli głównej do funkcji. To nawet nie chodzi o to czy go wrzucisz czy nie -bo to bardziej dla ciebie ... a jak wrzucisz to też widzisz że możesz liczyć na pomoc od kolegów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 17 lut 2013, o 23:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomekpop]]></name></author>
<updated>2013-02-17T21:53:04+01:00</updated>
<published>2013-02-17T21:53:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28464#p28464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28464#p28464"/>
<title type="html"><![CDATA[Re: Sterownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28464#p28464"><![CDATA[
Filmy i zdjęcia dodane. Miłego oglądania mam nadzieje że efekty będą dobrze widoczne.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=237">tomekpop</a> — 17 lut 2013, o 21:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomekpop]]></name></author>
<updated>2013-02-17T20:56:40+01:00</updated>
<published>2013-02-17T20:56:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28449#p28449</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28449#p28449"/>
<title type="html"><![CDATA[Re: Sterrownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28449#p28449"><![CDATA[
Wiem że kod jest trochę nieczytelny i może w złym stylu napisany ale jak pisałem na początku dopiero skończyłem go pisać i chciałem jak najszybciej opublikować bo pewnie jak bym się wziął za poprawki to by tu nigdy nie trafił.Kod jest w 100% sprawdzony i sprawny. Jak znajdę chwilę czasu to może go poprawię i wrzucę jeszcze raz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=237">tomekpop</a> — 17 lut 2013, o 20:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomekpop]]></name></author>
<updated>2013-02-17T20:47:18+01:00</updated>
<published>2013-02-17T20:47:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28447#p28447</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28447#p28447"/>
<title type="html"><![CDATA[Re: Sterrownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28447#p28447"><![CDATA[
schematu nie ma bo na ATB zrobione, fotki i jakiś filmik zaraz sklecę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=237">tomekpop</a> — 17 lut 2013, o 20:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-02-17T20:42:53+01:00</updated>
<published>2013-02-17T20:42:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28445#p28445</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28445#p28445"/>
<title type="html"><![CDATA[Re: Sterrownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28445#p28445"><![CDATA[
no ok , dodaj schemat , fotki , filmik  ... jak DIY to DIY <br /><img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 17 lut 2013, o 20:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomekpop]]></name></author>
<updated>2013-02-17T21:52:01+01:00</updated>
<published>2013-02-17T20:38:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28443#p28443</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28443#p28443"/>
<title type="html"><![CDATA[Sterownik RGB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2376&amp;p=28443#p28443"><![CDATA[
Witam, chciałbym przedstawić wam mój projekt który dzisiaj napisałem. Program powstał z potrzeby sterowania taśmy LED RGB, którą mam zamiar niedługo zamontować w szklanych półkach.<br />Założenia projektu:<br />1. program w całości nie blokujący<br />2. obsługa przyciskami<br />3. obsługa pilotem rc-5 (innego w tej chwili nie posiadam <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> )<br />4. wyświetlacz lcd 4x20 (w finalnej wersji pewnie go nie będzie)<br />5. zegar pcf8583 (żeby sprawdzić czy faktycznie nie blokujący)<br /><br />kod napisany oczywiście w eclipse indigo + toolchain 3.4<br />testy na ATB 1.03 M32 16MHz + dioda <span style="color: #FF0000">R</span><span style="color: #00BF00">G</span><span style="color: #0000FF">B</span><br /><br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 17-02-2013<br /> *       Autor: tomekpop<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;lcd.h&quot;<br />#include &quot;i2c_twi.h&quot;<br />#include &quot;IR_DECODE/ir_decode.h&quot;<br /><br />// klawisze<br />#define KEY1 (1&lt;&lt;PC7)<br />#define KEY2 (1&lt;&lt;PC6)<br />#define KEY3 (1&lt;&lt;PC5)<br />#define KEY4 (1&lt;&lt;PC4)<br /><br />volatile uint8_t pwm1, pwm2, pwm3;<br />volatile uint16_t Timer1, Timer2;<br /><br />volatile uint8_t int0_flag = 1;<br /><br />uint8_t dec2bcd(uint8_t dec);<br />uint8_t bcd2dec(uint8_t bcd);<br /><br />uint8_t key_lock1;<br />uint8_t key_lock2;<br />uint8_t key_lock3;<br />uint8_t key_lock4;<br /><br />#define PCF8583_ADDR 0xA2  <br />int main(void) {<br />//podwietlenie lcd<br />DDRA |= (1 &lt;&lt; PA7);<br />PORTA |= (1 &lt;&lt; PA7);<br />//dioda RGB<br />DDRD |= (1 &lt;&lt; PD3) | (1 &lt;&lt; PD4) | (1 &lt;&lt; PD5);<br />PORTD |= (1 &lt;&lt; PD3) | (1 &lt;&lt; PD4) | (1 &lt;&lt; PD5);<br />//klawisze<br />PORTC |= KEY1 | KEY2 | KEY3 | KEY4;<br />//TIMER2<br />TCCR2 |= (1 &lt;&lt; WGM21);<br />TCCR2 |= (1 &lt;&lt; CS20);<br />OCR2 = 200;<br />TIMSK |= (1 &lt;&lt; OCIE2);<br /><br />//TIMER0<br />TCCR0 |= (1 &lt;&lt; WGM01);<br />TCCR0 |= (1 &lt;&lt; CS02) | (1 &lt;&lt; CS00);<br />OCR0 = 180;<br />TIMSK |= (1 &lt;&lt; OCIE0);<br /><br />// Przerwanie INT0<br />MCUCR |= (1 &lt;&lt; ISC01);<br />GICR |= (1 &lt;&lt; INT0);<br />PORTD |= (1 &lt;&lt; PD2);<br /><br />enum {<br />ss = 1, mm, hh<br />};<br />uint8_t bufor[4];<br />uint8_t sekundy, minuty, godziny;<br /><br />ir_init();<br />i2cSetBitrate(100);<br />sei();<br />lcd_init();<br /><br />uint8_t menu_sw = 0;<br />uint8_t efekty = 0;<br />uint8_t rgb = 0;<br />uint8_t sw = 0;<br />uint8_t rgb_sw = 0;<br />uint8_t t1 = 100;<br />uint8_t t2 = 1;<br />lcd_locate(0, 0);<br />lcd_str(&quot;***Sterownik--RGB***&quot;);<br />lcd_locate(1, 0);<br />lcd_str(&quot;RED  :&quot;);<br />lcd_locate(2, 0);<br />lcd_str(&quot;GREEN:&quot;);<br />lcd_locate(3, 0);<br />lcd_str(&quot;BLUE :&quot;);<br />lcd_locate(3, 13);<br />lcd_str(&quot;Prog:&quot;);<br />while (1) {<br />//zegar<br />if (int0_flag) {<br />TWI_read_buf(PCF8583_ADDR, 0x01, 4, bufor);<br />sekundy = bcd2dec(bufor[ss]);<br />minuty = bcd2dec(bufor[mm]);<br />godziny = bcd2dec(bufor[hh]);<br />lcd_locate(1, 12);<br />if (godziny &lt; 10)<br />lcd_str(&quot;0&quot;);<br />lcd_int(godziny);<br />lcd_str(&quot;:&quot;);<br />if (minuty &lt; 10)<br />lcd_str(&quot;0&quot;);<br />lcd_int(minuty);<br />lcd_str(&quot;:&quot;);<br />if (sekundy &lt; 10)<br />lcd_str(&quot;0&quot;);<br />lcd_int(sekundy);<br />int0_flag = 0;<br />}<br /><br />if (Ir_key_press_flag) {<br />if (!address &amp;&amp; 36 == command)<br />menu_sw++;<br />if (!address &amp;&amp; 16 == command) {<br />t1++;<br />t2++;<br />}<br />if (!address &amp;&amp; 17 == command) {<br />t1--;<br />t2--;<br />}<br />Ir_key_press_flag = 0;<br />command = 0xff;<br />address = 0xff;<br />}<br />//wartosci pwm na lcd<br />lcd_locate(1, 7);<br />lcd_int(pwm1);<br />if (pwm1 &lt; 100)<br />lcd_str(&quot; &quot;);<br />if (pwm1 &lt; 10)<br />lcd_str(&quot; &quot;);<br />lcd_locate(2, 7);<br />lcd_int(pwm2);<br />if (pwm2 &lt; 100)<br />lcd_str(&quot; &quot;);<br />if (pwm2 &lt; 10)<br />lcd_str(&quot; &quot;);<br />lcd_locate(3, 7);<br />lcd_int(pwm3);<br />if (pwm3 &lt; 100)<br />lcd_str(&quot; &quot;);<br />if (pwm3 &lt; 10)<br />lcd_str(&quot; &quot;);<br />lcd_locate(3, 18);<br />//klawisz zmiany programu<br />if (!key_lock1 &amp;&amp; !(PINC &amp; KEY1)) {<br />key_lock1 = 1;<br />menu_sw += 1;<br />} else if (key_lock1 &amp;&amp; (PINC &amp; KEY1))<br />key_lock1++;<br />if (menu_sw &gt; 10)<br />menu_sw = 0;<br />if (menu_sw &gt; 8 &amp;&amp; menu_sw &gt; 9) {<br />lcd_locate(2, 11);<br />lcd_str(&quot;         &quot;);<br />}<br />lcd_locate(3, 18);<br />switch (menu_sw) {<br />case 1: {<br />//RED<br />lcd_str(&quot;1 &quot;);<br />pwm1 = 255;<br />pwm2 = 0;<br />pwm3 = 0;<br />break;<br />}<br />case 2: {<br />//GREEN<br />lcd_str(&quot;2 &quot;);<br />pwm1 = 0;<br />pwm2 = 255;<br />pwm3 = 0;<br />break;<br />}<br />case 3: {<br />//BLUE<br />lcd_str(&quot;3 &quot;);<br />pwm1 = 0;<br />pwm2 = 0;<br />pwm3 = 255;<br />break;<br />}<br />case 4: {<br />//RED-GREEN<br />lcd_str(&quot;4 &quot;);<br />pwm1 = 255;<br />pwm2 = 255;<br />pwm3 = 0;<br />break;<br />}<br />case 5: {<br />//GREEN-BLUE<br />lcd_str(&quot;5 &quot;);<br />pwm1 = 0;<br />pwm2 = 255;<br />pwm3 = 255;<br />break;<br />}<br />case 6: {<br />//RED-BLUE<br />lcd_str(&quot;6 &quot;);<br />pwm1 = 255;<br />pwm2 = 0;<br />pwm3 = 255;<br />break;<br />}<br />case 7: {<br />//RED-GREEN-BLUE<br />lcd_str(&quot;7 &quot;);<br />pwm1 = 255;<br />pwm2 = 255;<br />pwm3 = 255;<br />break;<br />}<br />case 8: {<br />//migające RGB po kolei<br />lcd_str(&quot;8 &quot;);<br />efekty = 1;<br />break;<br />}<br />case 9: {<br />//łagodne przejcie między kolorami<br />lcd_str(&quot;9 &quot;);<br />efekty = 2;<br />break;<br />}<br />case 10: {<br />//ręczny wybór koloru<br />lcd_str(&quot;10&quot;);<br />efekty = 3;<br />break;<br />}<br />default: {<br />lcd_str(&quot;0 &quot;);<br />pwm1 = 0;<br />pwm2 = 0;<br />pwm3 = 0;<br />efekty = 0;<br />rgb = 0;<br />sw = 0;<br />lcd_locate(1, 6);<br />lcd_str(&quot; &quot;);<br />lcd_locate(2, 6);<br />lcd_str(&quot; &quot;);<br />lcd_locate(3, 6);<br />lcd_str(&quot; &quot;);<br />break;<br />}<br />}<br />if (efekty == 1) {<br />lcd_locate(2, 11);<br />lcd_str(&quot;Speed:&quot;);<br />lcd_int(t1);<br />if (t1 &lt; 100)<br />lcd_str(&quot; &quot;);<br />if (t1 &lt; 10)<br />lcd_str(&quot; &quot;);<br />if (!key_lock3 &amp;&amp; !(PINC &amp; KEY3)) {<br />key_lock3 = 1;<br />t1 += 5;<br />} else if (key_lock3 &amp;&amp; (PINC &amp; KEY3))<br />key_lock3++;<br />if (!key_lock4 &amp;&amp; !(PINC &amp; KEY4)) {<br />key_lock4 = 1;<br />t1 -= 5;<br />} else if (key_lock4 &amp;&amp; (PINC &amp; KEY4))<br />key_lock4++;<br />if (key_lock3 &gt; 20)<br />key_lock3 = 0;<br />if (key_lock4 &gt; 20)<br />key_lock4 = 0;<br />if (!Timer1) {<br />Timer1 = t1;<br />rgb++;<br />if (rgb &gt; 3)<br />rgb = 1;<br />if (rgb == 1) {<br />pwm1 = 255;<br />pwm2 = 0;<br />pwm3 = 0;<br />}<br />if (rgb == 2) {<br />pwm1 = 0;<br />pwm2 = 255;<br />pwm3 = 0;<br />}<br />if (rgb == 3) {<br />pwm1 = 0;<br />pwm2 = 0;<br />pwm3 = 255;<br />}<br /><br />}<br />}<br />if (efekty == 2) {<br />lcd_locate(2, 11);<br />lcd_str(&quot;Speed:&quot;);<br />lcd_int(t2);<br /><br />if (t2 &lt; 10)<br />lcd_str(&quot;  &quot;);<br />if (t2 &lt; 1)<br />t2 = 10;<br />if (!key_lock3 &amp;&amp; !(PINC &amp; KEY3)) {<br />key_lock3 = 1;<br />t2 += 1;<br />} else if (key_lock3 &amp;&amp; (PINC &amp; KEY3))<br />key_lock3++;<br />if (!key_lock4 &amp;&amp; !(PINC &amp; KEY4)) {<br />key_lock4 = 1;<br />t2 -= 1;<br />} else if (key_lock4 &amp;&amp; (PINC &amp; KEY4))<br />key_lock4++;<br />if (key_lock3 &gt; 20)<br />key_lock3 = 0;<br />if (key_lock4 &gt; 20)<br />key_lock4 = 0;<br />if (!Timer1) {<br />Timer1 = (255 * t2);<br />sw++;<br />}<br />if (sw &gt; 3)<br />sw = 1;<br />if (sw == 1) {<br />if (!Timer2) {<br />Timer2 = t2;<br />pwm1--;<br />pwm2++;<br />pwm3 = 0;<br />}<br />}<br />if (sw == 2) {<br />if (!Timer2) {<br />Timer2 = t2;<br />pwm1 = 0;<br />pwm2--;<br />pwm3++;<br />}<br />}<br />if (sw == 3) {<br />if (!Timer2) {<br />Timer2 = t2;<br />pwm1++;<br />pwm2 = 0;<br />pwm3--;<br />}<br />}<br />if (pwm1 &gt; 255)<br />pwm1 = 255;<br />if (pwm1 &lt; 0)<br />pwm1 = 0;<br />if (pwm2 &gt; 255)<br />pwm2 = 255;<br />if (pwm2 &lt; 0)<br />pwm2 = 0;<br />if (pwm3 &gt; 255)<br />pwm3 = 255;<br />if (pwm3 &lt; 0)<br />pwm3 = 0;<br /><br />}<br />if (efekty == 3) {<br />if (!key_lock2 &amp;&amp; !(PINC &amp; KEY2)) {<br />key_lock2 = 1;<br />rgb_sw += 1;<br />} else if (key_lock2 &amp;&amp; (PINC &amp; KEY2))<br />key_lock2++;<br />if (rgb_sw &gt; 3)<br />rgb_sw = 1;<br />if (rgb_sw == 1) {<br />lcd_locate(3, 6);<br />lcd_str(&quot; &quot;);<br />lcd_locate(1, 6);<br />lcd_str(&quot;*&quot;);<br />if (!key_lock3 &amp;&amp; !(PINC &amp; KEY3)) {<br />key_lock3 = 1;<br />pwm1 += 5;<br />} else if (key_lock3 &amp;&amp; (PINC &amp; KEY3))<br />key_lock3++;<br />if (!key_lock4 &amp;&amp; !(PINC &amp; KEY4)) {<br />key_lock4 = 1;<br />pwm1 -= 5;<br />} else if (key_lock4 &amp;&amp; (PINC &amp; KEY4))<br />key_lock4++;<br />}<br />if (rgb_sw == 2) {<br />lcd_locate(1, 6);<br />lcd_str(&quot; &quot;);<br />lcd_locate(2, 6);<br />lcd_str(&quot;*&quot;);<br />if (!key_lock3 &amp;&amp; !(PINC &amp; KEY3)) {<br />key_lock3 = 1;<br />pwm2 += 5;<br />} else if (key_lock3 &amp;&amp; (PINC &amp; KEY3))<br />key_lock3++;<br />if (!key_lock4 &amp;&amp; !(PINC &amp; KEY4)) {<br />key_lock4 = 1;<br />pwm2 -= 5;<br />} else if (key_lock4 &amp;&amp; (PINC &amp; KEY4))<br />key_lock4++;<br />}<br />if (rgb_sw == 3) {<br />lcd_locate(2, 6);<br />lcd_str(&quot; &quot;);<br />lcd_locate(3, 6);<br />lcd_str(&quot;*&quot;);<br />if (!key_lock3 &amp;&amp; !(PINC &amp; KEY3)) {<br />key_lock3 = 1;<br />pwm3 += 5;<br />} else if (key_lock3 &amp;&amp; (PINC &amp; KEY3))<br />key_lock3++;<br />if (!key_lock4 &amp;&amp; !(PINC &amp; KEY4)) {<br />key_lock4 = 1;<br />pwm3 -= 5;<br />} else if (key_lock4 &amp;&amp; (PINC &amp; KEY4))<br />key_lock4++;<br />}<br />if (key_lock3 &gt; 1)<br />key_lock3 = 0;<br />if (key_lock4 &gt; 1)<br />key_lock4 = 0;<br />}<br />}<br />}<br />// procedura obsługi przerwania INT 0<br />ISR( INT0_vect ) {<br />int0_flag = 1;<br />}<br />// konwersja liczby dziesiętnej na BCD<br />uint8_t dec2bcd(uint8_t dec) {<br />return ((dec / 10) &lt;&lt; 4) | (dec % 10);<br />}<br />// konwersja liczby BCD na dziesiętną<br />uint8_t bcd2dec(uint8_t bcd) {<br />return ((((bcd) &gt;&gt; 4) &amp; 0x0F) * 10) + ((bcd) &amp; 0x0F);<br />}<br />ISR( TIMER2_COMP_vect) {<br />static uint8_t cnt;<br /><br />if (cnt &gt;= pwm1)<br />PORTD |= (1 &lt;&lt; PD3);<br />else<br />PORTD &amp;= ~(1 &lt;&lt; PD3);<br />if (cnt &gt;= pwm2)<br />PORTD |= (1 &lt;&lt; PD4);<br />else<br />PORTD &amp;= ~(1 &lt;&lt; PD4);<br />if (cnt &gt;= pwm3)<br />PORTD |= (1 &lt;&lt; PD5);<br />else<br />PORTD &amp;= ~(1 &lt;&lt; PD5);<br /><br />cnt++;<br />}<br />ISR(TIMER0_COMP_vect) {<br />uint16_t x;<br />x = Timer1;<br />if (x)<br />Timer1 = --x;<br />x = Timer2;<br />if (x)<br />Timer2 = --x;<br />}<br />[/syntax]<br /><br />kod jeszcze trochę nieogarnięty ale mam nadzieję że komuś się przyda. <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" /> <br /><br />Wszelkie sugestie na temat poprawności kodu i ewentualnych niedociągnięć mile widziane.<br /><br /><br />Połączenia:<br /><br />LCD cały port A<br />IR na PD6<br />PCF8583 na PD2<br />klawisze PC4-PC7<br />Dioda R-PD3 G-PD4 B-PD5<br /><br />DSC_1131.jpg<br />DSC_1132.jpg<br />DSC_1133.jpg<br /><br />Na filmiku poniżej działanie sterownika.<br />W programie jest 10 gotowych schematów kolorów:<br />1.RED<br />2.GREEN<br />3.BLUE<br />4.RED-GREEN<br />5.GREEN-BLUE<br />6.BLUE-RED<br />7.biały(wszystkie kolory zapalone)<br />8.podstawowe kolory RGB zapalane po kolei<br />9.płynne przejścia kolorów<br />10.ręczne tworzenie dowolnego koloru<br /><br />do programu 8 i 9 dostępne również regulowanie prędkości zmiany koloru<br /><br /><a href="http://youtu.be/mLMJ_BZtDnw"  class="postlink">http://youtu.be/mLMJ_BZtDnw</a><br /><br /><a href="http://youtu.be/bxhGmVjh83I"  class="postlink">http://youtu.be/bxhGmVjh83I</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=237">tomekpop</a> — 17 lut 2013, o 20:38</p><hr />
]]></content>
</entry>
</feed>