IoT Workshop: Lab 3 - kontrollerande utgång med Input (3 / 6 steg)
Steg 3: Använda Pulse bredd Modulation (PWM)
Pulse bredd modulering (PWM) är en teknik för att simulera analoga värden på en digital pin. Det finns flera digitala pins på Arduino kort som stöder PWM beroende på styrelsen du använder. Den eller Yun vi använder i denna workshop stöder exempelvis 8-bitars (0-255) PWM på digital stift 3, 5, 6, 9, 10, 11 och 13 med funktionen analogWrite() .
PWM simulerar analoga data genom att skapa en fyrkantsvåg (i grunden upprepande växla mellan på och av) där 'på' tid varar pulse bredd. Om den kvadratiska våg har 50% puls bredd (mer känd som en arbetscykel), sedan är produktionen från det klämmer fast lika stora på och av. Om intermittensen är 25% blir utdata från stiftet på för endast en fjärdedel av intermittensen (omvänt det kommer att vara avstängd för tre gånger så länge det är på - 25% på 75% rabatt).
Eftersom tid Fönstren i en cykel är för snabb för det mänskliga ögat att uppfatta (ca 2 millisekunder på Arduino stiften som stöder PWM), i stället för orsakar en LED att strobe eller flimmer, verkar det helt enkelt vara mer eller mindre ljusa. Med hjälp av en 25% arbetscykel skulle LED vara på (hög output) för halva en millisekund och off (låg output) för 1.5 millisekunder som gör lampan verkar vara på 25% ljusstyrka. Så även om vi inte är verkligen skicka analoga data till en digital LED, använder vi PWM för att simulera effekten av analoga data.