设计指南 4687

LED在远程控制照明中的应用

By: Piero Bianco

摘要 : 轻松实现远程控制是LED在通用照明应用中的优势之一。本应用笔记介绍了路灯照明系统的远程控制方案,可以通过电力线传输或无线传输实现照明系统的控制。

远程控制在路灯、停车场和室内照明的应用

远程控制在路灯、停车场和室内照明的应用

LED为调光和改变照明色彩提供了更大的设计灵活性,非常适合建筑照明、室内照明及调光、高能效路灯和室外照明等应用,这类应用中可以远程控制照明。

这些应用能够带给用户极大的增值空间,但是,为了在市场上取得成功,把照明设施升级为LED技术的成本必须控制在最低水平。毫无疑问,能够重复利用现有基础设施的方案也必然是最受市场欢迎的方案。

在远程控制LED照明应用中,产品升级成本最高的基础架构是控制LED照明布线。幸运的是,可以利用两种技术省去这笔昂贵的升级费用:LED灯可以通过无线链路控制或利用PLC技术通过现有的电力线控制。

PLC技术能够支持远距离通信,但当交流线路的断路器或变压器不允许数据流自由传输时,可能带来一些问题。虽然无线通信不存在这一问题,但通信频率限制在免授权波段,无线通信距离也受到一定限制。有些情况下,可以将这两种技术相结合得到最佳的解决方案:在没有变压器阻隔的情况下采用电力线通信,而利用无线连接支持跨变压器设计。

远程控制LED照明的主要设计要求包括:
  • 通信范围。这取决于具体应用,对于住宅的室内应用,30m左右的通信范围即可满足要求,路灯则需要数千米的通信范围。

  • 低功耗。LED的一个重要卖点是高能效。关闭照明、只有通信线路保持有效状态时,需要保证LED灯的功耗最低,这一点对于设计非常关键。

  • 通信速率。有些照明应用只需较低的通信速率(几kbps)即可满足调光控制和故障状态读取的要求。但是,建筑照明有时会需要非常高的数据速率,甚至达到100kbps。洗墙灯就属于这类应用的一个典型例子,通过一条总线控制多个照明灯,并需要不断改变灯光色彩。

  • 低成本。绝大多数照明应用都有类似要求。
57)) { //display error message digitalErrorFunction("Digits Only"); $("#errmsg").html("Digits Only").show().fadeOut("slow"); return false; } }); //Address Field Validation - not allowing special character /* $(document).on("blur", ".fieldValidation", function() { var textValue = $(this).val(); var re = /^[0-9a-zA-Z_|\ |#|\+|\-|$|\&|\*|\(|\)|%|\@|\!|\,|\.|\?]+$/; if(textValue.length >0 && !re.test(textValue)){ digitalErrorFunction("请填写英文(或拼音),只接受英文字母及数字为有效字符。"); bootbox.alert("请填写英文(或拼音),只接受英文字母及数字为有效字符。"); $(this).val(""); } }); */ // Changing part number to caps $(document).on("focusout",'input[name=partNo]', function() { this.value = this.value.toLocaleUpperCase().trim(); }); //added zip code validation $( "#profileEndCustomerZip" ).blur(function() { var zipCodeJson = [ {"countryName":"US", "zipRegex":/^\d{5}([\-]?\d{4})?$/}, {"countryName":"UK", "zipRegex":/^(GIR|[A-Z]\d[A-Z\d]??|[A-Z]{2}\d[A-Z\d]??)[ ]??(\d[A-Z]{2})$/}, {"countryName":"DE", "zipRegex":/\b((?:0[1-46-9]\d{3})|(?:[1-357-9]\d{4})|(?:[4][0-24-9]\d{3})|(?:[6][013-9]\d{3}))\b/}, {"countryName":"CA", "zipRegex":/^([ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ])\ {0,1}(\d[ABCEGHJKLMNPRSTVWXYZ]\d)$/}, {"countryName":"FR", "zipRegex":/^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$/}, {"countryName":"IT", "zipRegex":/^(V-|I-)?[0-9]{5}$/}, {"countryName":"AU", "zipRegex":/^(0[289][0-9]{2})|([1345689][0-9]{3})|(2[0-8][0-9]{2})|(290[0-9])|(291[0-4])|(7[0-4][0-9]{2})|(7[8-9][0-9]{2})$/}, {"countryName":"NL", "zipRegex":/^[1-9][0-9]{3}\s?([a-zA-Z]{2})?$/}, {"countryName":"ES", "zipRegex":/^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$/}, {"countryName":"DK", "zipRegex":/^([D-d][K-k])?( |-)?[1-9]{1}[0-9]{3}$/}, {"countryName":"SE", "zipRegex":/(s-|S-){0,1}[0-9]{3}\s?[0-9]{2}$/}, {"countryName":"BE", "zipRegex":/^[1-9]{1}[0-9]{3}$/} ]; var sCountryName = $('#profileEndCustomerCountry option:selected').val(); var sToValidate = $('#profileEndCustomerZip').val(); if('null' !=sToValidate){ //alert('hello111111111') zipCodeJson.forEach(function(item){ if(sCountryName==item.countryName){ var countryZipRegEx = new RegExp(item.zipRegex); if(countryZipRegEx.test(sToValidate)){ $('#addressZip-error').hide(); $('#zipCodeInvalid').hide(); $("#submit").removeClass( "disabled" ); }else { //alert('error'+item.countryName+' : regEx : '+item.zipRegex) $('#addressZip-error').hide(); //$('#addressZip-error').html('Zip Code is not valid'); digitalErrorFunction('邮政编码无效'); $('#zipCodeInvalid').html('邮政编码无效'); $('#zipCodeInvalid').show(); $('#addressZip').focus(); $("#submit").addClass( "disabled" ); } } }); } }); /*$.validator.addMethod("mult", function(value, element, param) { return this.optional( element ) || (parseInt(value, 10) % param == 0) }, jQuery.validator.format("Please enter a value in multiples of {0}.")); */ $(document).on("keydown", ".numbersOnly", function(e) { var key = e.which || e.keyCode; if (!e.shiftKey && !e.altKey && !e.ctrlKey && // numbers key >= 48 && key <= 57 || // Numeric keypad key >= 96 && key <= 105 || // comma, period and minus, . on keypad key == 190 || key == 188 || key == 109 || key == 110 || // Backspace and Tab and Enter key == 8 || key == 9 || key == 13 || // Home and End key == 35 || key == 36 || // left and right arrows key == 37 || key == 39 || // Del and Ins key == 46 || key == 45) return true; return false; }); //populateCountry('endCustomerCountryDiv', 'endCustomerCountry', 'endCustomerStateDiv', 'endCustomerState'); //populateProfileCountry('profileEndCustomerCountryDiv', 'profileEndCustomerCountry', 'profileEndCustomerStateDiv', 'profileEndCustomerState'); initQuoteCustomerInfo(); var state = ""; $('#form input').on('change', function() { if($('input[name=endCustomer]:checked', '#form').val()=='Other') { $('#profileEndCustomer').slideUp(); $('#differentEndCustomer').slideDown(); } else { $('#differentEndCustomer').slideUp(); if (isEmpty($("#myCity").val()) || isEmpty($("#myState").val()) || isEmpty($("#myCountry").val())) { $('#profileEndCustomer').slideDown(); } } }); var currentPartNo = 2; $('.addPart').click(function() { var partListId = 'partList'+currentPartNo; $( '#additionalParts').append('\
\
\
\
\
\ \ \
\
\
\ 最小订购数量\

\
\
\ 订购倍数\

\
\
\
\ \ \ \
\
\
\
\
\
\ \ \
\
\
\
\ \ \
\
\
\
\ \ \
\
\
\
'); currentPartNo = currentPartNo + 1; $(".addPart").addClass("disabled"); }); $("#form").validate({ submitHandler: function() { $("#spinner").show(); $('#form').slideUp(); $("#submit").addClass( "disabled" ); var postData = $('form#form').serializeArray(); //alert(JSON.stringify(postData)); $.ajax( { url : '/bin/AddQuoteCartServlet', type: "POST", data : postData, contentType: "application/x-www-form-urlencoded", success:function(data) { //alert(data.status); if (data.status) { //$('#form').slideUp(); if ($('#isRestrictedPart').val() == 'true') { $('#formRestricted').slideDown(); $("#spinner").hide(); } else { submitQuoteForNonRestrictedParts(); } } else { $("#spinner").hide(); digitalErrorFunction(data.error); bootbox.alert(data.error); $('#form').slideDown(); $('#submit').removeClass( 'disabled' ); } // infomsg div below for debugging. delete for production // $('#infomsg').html('
'+data+'
'); }, error: function(jqXHR, exception) { $("#spinner").hide(); $('#submit').removeClass( 'disabled' ); // infomsg div below for debugging. delete for production //$('#infomsg').html('
AJAX Request Failed
textStatus='+textStatus+'
errorThrown='+errorThrown+'
'); if (jqXHR.status === 0) { digitalErrorFunction("Not connect. Verify Network."); alert("Not connect. Verify Network."); } else if (jqXHR.status == 404) { digitalErrorFunction("Requested page not found. [404]"); alert("Requested page not found. [404]"); } else if (jqXHR.status == 500) { digitalErrorFunction("Internal Server Error [500]."); alert("Internal Server Error [500]."); } else if (exception === 'parsererror') { digitalErrorFunction("Requested JSON parse failed."); alert("Requested JSON parse failed."); } else if (exception === 'timeout') { digitalErrorFunction("Time out error."); alert("Time out error."); } else if (exception === 'abort') { digitalErrorFunction("Ajax request aborted."); alert("Ajax request aborted."); } else { digitalErrorFunction("Uncaught Error: " + jqXHR.responseText); alert("Uncaught Error: " + jqXHR.responseText); } } }); } }); // end form validation $("#formRestricted").validate({ submitHandler: function() { $("#spinner").show(); $("#submitRestricted").addClass( "disabled" ); var postData = $('form#formRestricted').serializeArray(); var postData2 = $('form#form').serializeArray(); for(var i =0 ; i< postData2.length; i++) { postData.push(postData2[i]); } //alert(JSON.stringify(postData)); //alert(JSON.stringify(postData2)); $.ajax( { url : '/bin/RequestQuoteServlet', type: "POST", data : postData, contentType: "application/x-www-form-urlencoded", success:function(data) { //alert(data.status); if (data.status) { $('#formRestricted').slideUp(); $('#submitRestricted').removeClass( 'disabled' ); $('#submit').removeClass( 'disabled' ); $('#quoteRequestSubmitted').slideDown(); $("#spinner").hide(); $("#isRestrictedPart").val("false"); $('#formRestricted').reset(); if (isEmpty(CQ_Analytics.PersonalInfoStoreMgr.getProperty("company")) || isEmpty(CQ_Analytics.PersonalInfoStoreMgr.getProperty("city")) || isEmpty(CQ_Analytics.PersonalInfoStoreMgr.getProperty("state"))) { if(typeof personalInfoLink != "undefined" && typeof personalInfoLink.url != "undefined") CQ_Analytics.PersonalInfoStoreMgr.init(personalInfoLink.url, navBarProfileCallback); } } else { $("#spinner").hide(); digitalErrorFunction(data.error); bootbox.alert(data.error); $('#submitRestricted').removeClass( 'disabled' ); $('#submit').removeClass( 'disabled' ); } // infomsg div below for debugging. delete for production // $('#infomsg').html('
'+data+'
'); }, error: function(jqXHR, exception) { $('#submitRestricted').removeClass( 'disabled' ); $("#spinner").hide(); // infomsg div below for debugging. delete for production //$('#infomsg').html('
AJAX Request Failed
textStatus='+textStatus+'
errorThrown='+errorThrown+'
'); if (jqXHR.status === 0) { digitalErrorFunction("Not connect. Verify Network."); alert("Not connect. Verify Network."); } else if (jqXHR.status == 404) { digitalErrorFunction("Requested page not found. [404]"); alert("Requested page not found. [404]"); } else if (jqXHR.status == 500) { digitalErrorFunction("Internal Server Error [500]."); alert("Internal Server Error [500]."); } else if (exception === 'parsererror') { digitalErrorFunction("Requested JSON parse failed."); alert("Requested JSON parse failed."); } else if (exception === 'timeout') { digitalErrorFunction("Time out error."); alert("Time out error."); } else if (exception === 'abort') { digitalErrorFunction("Ajax request aborted."); alert("Ajax request aborted."); } else { digitalErrorFunction("Uncaught Error: " + jqXHR.responseText); alert("Uncaught Error: " + jqXHR.responseText); } } }); } }); // end form validation }); // end document ready $(".partListClose").click(function() { $("#partList"+$(this).data("list-id")).remove(); });