ÊÖ»úÀ¶ÑÀÒ£¿Ø´ó¹¦Âʵĵ÷¹âµ÷É«µÄLEDµÆµÄÉè¼Æ
·¢²¼ÈÕÆÚ:2023-05-12
µã»÷´ÎÊý:1034
1.ÒýÑÔ
¡¡¡¡Ëæ×Å£¬2012Äê10ÔÂ30ÈÕ·ÉÀûÆÖÔÚAppleStore³öÊÛ×îеĸ߿Ƽ¼HueϵÁÐLEDµÆ£¬²¢ÇÒÖ»»á½»ÓÉÆ»¹û³öÊÛ¡£HueϵÁн«ÊÇÍêÈ«¿ÉÓÐ×Ô¶¨ÒåµÄ£¬²¢ÇÒͨ¹ýÒ»¸öµÆÅÝÄÚºìÀ¶ÂÌÈýÔÉ«µÄLED¿ÉÒÔ»ìºÏ³ö1600ÍòÖÖÑÕÉ«µÄµÆ¹â¡£Õû¸ö¹ý³ÌÍêÈ«ÓÉiPhoneÉϵÄAppÀ´½øÐпØÖÆ¡£´Ó¶øÒý·¢ÁËÖÇÄܵƿط¢Õ¹µÄÐÂ˼¿¼£¬¹úÄÚÏà¹ØÈËʿҲ·×·×½øÐÐÑо¿¡£¿¼Âǵ½HueÊDzÉÓÃWiFiÎÞÏß¿ØÖÆ£¬¶ø¹úÄÚWiFi²¢Î´ÆÕ¼°£¬±¾Ñо¿²ÉÓøüÆÕ±éµÄÀ¶ÑÀ¼¼Êõ£¬²ÉÓÃÊÖ»úÀ¶ÑÀÓ뵥Ƭ»úͨÐŲúÉú¿Éµ÷Õ¼¿Õ±ÈPWM²¨ÐźſØÖÆLEDÇý¶¯µç·ʵÏÖLEDµÄµ÷¹âºÍDIYµ÷É«¡£
2.Âö³å¿íÖÆ£¨PWM£©µ÷¹â¼¼Êõ
¡¡¡¡PWMµ÷¹âÊÇÒ»ÖÖÀûÓüòµ¥µÄÊý×ÖÂö³å£¬·´¸´¿ª¹ØLEDÇý¶¯Æ÷µÄµ÷¹â¼¼Êõ¡£Ó¦ÓÃÕßµÄϵͳֻÐèÒªÌṩ¿í¡¢Õ²»Í¬µÄÊý×ÖʽÂö³å£¬¼´¿É¼òµ¥µØÊµÏָıäÊä³öµçÁ÷£¬´Ó¶øµ÷½ÚLEDµÄÁÁ¶È¡£PWMµ÷¹âµÄÓŵãÔÚÓÚµ÷¹â·¶Î§´ó£¬Ö»Òª´ø¿í×ã¹»£¬ÈκÎÄ£ÄâÖµ¶¼¿ÉÒÔʹÓÃPWM½øÐбàÂ룬PWMµ÷¹â¿ÉÒÔÔÚ¾«È·¿ØÖÆLEDµÄÁÁ¶ÈµÄͬʱ£¬Ò²±£Ö¤LED·¢¹âµÄÉ«¶È¡£
2.1 Âö³å¿íÖÆ£¨PWM£©µ÷¹âÔÀí
¡¡¡¡ÀûÓÃÈËÑÛ¾¦ÊÓ¾õ¶èÐÔ£¬°´¹Ì¶¨ÆµÂʲÙ×÷Õ¼¿Õ±ÈʵÏÖLEDÁÁ¶Èµ÷½Ú£¬Ö»Òªµ÷¹â±È¼´PWM²¨ÆµÂÊ´óÓÚ200HzÈËÑ۾Ͳ»»á¸Ð¾õµ½LEDµÄÉÁ˸¡£¾ßÌåµ÷¹âʵÏÖ£¬Í¨¹ý¿ØÖÆLEDµÄÁÁÃðʱ¼ä£¬´Ó¶ø¿ØÖÆLEDÁÁ¶È£¬´ÓµçÁ¦Ñ§À´¿´¾ÍÊÇ¿ØÖÆÒ»¶¨ÖÜÆÚÄÚµçÁ÷µÄÓÐЧֵ¡£ÕâÖÖ·½·¨ÔڸıäµçÁ÷ÓÐЧֵ´óСµÄͬʱ²»¸Ä±äµçѹºÍµçÁ÷µÄ´óС£¬ÕâÑù¾Í±£Ö¤ÁËLEDµÄ·¢¹âÉ«¶È£¬ÕâÊÇÄ£Äâµ÷¹âºÍ¿É¿Ø¹èµ÷¹âÎÞ·¨ÊµÏֵġ£
2.2 Õ¼¿Õ±È
¡¡¡¡Õ¼¿Õ±ÈÊÇÖ¸¸ßµçƽÔÚÒ»¸öÖÜÆÚÖ®ÄÚËùÕ¼µÄʱ¼ä±ÈÂÊ¡£·½²¨µÄÕ¼¿Õ±ÈΪ50%£¬Õ¼¿Õ±ÈΪ0.5£¬ËµÃ÷ÕýµçƽËùռʱ¼äΪ0.5¸öÖÜÆÚ¡£
¡¡¡¡TsΪÂö³åÖÜÆÚ£¬TwΪÂö³å¿í¶È
¡¡¡¡Õ¼¿Õ±Èτ=Tw/Ts×100.
¡¡¡¡Õ¼¿Õ±ÈµÄ½âÊÍ¿ÉÒÔ¹éÄÉΪÈçϼ¸ÖÖ£º
¡¡¡¡1£©ÔÚÒ»´®ÀíÏëµÄÂö³åÐòÁÐÖУ¨Èç·½²¨£©£¬ÕýÂö³åµÄ³ÖÐøÊ±¼äÓëÂö³å×ÜÖÜÆÚµÄ±ÈÖµ¡£
¡¡¡¡2£©ÔÚÒ»¶ÎÁ¬Ðø¹¤×÷ʱ¼äÄÚÂö³åÕ¼ÓõÄʱ¼äÓë×Üʱ¼äµÄ±ÈÖµ¡£
¡¡¡¡3£©ÔÚÖÜÆÚÐ͵ÄÏÖÏóÖУ¬ÏÖÏó·¢ÉúµÄʱ¼äÓë×Üʱ¼äµÄ±È¡£
¡¡¡¡Ò²¾ÍÊǵç·ÊÍ·ÅÄÜÁ¿µÄÓÐЧʱ¼äÓë×ÜÊÍ·Åʱ¼äµÄ±È¡£
2.3 µ÷¹â±È
¡¡¡¡µ÷¹â±ÈÔòÊǰ´ÏÂÃæµÄ·½·¨¼ÆË㣺
¡¡¡¡Foper=¹¤×÷ƵÂÊ£¬Fpwm=µ÷¹âƵÂÊ£¬µ÷¹â±ÈÂÊ=Foper/Fpwm
¡¡¡¡ÆäʵҲ¾ÍÊǵ÷¹âµÄ×îµÍÓÐЧռ¿Õ±È£¬±ÈÈçFoper=100khz;Fpwm=200Hz£¬Ôòµ÷¹â±ÈΪ£º100k/200=500.
3.À¶ÑÀÄ£¿é×é³É
3.1 À¶ÑÀ¼¼Êõ»ù´¡
¡¡¡¡À¶ÑÀµÄ´´Ê¼ÈËÊÇÈðµä°®Á¢ÐŹ«Ë¾£¬À¶ÑÀ¼¼ÊõÊÇÒ»ÖÖÎÞÏßÊý¾ÝÓëÓïÒôͨÐŵĿª·ÅÐÔÈ«Çò¹æ·¶£¬ËüÒԵͳɱ¾µÄ½ü¾àÀëÎÞÏßÁ¬½ÓΪ»ù´¡£¬Îª¹Ì¶¨ÓëÒÆ¶¯É豸ͨÐÅ»·¾³½¨Á¢Ò»¸öÌØ±ðÁ¬½Ó¡£ÊÖ»úÖ®¼äͨ¹ýÀ¶ÑÀʵÏÖÊý¾Ý¹²ÏíÒѳÉΪ³£Àí£¬½«ÊÖ»ú±äÉíΪң¿ØÆ÷ΪÈËÃǵÄÉú»î´øÀ´ÎÞÏÞ·½±ã¡££Û1£Ý
¡¡¡¡À¶ÑÀ¼¼ÊõÓÉÈý²¿·Ö×é³É£¬°üÀ¨À¶ÑÀÎÞÏߵ缼Êõ¡¢À¶ÑÀÐÒéÕ»ºÍÀ¶ÑÀ»¥²Ù×÷ÐÔ¡£
3.1.1 À¶ÑÀÎÞÏߵ缼Êõ
¡¡¡¡À¶ÑÀÎÞÏߵ繤×÷ÔÚÈ«ÇòͨÓõÄ2 ¡£ 4 G H zISM£¨¼´¹¤Òµ¡¢¿ÆÑ§¡¢Ò½Ñ§£©Æµ¶Î£¬Ö§³Öȫ˫¹¤´«Ê䣬ʹÓÃIEEE802.15ÐÒé¡£À¶ÑÀÉ豸¼´Á¬¼´Ó㬿¹¸ÉÈÅÄÜÁ¦Ç¿¡¢Ê¹Ó÷½±ã£Û2£Ý
3.1.2 À¶ÑÀÐÒéÕ»
¡¡¡¡À¶ÑÀÐÒéÕ»°üº¬Ò»¸öÈí¼þÕ»ºÍÒ»¸öÓ²¼þÕ»¡£À¶ÑÀÓ²¼þÐÒéÕ»ÓÉÀ¶ÑÀÓ²¼þÌṩ£¬À¶ÑÀÈí¼þÐÒéÕ»ÓÉÈí¼þʵÏÖ¡£À¶ÑÀÈí¼þÐÒéÕ»ÌṩJavaÀ¶ÑÀAPI¸ø³ÌÐò¿ª·ÅÈËԱʹÓá£
3.1.3 À¶ÑÀ»¥²Ù×÷ÐÔ
¡¡¡¡À¶ÑÀ»¥²Ù×÷ÐÔ°üÀ¨Èý·½ÃæÄÚÈÝ£º¢ÙͨÓ÷ÃÎÊProfile¶¨ÒåÁËÉ豸¹ÜÀí¹¦ÄÜÐÔ£»¢Ú·þÎñ·¢ÏÖÓ¦ÓÃProfiles¶¨ÒåÁË·þÎñ·¢ÏÖ·½ÃæµÄÄÚÈÝ£»¢Û´®¿ÚProfiles¶¨ÒåÁË»¥²Ù×÷É豸ºÍÄ£Äâ´®¿ÚµçÀµÄÄÜÁ¦3.2 HC-O6À¶ÑÀÄ£¿é
¡¡¡¡BC04ÍâÖÃ8M Flash£¬´øEDRÄ£¿éHC-06ΪÃñÓü¶£¬¼æÈÝHC-04¹¤Òµ¼¶¡£ÆäÖУ¬HC-06Ä£¿éµÄTX¹Ü½Å¸úSTC15F204EAµ¥Æ¬»úµÄP3.0¹Ü½ÅÏà½Ó£¬RX¹Ü½Å¸úP3.1½Ó¡£HC-06Ä£¿é½ÓÊÕÊÖ»ú¶Ë·¢À´µÄÊý¾Ý£¬È»ºóÔÚͨ¹ý´®¿ÚTR£¬TX¹Ü½ÅÓ뵥Ƭ»úͨÐÅ¡£
¡¡¡¡À¶ÑÀ2.0´øEDR£¬2Mbps-3Mbpsµ÷ÖÆ¶È£¬ÄÚÖÃ2.4GHzÌìÏߣ¬ÍâÖÃ8Mbit FLASH£¬µÍµçѹ3.3V¹¤×÷£¨3.1V~4.2V£©Åä¶Ôʱ30~40MA²¨¶¯£¬Åä¶ÔÍê±ÏͨÐÅ8MA£¬¿ÉÑ¡PIO¿ØÖƱê×¼HCI¶Ë¿Ú£¨UART or USB£©£¬Êý×Ö2.4GHzÎÞÏßÊÕ·¢É䣬CSR BC04À¶ÑÀоƬ¼¼Êõ£¬×ÔÊÊÓ¦ÌøÆµ¼¼Êõ£¬À¶ÑÀClass 2¹¦Âʼ¶±ð£¬¹¤×÷ζÈΪ-25ÖÁ+75£¬Ð²¨¸ÉÈÅΪ2.4MHz£¬·¢É书ÂÊ3dBm£¬ÓÐЧ¿ØÖƾàÀëΪ10m.
4.ÊÖ»úAPPÉè¼Æ
4.1 À¶ÑÀÁ¬½ÓÏà¹Ø³ÌÐòÉè¼Æ
¡¡¡¡Ê×ÏÈ£¬³õʼ»¯±¾µØÀ¶ÑÀÉ豸£¬½¨Á¢LocalDeviceÀ࣬°üÀ¨È¡µÃ±¾µØÉ豸ʵÀý¡¢À¶ÑÀÃû³Æ¡¢ÉèÖ÷¢ÏÖģʽ¡¢»ñµÃ·¢ÏÖ´úÀí¡£´´½¨public int BTS_Init£¨£©ÀຯÊý£¬ÊµÏÖÀ¶ÑÀ³õʼ»¯Åжϣ¬Ñ°ÕÒĬÈÏÀ¶ÑÀÉ豸£¬´ò¿ªÀ¶ÑÀ¡£
¡¡¡¡Æô¶¯À¶ÑÀÉ豸ËÑË÷£¬´´½¨public voidBTS_StartScan£¨£©ÀຯÊý£¬¿ªÊ¼Ñ°ÕÒ´Ó»úÀ¶ÑÀÉ豸£¬×¢²áËÑѰº¯Êý£¬´´½¨public int BTS_ConnectToDevice£¨String DeviceAddress£©ÀຯÊý£¬ÊµÏÖÁ¬½Óµ½Ò»¸öÖ¸¶¨µÄÀ¶ÑÀÉ豸¡£
¡¡¡¡´´½¨public int BTS_SendDates£¨Stringbuffer£©ÀຯÊýʵÏÖ×Ö·û´®·¢Ë͵½ÒÑÁ¬½ÓºÃµÄÀ¶ÑÀÉ豸ÉÏ£¬´´½¨public int BTS_Finish£¨£©ÀຯÊý½áÊøÀ¶ÑÀͨÐÅ£¬×îºó´´½¨½ÓÊÕACTION_FOUND¹ã²¥µÄBroadcastReceiver privatefinal BroadcastReceiver mReceiver=newBroadcastReceiver£¨£©¡£
4.2 ¿ØÖÆÐźÅÏà¹Ø³ÌÐòÉè¼Æ
¡¡¡¡Ê×ÏÈ´´½¨Ò»¸öÓÃÓÚ¿ØÖÆÐźŵÄÀàpublicclass PwmcontrolActivity extends Activity{}£¬ÀïÃæ°üº¬´´½¨½çÃæµÄÀຯÊýpublic voidonCreate£¨BundlesavedIn stan ceState£©{}£¬·¢ËÍ¿ØÖÆÐźÅÀຯÊýpublic void onStop TrackingTouch£¨SeekBar seekBar£©{}¡£
¡¡¡¡´´½¨Ààclass InitThread extends Thread{}£¬ÊµÏÖ×ÊÔ´¼ÓÔØỊ̈߳¬ÀïÃæ´´½¨ÓÃÓÚËÄ·ÐźÅÖ®¼äת»»µÄpublic InitThread£¨PwmcontrolActivity act£©{}ÀຯÊý£¬ÊµÏÖÓëÀ¶ÑÀ³ÌÐò½Ó¿ÚµÄpublic void run£¨£©Ïß³ÌÌ壬ÓÃÓÚÈí¼þÍ˳öµÄÀຯÊýpublic booleanonKeyDown£¨int keyCo de£¬KeyEvent event£©¡£
5.µ¥Æ¬»ú¿ØÖÆÐźÅÉè¼Æ
5.1 Ó²¼þµç·Éè¼Æ
¡¡¡¡ÏµÍ³¿òͼÈçͼ1Ëùʾ£¬±¾Ó²¼þµç·²ÉÓÃSTC15F204EAµ¥Æ¬»úΪÖ÷¿ØÆ÷£¬CH-06À¶ÑÀÄ£¿éµÄTXDÓ뵥Ƭ»ú11¹Ü½ÅP3.0Á¬½Ó£¬RXDÓëP3.1ÏàÁ¬£¬ÊµÏÖÀ¶ÑÀ´®¿ÚͨÐÅÁ¬½Ó£¬´ÓP1.0£¬P1.1£¬P1.2£¬P1.3Ëĸö¿ÚÊä³öËÄ·¿Éµ÷Õ¼¿Õ±ÈµÄPWMÐźţ¬²ÉÓÃÒ»¸öL298оƬ½«µ¥Æ¬»ú¿ØÖÆÐźźÍLEDµçÔ´Çý¶¯¸ôÀ룬±ÜÃâÁ˵¥Æ¬»ú´ø¸ºÔØÄÜÁ¦ÈõµÄȱµã£¬ÒÔʵÏÖÇý¶¯´ó¹¦ÂÊLED.
ÃâÔðÉùÃ÷£º ±¾ÎÄÕÂת×ÔÆäËüƽ̨£¬²¢²»´ú±í±¾Õ¾¹Ûµã¼°Á¢³¡¡£ÈôÓÐÇÖȨ»òÒìÒ飬ÇëÁªÏµÎÒÃÇɾ³ý¡£Ð»Ð»£¡ |