Понять не смог, а после // описал попытку
#include <avr/sleep.h>
#include <mp3TF.h>
#include <SoftwareSerial.h>
mp3TF mp3tf = mp3TF();
int buttonPin1 = 7;
int buttonState1 = 0;
const int ledPin = 13;
int count = 0;
unsigned long myTimer1 = 0;
int F1 = 0;
int S1 = 1;
void setup () {
Serial.begin(9600);//установка соединения на скорости 9600
mp3tf.init (&Serial);
Serial.println("start-Siren");
pinMode(ledPin, OUTPUT);
pinMode(buttonPin1, INPUT);
digitalWrite(4, HIGH); // высокий сигнал на D4delay (5000);
myTimer1 = millis();
}
void loop (){
buttonState1 = digitalRead(buttonPin1);
if(buttonState1 == HIGH){ // пускай это HIGH тогда F1 = 1 S1 = 1
F1 = 1;
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
if (F1 == 1 && S1 == 1){
myTimer1 = millis(); // получим начальное время
S1 = 0; // тогда F1 = 1 S1 = 0
}
// пока это условие не достигло так как 1 сек не прошло
if (millis() - myTimer1 >= 1000){
F1 = 0;
S1 = 1;
if (count == 1){
mp3tf.play (1);
delay (3000);
}
if (count == 2){
mp3tf.play (2);
delay (3000);
}
if (count >= 3){
mp3tf.play (3);
delay (3000);
}
count = 0;
}
else{ // тогда зашли сюда
if (buttonState1 == HIGH){ // и так как выше принял «пускай это HIGH»
count = count + 1; // а тут оно всю 1 секунду будет +1?
delay (80); // при паузе 80, это то count достигнет 12 и зачем?
}
}
}
скетч вот
#include <avr/sleep.h>
#include <mp3TF.h>
#include <SoftwareSerial.h>
mp3TF mp3tf = mp3TF();
int buttonPin1 = 7;
int buttonState1 = 0;
const int ledPin = 13;
int count = 0;
unsigned long myTimer1 = 0;
int F1 = 0;
int S1 = 1;
void setup () {
Serial.begin(9600);//установка соединения на скорости 9600
mp3tf.init (&Serial);
Serial.println("start-Siren");
pinMode(ledPin, OUTPUT);
pinMode(buttonPin1, INPUT);
digitalWrite(4, HIGH); // высокий сигнал на D4delay (5000);
myTimer1 = millis();
}
void loop (){
buttonState1 = digitalRead(buttonPin1);
if(buttonState1 == HIGH){
F1 = 1;
digitalWrite(ledPin, HIGH);
}
else{
digitalWrite(ledPin, LOW);
}
if (F1 == 1 && S1 == 1){
myTimer1 = millis();
S1 = 0;
}
if (millis() - myTimer1 >= 1000){
F1 = 0;
S1 = 1;
if (count == 1){
mp3tf.play (1);
delay (3000);
}
if (count == 2){
mp3tf.play (2);
delay (3000);
}
if (count >= 3){
mp3tf.play (3);
delay (3000);
}
count = 0;
}
else{
if (buttonState1 == HIGH){
count = count + 1;
delay (80);
}
}
}