Coroutine for lerping game objects scale from 0 to 0.5 in 4 second

As stated in question , I know that would be an easy task but I’m not getting hold of these coroutines business . I don’t know how to put up that lerps last parameter inside this coroutine .

public IEnumerator TunnelingColorsMaterial ( float delayTime,Transform circlesContainer)
	{

         float elapsedTime = 0;
		while (elapsedTime < delayTime)
		{

				for (int i = 0; i < circlesContainer.transform.childCount; i++) {

				circlesContainer.GetChild (i).transform.GetChild (3).localScale = Vector3.Lerp (circlesContainer.GetChild (0).transform.GetChild (3).localScale, new Vector3 (circleDiameterRequiredInInchesforLargestCircle, circleDiameterRequiredInInchesforLargestCircle, circleDiameterRequiredInInchesforLargestCircle), elapsedTime/4);

				}
			elapsedTime += Time.deltaTime;
			yield return null;

			}

	}

This is what i have tried but it gets completed in almost 2 seconds

Is this what you mean?

float currentTime = 0f;
float timeToComplete = 1f;     // this would take 1 second to finish
float startValue = 0f;
float endValue = 0.2f;
float TARGET;                  //this is the value that you want to lerp

IEnumerator StartLerp(){
       currentTime += Time.deltaTime;
       TARGET = Mathf.Lerp (startValue, endValue, currentTime / timeToComplete);
}