https://courses.grainger.illinois.edu/ece101/sp2025/lectures/101-019-sensing-part-1.pdf