Прочитайте аналоговий вхід і зберігайте його безперервно. Якщо вимикач вимкнено, також запишіть значення у значення "заморозити":
void loop(){
int value, freeze;
value = analogRead(ANALOGPIN);
if( !digitalRead(SWITCHPIN) ){
freeze = value; //sw is off, upd freeze value
}
}
Це не враховує можливого підстрибування перемикача. Це може бути або не мати значення залежно від фактичної швидкості вибірки аналогового входу і того, що ви збираєтеся робити з замороженим виходом, оскільки відскакування перемикача буде коротшим, ніж людське сприйняття, але достатньо довго (можливо, 10 секунд) помічати і реагувати на зміни.