ÔÚÏÖ´úµç×Ó¹¤³ÌºÍDIY´´Á¢ÖУ¬Êý¾ÝÓ³É䣨Mapping£©ÊÇÒ»¸ö·Ç³£»ù´¡È´ÓÖ¼«ÆäÖ÷ÒªµÄÊÖÒÕ¡£ËüÄܹ»×ÊÖúÄ㽫һ¸ö¹æÄ£ÄÚµÄÊýÖµ¿ìËÙת»¯ÎªÁíÒ»¸ö¹æÄ£µÄ¶ÔÓ¦Öµ£¬ÎÞÂÛÊÇ´«¸ÐÆ÷¶ÁÈ¡µÄÄ£ÄâÐźš¢PWM¿ØÖƵÄÄ£ÄâÊä³ö£¬ÕÕ¾ÉÊý×Ö½çÃæÉϵIJÎÊýµ÷Àí¡£ÌØÊâÊÇÔÚʹÓÃArduinoÕâÒ»¿ªÔ´Î¢¿ØÖÆÆ÷ƽ̨ʱ£¬Ó³É书ЧµÄÕÆÎÕ²»µ«¿ÉÒÔ¼ò»¯ÄãµÄ³ÌÐòÉè¼Æ£¬»¹Äܼ«´óÌá¸ß×°±¸µÄÎÞаÐÔºÍÏìÓ¦ËÙÂÊ¡£
ʲôÊÇÓ³É䣿¼òÆÓÀ´Ëµ£¬ËüÊÇÒ»ÖÖÏßÐԱ任£¬½«ÊäÈëµÄÊýÖµÓ³É䣨ת»¯£©µ½ÁíÒ»¸ö¹æÄ£¡£ÀýÈ磬ÄãÓô«¸ÐÆ÷¼ì²â¹âÏßÇ¿¶È£¬Êä³öÖµÔÚ0µ½1023Ö®¼ä£¬¶øÄãÏ£Íû½«Õâ¸öÖµÓ³Éäµ½0µ½255Ö®¼ä£¬ÓÃÓÚ¿ØÖÆLEDµÄÁÁ¶È¡£Õâ¸öÀú³ÌÖÐÓõ½µÄ¾ÍÊÇArduinoÌṩµÄmap()º¯Êý£¬Ëü¼«´óµØ¼ò»¯ÁËÓ³ÉäµÄ²Ù×÷£¬Ê¹±à³Ì±äµÃÖ±¹ÛÇÒ¸ßЧ¡£
ΪʲôҪÓÃÓ³É䣿ÔÚÏÖʵӦÓÃÖУ¬´«¸ÐÆ÷»òÊäÈë×°±¸¾³£±¬·¢²î±ð¹æÄ£µÄÊýÖµ£¬¶ø¿·¢k8¹ú¼ÊÊä³ö×°±¸£¨ºÃ±ÈÏÔʾÆÁ¡¢Âí´ï¡¢LEDµÈ£©¿ÉÄÜÐèҪͳһµÄ¿ØÖƹæÄ£¡£Ó³Éä±ãÓÚÎÒÃǽ«²î±ðȪԴµÄÊý¾ÝÕûºÏµ½Ò»¸öÅäºÏµÄ¿ØÖÆÂß¼ÖУ¬´Ó¶øÈ·±£ÏµÍ³µÄÎȹÌÐԺͷ´Ó¦Ñ¸ËÙ¶È¡£ÀýÈ磬ζȴ«¸ÐÆ÷µÄÊä³ö¿ÉÄÜÔÚ0µ½1023µÄÄ£Äâ¶Áȡֵ£¬¶øÎÒÃÇÕæÕýÌåÌùµÄÊÇÉãÊÏζȣ¬Ëü¿ÉÄÜÖ»ÔÚ0µ½50¡ãC¡£
ʹÓÃÓ³É䣬ÎÒÃÇ¿ÉÒÔ¿ìËÙ½«´«¸ÐÆ÷µÄÄ£Äâֵת»¯ÎªÎ¶ÈÖµ£¬ÊµÏÖ×Ô¶¯µ÷Àí¡£
ArduinoµÄmap()º¯ÊýÏê½âArduinoµÄmap()º¯Êý½ç˵ºÜÊǼòÆÓ£¬ËüµÄÓï·¨ÈçÏ£º
longmap(longvalue,longfromLow,longfromHigh,longtoLow,longtoHigh);value£ºÄãÏëÒªÓ³ÉäµÄÔʼֵfromLowfromHigh£ºÔʼֵµÄ¹æÄ££¨Èç0-1023£©toLowtoHigh£ºÄ¿µÄ¹æÄ££¨Èç0-255£©
intsensorValue=analogRead(A0);intbrightness=map(sensorValue,0,1023,0,255);analogWrite(9,brightness);
Õâ¶Î´úÂë»áƾ֤´«¸ÐÆ÷A0µÄÄ£Äâ¶Áȡֵ£¬½«ÆäÓ³Éäµ½0-255µÄPWMÁÁ¶È¹æÄ££¬¿ØÖÆÅþÁ¬µ½Êý×Ö¿Ú9µÄLEDÁÁ¶ÈËæÇéÐÎת±ä¡£
´Ó»ù´¡µ½Êµ¼ù£ºÏÂÊÖÊ÷Ä£ÏëÏóһϣ¬ÄãÉè¼ÆÁËÒ»¸öζȼà²âϵͳ£º´«¸ÐÆ÷¼à²âµ½µÄÄ£ÄâÖµÔÚ0-1023Ö®¼ä£¬¶øÄãÏ£Íûµ±Î¶ȵִïÌØ¶¨¹æÄ£Ê±£¬×Ô¶¯µ÷ÀíµçÉÈËÙÂÊ¡£Ö»Ð輸ÐдúÂë¾ÍÄÜʵÏÖ£º
inttempSensor=analogRead(A1);intfanSpeed=map(tempSensor,200,800,0,255);fanSpeed=constrain(fanSpeed,0,255);//È·±£¹æÄ£ºÏÀíanalogWrite(3,fanSpeed);
ÔÚÕâ¸öʾÀýÖУ¬ÏµÍ³×Ô¶¯´ÓζÈÐźÅת»»µ½ÊʺϵçÉÈ¿ØÖƵÄPWMÐźţ¬ÊµÏÖÁËÖÇÄܵ÷Àí¡£
Ó¦Óð¸ÀýÈ«¾°É¨ÃèÓ³É书Ч²»µ«¾ÖÏÞÓڵƹâºÍµçÉȵ÷Àí£¬»¹ÆÕ±éÓ¦ÓÃÓÚ£º
Ò£¿ØÆ÷ºÍ½çÃæÉè¼Æ£º½«Óû§ÊäÈëµÄ»¬¿éÖµÓ³É䵽ϵͳ²ÎÊýÉÏ¡£»úеÈËÔ˶¯¿ØÖÆ£º½«´«¸ÐÆ÷Êý¾ÝÓ³Éäµ½¶æ»ú½Ç¶È¡£ÏÔʾ½çÃæµ÷Àí£ºµ÷½âÏÔʾÁÁ¶È»ò×ÖÌå¾ÞϸµÈ²ÎÊý¡£´«¸ÐÆ÷ÍøÂ缯³É£ºÊµÏÖ¶à×°±¸µÄÊý¾Ý±ê×¼»¯¡£
Ö»ÒªÄãÉ趨ºÃÊäÈëºÍÊä³ö¹æÄ££¬¼´±ãÊý¾ÝÔ´ÖØ´ó·±¶à£¬Ó³ÉäÒ²ÈÃת»»±äµÃ¼òÆÓ¿É¿¿¡£ÕâÖÖ¼¼ÇÉÏÕЩÊÇǶÈëʽϵͳµÄ¡°±êÅäÎäÆ÷¡±£¬ÄãÕÆÎÕÁË£¬Ëü¾ÍÏñÊǵç×ÓÉè¼ÆÖеÄаÊõ°ô¡ª¡ªÇáËɱ任ÖÖÖÖÖØ´óÇéÐαäÁ¿£¬¿ªÍØÎÞÏÞ¿ÉÄÜ¡£
ÓÐÁË»ù´¡Ã÷È·ºó£¬ÏÂÒ»²½Êǽ«Ó³É书ЧӦÓõ½ÏÖʵµÄÏîÄ¿ÖÐÈ¥£¬Ê©Õ¹ÄãÎÞÏ޵Ĵ´Òâ¡£ÆñÂÛÄãÊÇÐÂÊÖÕվɾßÓÐÒ»¶¨ÂÄÀúµÄµç×Ó¹¤³Ìʦ£¬ÕÆÎÕArduinoÓ³Éä²»µ«ÄÜÈÃÄãµÄÏîÄ¿¸üרҵ£¬Ò²ÄܰïÄãÔÚÎÊÌâ½â¾öÖÐÕÒµ½Áé¸ÐºÍ¶¯Á¦¡£
ÖÇÄܼҾÓÖеÄÓ³ÉäÓ¦ÓÃÔÚÖÇÄܼҾÓϵͳÖУ¬´«¸ÐÆ÷ÊýÄ¿Öڶ࣬ÐźÅÖØ´ó¡£ºÃ±È£¬¹âÏß´«¸ÐÆ÷¼à²âÊÒÄÚÁÁ¶È£¬Î¶ȴ«¸ÐÆ÷¼ì²âÊÒΣ¬µçÉȺ͵÷¹âµÆÆ¾Ö¤ÇéÐÎ×Ô¶¯µ÷ÀíÁÁ¶ÈºÍ·çËÙ¡£Í¨¹ýÓ³É䣬Ӳ¼þ½Ó¿ÚÖ®¼äÎÞÐèÖØ´óµÄÊý¾Ýת»»£¬¾Í¿ÉÒÔʵÏÖ׼ȷ¿ØÖÆ¡£ÀýÈ磺
intlightSensor=analogRead(A2);intlightLevel=map(lightSensor,0,1023,0,100);//Êä³ö°Ù·Ö±ÈÁÁ¶È¿ØÖÆintpwmValue=map(lightLevel,0,100,0,255);analogWrite(5,pwmValue);//¿ØÖƵ÷¹âµÆ
ÎïÀí½»»¥½çÃæµÄÓ³ÉäÁ¢ÒìÉè¼ÆÒ»¸ö½»»¥Ê½¿ØÖÆÃæ°å£¬½«»¬¿é¡¢°´Å¥µÄÄ£Äâֵͨ¹ýÓ³Éäת»¯ÎªÏÖʵ¿ØÖƲÎÊý£¬ºÃ±ÈÒôÀÖ½Ú×à¡¢»úеÈËÔ˶¯½Ç¶È£¬»òÕßÒÕÊõ×°ÖõÄÏÔʾ²ÎÊý¡£Óû§µ÷Àí»¬¿é£¬¾ÓÉÓ³Éäºó£¬×°±¸±¬·¢¶ÔÓ¦µÄת±ä£¬ÔöÇ¿»¥¶¯ÐÔ¡£
´«¸ÐÆ÷ÈںϺ͵÷ÊÔÄѵãµÄÓ³ÉäÇÉ˼ÔÚ¶à´«¸ÐÆ÷ÈںϵÄÖØ´óϵͳÖУ¬Í³Ò»µÄ¹æÄ£Ó³ÉäÄÜ´ó´ó¼ò»¯ºóÐøÂß¼¡£ºÃ±ÈÔÚÎÞÈË»ú»ò×Ô¶¯¼ÝÊ»»úеÈËÖУ¬Î¶ȡ¢¾àÀë¡¢ËÙÂʵȴ«¸ÐÆ÷µÄÊý¾ÝÏÈÓ³Éäµ½Ò»¸öÇøÓòÄÚ£¬È»ºó¾ÙÐÐËã·¨´¦Öóͷ££¬ÕâÑù¿ÉÒÔ¸üÈÝÒ×·¢Ã÷Òì³£µã£¬È·±£ÏµÍ³µÄÎȹÌÐÔ¡£
ºÏÀíÉè¼ÆÊäÈëÊä³ö¹æÄ££ºÆ¾Ö¤´«¸ÐÆ÷ÀàÐͺͿØÖÆÐèÇó£¬ÏȹÀËãºÏÀíÓ³É乿죬×èÖ¹Õðµ´»ò²»Îȹ̡£Á¬Ïµconstrain()º¯Êý£ºÈ·±£Ó³ÉäºóµÄÖµÔÚ¿ÉÓùæÄ£ÄÚ£¬ºÃ±È£ºvalue=constrain(value,minVal,maxVal);µ÷ÊÔʱÖð²½´òÓ¡ÔʼºÍÓ³ÉäÖµ£ºÊ¹ÓÃSerial.println()¸¨Öúµ÷ÊÔ£¬¿ìËÙ¶¨Î»ÎÊÌâ¡£
δÀ´ÒÑÀ´¡ª¡ªÓ³ÉäÔÚÈ˹¤ÖÇÄܺÍÎïÁªÍøÖеÄÀ©Õ¹Ëæ×ÅÖÇÄÜ»¯¡¢ÎïÁªÍøµÄÉú³¤£¬Ó³É佫³ÉΪÅþÁ¬²î±ð×°±¸¡¢²î±ðÐÒéµÄÇÅÁº¡£Í¨¹ýͳһµÄÓ³ÉäÂß¼£¬°Ñ´«¸ÐÆ÷ÊÕÂÞµÄÒì¹¹Êý¾Ýת»¯Îª¿ÉÓÃÐÅÏ¢£¬ÎªAIÄ£×ÓÌṩϴ媹ýµÄÊäÈ룬²»µ«Ìá¸ßЧÂÊ£¬»¹ÄÜÒý·¢¸ü¶àÁ¢ÒìÓ¦Óá£
ʹÓÃÓ³Éä¶Ô´«¸ÐÆ÷Êý¾Ý¾ÙÐÐÔ¤´¦Öóͷ£Á¬ÏµÔÆ¶ËÆ½Ì¨ÊµÏÖÊý¾Ý±ê×¼»¯Ö§³ÖÔ¶³Ì¼à¿ØÓë¿ØÖÆ
×ܽáÓ³É书ЧËäÈ»¿´ËƼòÆÓ£¬µ«ÔÚÏÖʵÏîÄ¿ÖÐÈ´ÊÎÑÝ׿«ÆäÒªº¦µÄ½ÇÉ«¡£ËüÈÃÖØ´óÊý¾ÝµÄת»»±äµÃÇáËÉ×ÔÈô£¬ÖúÄãÔÚÓ²¼þµ÷ÊÔ¡¢Èí¼þ¿ª·¢¡¢Á¢ÒìÉè¼ÆÖÐÓÎÈÐÓÐÓà¡£ÄãÖ»ÐèÕÆÎÕ»ù±¾µÄmap()º¯Êý£¬²¢Á¬ÏµºÏÀíµÄµ÷ÊÔ¼¼ÇÉ£¬¾ÍÄÜʵÏÖһϵÁÐÁîÈËÔÞ̾µÄ×Ô¶¯»¯ºÍÖÇÄÜ»¯Ó¦Óá£
ÏÂÊÖÊÔÊÔ°É£¡Ê¹ÓÃArduinoµÄÓ³É书Ч£¬°ÑÄãµÄ´´ÒâÄð³ÉÏÖʵ£¬¾ÍÏñ¿ªÆôÒ»ÉÈͨÍùδÀ´µÄ´óÃÅ¡£Ò»Ö±Ì½Ë÷¡¢Ò»Ö±ÓÅ»¯£¬µç×ÓÉè¼ÆµÄ¾«²ÊÌìÏÂÆÚ´ýÄãÈ¥¾ò¿Í£¡