//202401775 박상명
const int potentiometerpin = A0; //가변 저항에 연결된 핀
const float Min = 1.0; // 최소 진폭 설정 소숫점 사용으로 float 사용
const float Max = 10.0; // 최대 진폭 설정 같은 맥락
const int a = 1000; // 사인 함수의 주기 설정 1초에 한 주기를 반복하도록 변수 지정
const float b = 10; // 사인 그래프의 곡선 해상도를 시간 단위로 지정 (그래프의 주기를 빠르게 할 수 있음)
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); // 시리얼 통신 시작
}
void loop() {
// put your main code here, to run repeatedly:
float c = map(analogRead(potentiometerpin), 0 , 1023, Min, Max); // c에 가변 저항 값을 지정하고 그것을 진폭으로 변환
for(float t = 0; t < a; t += b) { // 반복문을 활용하여 주기 동안에 반복할 수 있게 시간 t에 해상도를 지속적으로 더해 주기를 벗어 날 때까지 반복한다.
float sine = c * sin(2 * PI * t / a); // 사인함수를 정의하여 계산한다. 시간/주기를 2파이로 곱해 사인 그래프 표현
Serial.println(sine); //시리얼 모니터에 사인 함수 표현
delay(0.01); // 시간 설정 빠른 변화를 위해 0.01로 설정
}
}