From 137f80ce693c3069ead2de246e6605d4f0b87393 Mon Sep 17 00:00:00 2001 From: Daniel Hyles Date: Sun, 8 Nov 2020 12:46:39 +1100 Subject: [PATCH] Doco for hbridge component (#733) bringing christmas lights into esphome --- components/light/hbridge.rst | 59 +++++++++++++++++++++++++ components/light/images/hbridge-ui.png | Bin 0 -> 9306 bytes index.rst | 2 + 3 files changed, 61 insertions(+) create mode 100644 components/light/hbridge.rst create mode 100644 components/light/images/hbridge-ui.png diff --git a/components/light/hbridge.rst b/components/light/hbridge.rst new file mode 100644 index 000000000..225d7e262 --- /dev/null +++ b/components/light/hbridge.rst @@ -0,0 +1,59 @@ +H-bridge Light +============== + +.. seo:: + :description: Instructions for setting up a hbridge light. + :image: brightness-medium.png + +The ``hbridge`` light platform creates a dual color brightness controlled light from two +:ref:`float output component `. + +.. figure:: images/hbridge-ui.png + :align: center + :width: 40.0% + +H-bridge lights are very common for Christmas lighting and they use 2 wires for a bunch of LEDs. +The pins are switched alternatively to allow two sets of lights to operate. + +.. code-block:: yaml + + # Example configuration entry + + # Specify the two pins of the h-bridge as PWM pins + output: + - platform: esp8266_pwm + id: pina + pin: GPIO12 + - platform: esp8266_pwm + id: pinb + pin: GPIO14 + + # Create a light using the hbridge + light: + - platform: hbridge + id: mainlight + name: "Hbridge Lights" + pin_a: pina + pin_b: pinb + + +Configuration variables: +------------------------ + +- **id** (*Optional*, :ref:`config-id`): Manually specify the ID used for code generation. +- **name** (**Required**, string): The name of the light. +- **pin_a** (**Required**, :ref:`config-id`): The id of the first float :ref:`output` to use for this light. +- **pin_b** (**Required**, :ref:`config-id`): The id of the second float :ref:`output` to use for this light. +- All other options from :ref:`Light `. + +.. note:: + + As we are switching the h-bridge in software, the light may glitch every so often when other tasks run on the MCU. + +See Also +-------- + +- :doc:`/components/light/index` +- :doc:`/components/output/esp8266_pwm` +- :apiref:`hbridge/light/hbridge_light.h` +- :ghedit:`Edit` diff --git a/components/light/images/hbridge-ui.png b/components/light/images/hbridge-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..51471140afb4df38d485a272e90ebcd9990aa9b8 GIT binary patch literal 9306 zcmch7WmMEr*e8g9lz`GPbW4{ALw6%3DM)uo{poIo5F`ib80i!kLK*~tp(F;ShmIi> zg!SFsZ@VAf-Sh5#cz(}0zbEfK_uS`xxCy%2Dn$4+_!t-%L~5#vuQ4zl0slnu3D!SG z({uP50|V1hSJOa=hK7cUii(nw>fzymnwmN}IT?XK;6*=>k&%&;Q)GqUumwxz=H`x! zjIgn@)6&vuYHHTi)lE%Jg@uL9%*=fI_N~0U+||{!zrUY~p4!>jd1+~>ySp0(`^*Zw z+TGp#{rfjFGxOQm*~P`h(9n>Cgv8soZyOpKI5;@k+Sh*uWxRc{a$i$aaC4U1_T7y+uO&)#0m-uZES4J&(Ful z$AA2oV`5?=Dk_?qn%dOVq@<*Ld3kwsbYx>=!_P0kYJWRCO$AbS3qm_1A})5y>XAl~FjXcC0R|0j!58EyemJ8mllBEZAVp4) z4Ext#4=If~WF;UF1_pDjnxdRR!1Cdup!=Wzp`u>86}YCoK>t)K5_A3GNn`xb*LdS8 zeAQyc;4Hh8uJsNQ&sVDkzF4dDeRW>v9gntOiVj9t9ga%B@cLz&;4ya7@-->8wm!>i z^OS0&%0m@bi}Hf%D-nV=V`|Qs6VCP0|40l<{BtM#q{QOziYOQ?JjVD0=JH+&?4!A7?~-@b?|x6peNsN=FE;dD5=x#wy#!U6X5B(axuq zi&PPUCuyEQGCrU}8Z|~lFfat3^a(vwaD>NwESsNB1mxg)aRB*cBvAVFl6xQfQkj0= zaE@R<<<%UligJ$Dx5`+Lzp5Rjd-9`vV4)@AW$GsU){sGh$`2-lOVdgNi+o1+_}Qb{ z=19WVOPtO#93c<&)|E~`r+$#brtIG^hR5eD{#*SjJSCON=u}~4QgCfNlx9Y9ib@In zo;i?~8Bn1vo#W$+hd!H;w9PU43J)cgmjc#c+}6Nc<@k%Et02Y-Bf`5ahl=<-tQaoR;`Tj;YH zc$>F(RZe|?ZFBdDK7I82m+9KjM)P z63(zqb$qy#uImNFU-^7_$ub}1U#$VTb-7{=)anT{Lz(dUFX>G_~Y|No(D#B8C-FzP#Wx)_yc65F3H7_k|lLZ^55Co znTfS*EJ6a~U_B-y^eTbHl?T4+0WllHZ}DY+zHu+p-~q5vzb@Y+&blpJl44@O-6fvp-eSP z=Hxk3aI{A*T!|jk7YRew4GmYFi-jbG|Uh z3!XFHUc@dty)j%!B$d7pSc2$wC00 zY=c&WEuUWZAF6Lgl$+wgG)hQGC=i{P#CH#213jo|=?_J|9D?J)#1wgLpu0i83hY-8 z^fOI9&k-(j4fYSB-!wsRWlbF`Z+=IP$lQba5`Udfu`03YlY;QCvQ2y+QmS3x&++cA zd(6`th%!`u)PJuH6ZnRys{`SIWsIPo81^`*a)t_*ILyA|oC>k05u``JD5twbIRU*c zb0rAHeT*E@O?215N#)*A5`9&z`}J;f`sc|=O0bv}rbBU6P8#x~f29Kpjt-8m&#`SP zD_El0mA0f}^DYrp8045$3imgfmZW1&{iaKXm^clp;IN$I4%sAf%jwF25)|Bu0Vknf zLnQi{P>s(_G*57~TiYX%PTHR>k}M@;$JaerX>DDhU2GiYk`mxIl1$&Z&Ax)}{F%U} zv0cEkRz^=WH2Kpg?mPu zVeda~q(!*=i6pG0mqg4xiF-T8u`#3Jf=lp!89g|b|LI7UnGR(c2Fqy| za(2UaK(M$CCOlTr@`(bv?VXz$;OflsOm#n|uI*UHXCyC8&-2qc4(5CHmH$<6-EbznnK;9->`I6SItwOxskDcb} z0olk~?+O%3`gI=E9WDZ1b5KJdYCl#~-oE%Z0WN3J_y1$$U=T*#bwOj+h#bT5FK?<; zVu0YeQhBiSzFski;c`?L0s#!FMpVGubDO0g^8GVC$p6M|n2&ywgakttqg!zsi_ADp z-^sl83N!0LMoFHjGi75mFK}R59xSv!^FM*&x~4sL2)y5aKF3lD;{AUK7ao^lu*uVO zujQwAEglOi+FgMGKCc)Mz~;S})a2rT5?nIqdLdJp1l#j2nnhaH<+Vn-Uv(E|)OEO3 zDQ&xUcaw7YXQRyWbkV^sLz{zZod`XLENa#U*t^|_fDZVbH_lGXvBqqs?`s{nxGZE| z2%Mc`DP5r+4_&)790@pqE1xDWn>*%ZaepDZoR%L3`1u zQ}X_W^sPD`Y$j7(|52;81y4i}Zv9QJmd#8Sa&-W&Q;}P6Z$Gaf+_KdK6T`=S<9#ih z@{v7xtDb6`gy(i{_i6wEs}R<_Gzk-Uxve7n^N{qq`EiT|(Sli*DzkVgGz&=ufKYsEQn=DqtQw;U4{ z3FLx{_5=ezt9PNBD3%vEyM{NPYVsUA;wJF{Wv=u1NWrB2GCJdLs!i#j?vdHU_cZS+ zglCEbKFTd*NOhjld_;PXQ4s0|-Oot&x_|NyL9&By&RP{~+Qh0w?)w-WuZb}<-Jp7QK zJW&Y~Gp)O{@C%Z9p8)J3T}#@aS@NviR9-kc_M@Iz$zQXQ5g%P032G+uW4lGJ_BzOe z5w}TNv<@6~3~22yXzgEY`l@411|?%=k~*Du;)>fd7e?l3b>QATdLI=1fJPf>Bk586 zY9R7GSJ^dgz8LypCNppu8jpl>qsH!DtWsG3K{tvKHQ=|s2k_+;@*nvX*EC_j#_t>b z@9Ukg^f1C`*NQ!vc7VpVoCp?#vc>*8Vb+0gBYL+Z{I+~-vxb;PkA|%NrQY6&LbbbW z-_Okmz9NS4>Uw^en_m`4Hp}C8U)OpAztUGSRp2i1Uu0a5RjU05GR}u1=cD}3a*^O&mk$6Wtk%+dX1~9(0}fwzwN$LS zKA^t#l-pNYg!_~Dd|z5Ess#C*e7q*6ld=8GYXr{GCC<*`C0F?7wvTlEaZBoE$6!Epf-@xtURvBer$WS!V`ImWJ4~==zTKNeIfzLvsqEUMTZ{Te2 zE^a?2{h+?yVBT<$)A7cWUgv`YQ7RJQ1u3R|j=C?fJ`{ZQ`;463_)C^iou&CkXD82r z?Q2Q9>ZLR?RKldA7_-l0xCKMDj^d&b(3qgvWb!}pM(XtO=LROX#=vkFjindcy$5i@ zSqw2DzAcon_U@Zwwr5|EnsMnGj}b>rCtsKY6gyW*>=r&$R4`|(VGi@G$PH4(o*=$a z2%O`{4Z2RquUr<(RRwOTkZu)xFp$bpKgB;FQ-hn6n7$9>lrbXJTLZ`De7UuJa{X)< z<#jf@i)W3DGSoZy#)iVeaNMsLQc^4iBt=UK$XIn6?PJguF)vqZ!19FRg|%3te0o{! ziRz8t=9`m-6XcSxtXyBtz0@;M7VQ zOoN#J`STrKQ~39j;JW+wLW-(26Mahy9nzJpf|uHUxfZ88Dc98^r)0mhMnAog#Fk6Q zp~u+EDI1*E@4^sLCcF`u>g=&jc!ZQ_~JUPW}QmbVwxt=|5ncG*wllC-tTii|;av|4gFypL1 z&mz3#HS!%a$(8=3x4UX}f-V%sgjK3PQ6Q)Jeocd&V^AYj^n`D|D^f-|RIz5IZ_n|u zn!B1?#P@WC+3(7eBTwwd5ufWH(;B^yc2wUMw9ZgJ!616Sr%S(SlI%CngT^ zB@GnPqC5*|0XFJg{rw-MpVus;pyRuuZgfFeTIyPHV!^+&-htkgtmbEVWcj6C!=Uf+ zrK2{A37@wlZ2aYN#XZA*eXeA9lU7vJ{{aAR;Wv^(Rk1hOCTjxrTiN9oRgRP@?T2}f zwIKYbtw9a%zE67QL#68zC>-YnFX^AWlsvV4FLF|r+MR832(0jEm(<31-gKMOX~NoB z5-K`W&jPp^CJzj4HOmc1OrI6=3v~}nTGM#MQcNzJ8|^sB;ZFkX#0GiYo`xc|It6^u zR+ZE08dI@v0)@RwlZOp??0tT@HFzB6- zLbb^TTp?#%rEZaP<`up%KOqr+cECvDZ;QW1M`LLd!#Y>T6)H}Qshc+s8wJY-!`07b zL8{?=*u@P)B2;3JEVRb?*bnRSUf`}jz|#Dpg~T>)s0!|+aV=uAoo4H^x$+xqI|iNq ztoIUMe>1}48G)81p2gB<1W!ky`^f%3m~O9~52@*G>xKSkO)cC1I;y9OF(Fi~ zA9l_KfctmA_gtM`F7mG+!gMGpYUrRy0_^tPt$<1@WEOFg+G8!4q)vmNj7vf%t3ue4 zdZCsmaYT^wicUI|3pM1r%?N);Aw`*p^-4&CQ}`TyZPC*Q9(0{|<*a}vwrRx{eVI&+ zbA?n3`6z3(^d(RSil;x1^c;vY)6V)^Gl{pH$6J)%E@J(XeBM@4IO6pBFeGQJ#{J>_ z1F_Y0pP6QbEAUazeQBFHmkBQ1BFR-9uN;Ri;Nj~w9o<)WMa9m1#`0^*(PjQ?$HDqD zJ81%!hzUOaR2-+VKpD>=_lDrVoOMA3mn(7T;Sl>pseb*ET!zNchfkXMivw#?qoDdQ z=8_KmK+#N=`T<2~dBDxB-gOuLLDF?ys z0(aE|j?R}mlW%QGtX;0F=z<9=`Qs^kLqpJitob40JrZRfDU$Z7J$Rog?6>H+U7Z=8 zHT||+aStxF^qfD+LT^p6l(0dD6;HZcq3O*#|Eg^D!*h-k(@_#14-@^A^++>WOX+mj zH=CMrWmaSipK5PSxir37zD@{c&nl$9Up0mOx{nZYOP>XA*DWRPAybE)f&Hs2^w;md zXOykus(w){I&;VZyBr=PjcEz@-y?Go$x&9AFDCvH}(avjk09s^c|Tj2Md!x>CcZhqb8#=kdiRA zCGA|x(AwK^mm*dE=9kYeyYwU=uiSp`ZP-Y4Jqf7KfHwV2K>O*izuYkHHU?(luj+s0{<4sJp+RBPa1ksA_JTCO-pY4Q0ay-@hUV z40i_pt+(~>1FptYViAqI*W$a-_da$~@#0Ts2-+`=dj5_N;4O8lO^OHB$H{f>{GOUq z72}xA?3!)J`lw0khpIw=DpkY<4|?k>D&2dJ5{dK>&$7@>KW}!_o3Ar8t#tvD6#BK- zZCPgH{1wb+x8~+!w4hb(3qgwIx+gy@B;Fj-{Z4;E%Q0JO{q@lF;{@$@h`u#0@d$z& zmBNz!S`_RX1Pm*!`D}J%fP7td0KXRqv!p*9LeX-l894lbaS|4s)^=*~du(y)C5cj0 zVFbzLA{R_z`_o;(#3g0r`T;yYT61o3vZQ#3+>ebpd%N4T`%Wtyecx&vm3Eo(MUff)Fba#tWqDMF>+l#A z0V>0-kOe;Bq9VA`Kznk46@D2mkOs<)C_;LiXZpw__B0wlAWYe$DhjGa*I)d3Kbv+w2h5m z0c%3eBT?y~3YEZqv??*8wA%_Oi$m#I-UR}Gr5Co)x4*fVCehr?%u(Wy#+^2sw?g1Q z-%-Arh(pd_1)E)z@LxB^sG)T`trj<6>{BPd9i_h@Sp8q#n0~Y)C5rlM&V$sKrlSc% zlXkc2SPw$Il=@(CgQh^57!LWXQqSo+UL2MMR^1wZSEgB_vOT&&Chz?v`8Kew-d?5n z#e7#FKu^xzs(I4H;<|2Fs06^};7l=L;rDv_<2z^pI)i?1k_JMy73uh%9z-A+mXQ{Ny{Ld0onKva-3&)4rkRiW#mgUgPN5*vUvE!k`r8{phFs zQ{qy~Ntd5KYjv37Zq|d%U$75ao$108<#^z4w%MV6kcDjTk5>YDs6J;DZ;1Du^V*Hdia%NnA|elzuQ*u^1rm8*-w ztcZaQYOpHopMI(9Eew8BD$C0NHOZ94U!i6Z@^fX1O2FoRl7bd#ksiZ~pVd5h2gEwo zQl4@>F3&|e!>^ifN<Fc8C_Io zvSNEI?}LV}3ztLw|7uY+2iKk&e91GQL1KOU85S)y>SR8?XTFvjYBbm9S0rz7ZL zE=arM8mFCl)!vqj*x1nw#lY2-z+xv(CyD^S4t>3R8m%%;J%sDjQoGhG?HSBq$#5!1 zody3`aVNR$)j9d%2>tGO-%!urzdljgr1s+FN~q0lsvA{oF%`aF-Nv|rWB7|SqNWG2 z2&N7P8cgP6`vBeY?dn|1;3en&DpI$!f5Gv8R2SCS2?zp?j04q2wWq z9dlz!jN!W_O0;5F6mo28>=H7?I_jk5^j63$pde^HeV&o6H?xxQK!YkhJGj4G?Tc+C zfF_dtZlorhErV)p@w?6)IEqep9wM3VzD1MF(#20+`6Hz59?vVu=@@Gnm+A!kwoUI3dRGG&Ox{wg7ikdcS`{y3hw4H-wMUoJb`7V6)@M=cm)35h4$&DhD z9iJ-Qw+hDYy%BZdF6G?)Q_R?nC7m}DWL2Jq4g$R8hw;y&&3NLSEwBNd zZw$bnu|7l1_;R(Z6=c0bzB&7A)JL-#;5GyU^yP zoYX&OV>Qg$msslv-%U=w=+^o!K0YW>x?@3dLe_E7Ru z#mhQ;FqIca@^?!8jSsVv82I~+7 z2*!sbzTnv)-tdR#87Ek3AoM@2R{MI)X71Abz{PM9W}Y`24KRB4Sr5&o$CY84O8pj9 zd-daD;nq7mYB2tQw(;iz_$<4r$}|#M#fJx!IRBGQ*1d!pw!MV?SzX-Pzq;8Rt%6-v ztjJ=2Rq6#VM+!$r;+AqfS&4AuR*e#RBEmU6REqoXu&y`O;k7Y*RNdbMbkxh?9*O@6 zF6UGwmM)9?KfqvA)^o{iGp?WSQ1gDKEdSJxq9+~NKy5gz%=if-xPYg~_WPKR*x0s! zCtzr3Rv%hOj#6p_G(!W;$E>H(rdbO-ZyhuMIoE};et;#836ZbiB%Ym-y{1_%ff{Ns z7;IZQ}KaUY6OI< zv;BtLz6_)kYp2ftM`(kWGxCIVJI$Gx2mYci+-qe6!F;H)E- z>|x@zK($D#e2OTyD|dMrrNVhvdbxv{A$xg9lzG9Z}zQ04F?vAV4br!t13Tb1D5 z-6F7{dST&3FsUJ0MmczM;(7G1t$dR;EnYSL_%oSBVIH=#&c;(-5n*=_XERRKRQ2idyn)+)m+>CT>{=xy5HPVS|KDt>rXjGSI>7D{* z#C-;Ba@);fp_njw24WDtvu4Xq8km$C_24yRGJl^}C;)OhBdxpW)0sLgVglc!fl3(v zQ)oWMi|UU-lVGFz=hSP5!OMY} mNWCDD_~v|{5B{nr9MYD9Q?B50=6`>NFw~T^73<`!BL5qz9WR~$ literal 0 HcmV?d00001 diff --git a/index.rst b/index.rst index c147be2fe..4cffad537 100644 --- a/index.rst +++ b/index.rst @@ -235,6 +235,8 @@ Light Components Tuya Dimmer, components/light/tuya, tuya.png Custom Light, components/light/custom, language-cpp.svg + H-bridge Light, components/light/hbridge, brightness-medium.svg + Looking for WS2811 and similar individually addressable lights? Have a look at the :doc:`FastLED Light `.