Отчита непрестанно данните от аналогов вход, калкулира средната стойност и я подава на компютъра. Демонстрира употребата на масиви (arrays).
За този пример е необходим потенциометър свързан към аналогов входен пин 0.
Схема

Код
/* Izglajdane
* ------------
*
* Izglajda stojnosti kato izchislyava sredna stojnost na opredelen broj zamervaniya
*
* ot David A. Mellis (April 2007)
*
* bulgarski prevod ot Simeon Ianchev / Robotev.com (Septemvri 2009)
*/
/* opredelya broya na otchetenite stoinosti, koito shte se izglajdat
kolkoto e po-golya broya tolkova po-izgladeni shte sa rezultatite
obache i rezultata shte se generira po-bavno
izpolzvaite #define za da zadadete goleminata na masiva ot otcheteni stojnosti
*/
#define NUMREADINGS 10
int readings[NUMREADINGS]; // promenliva za broya otchitaniya
int index = 0; // promenliva za poreden nomer na poslednoto otchitane
int total = 0; // promenliva za obshtiya broj otchitaniya
int average = 0; // promenliva za srednata, izgladena stojnost
int inputPin = 0; // pin za potenciometara
void setup()
{
Serial.begin(9600); // zapochva serijna komunikaciya s kompyutara sas
//skorost ot 9600 bita v sekunda
for (int i = 0; i < NUMREADINGS; i++)
readings[i] = 0; // nulira vsichki otcheteni stojnosti
}
void loop()
{
total -= readings[index]; // izvajda poslednata otchetena stojnost
readings[index] = analogRead(inputPin); // otchita danni ot senzora...
total += readings[index]; // ...pribavya gi kam sbora...
index = (index + 1); // ...i preminava kam otchitane na sledvashta stojnost
if (index >= NUMREADINGS) // v kraya na masiva...
index = 0; // ...nulira
average = total / NUMREADINGS; // izchislyava srednata stojnost
Serial.println(average); // I ya izprashta kam kompyutera kato ASCII simvoli
}