//*************************************
// ATtiny202 project
// CPR timing assist 110/min
// programmd with Copilot
// XRQTechLab 2024.08
//*************************************

/ プロトタイプ宣言
void startTone(int pin, int frequency);
void stopTone(int pin);

// ピンの定義
const int ledPin = 2; // LEDを接続するピン
const int piezoPin = 3; // ピエゾ素子を接続するピン

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(piezoPin, OUTPUT);
}

void loop() {
for (int i = 0; i < 110; i++) {
digitalWrite(ledPin, HIGH); // LEDを点灯
startTone(piezoPin, 800); // ピエゾ素子で800Hzの音を鳴らす
delay(50); // 50ミリ秒間待機
digitalWrite(ledPin, LOW); // LEDを消灯
stopTone(piezoPin); // ピエゾ素子の音を止める
delay(495); // 495ミリ秒間待機
}
//delay(1000); // 1分間のサイクルが終わった後、1秒間待機
}

void startTone(int pin, int frequency) {
int period = 1000000L / frequency;
int pulse = period / 2;
pinMode(pin, OUTPUT);
for (int i = 0; i < 50; i++) {
digitalWrite(pin, HIGH);
delayMicroseconds(pulse);
digitalWrite(pin, LOW);
delayMicroseconds(pulse);
}
}

void stopTone(int pin) {
digitalWrite(pin, LOW);
}