//ver 1.2
#include <EEPROM.h>
int valBut = 0; // Задаем переменную, для счетчика
long previousMillis = 0; // Зададим начальное значение для счетчика millis
long TimePush = 1000; // Время нажатия на кнопку
int schet = 0;
int knopka = 0;
int valBut2 = 0; // тоже для второй кнопки
long previousMillis2 = 0;
long TimePush2 = 1000;
int schet2 = 0;
int knopka2 = 0;
int value;
int rejim = 1; // режим работы мафон=1/круиз=2
int storona = 1; // какая сторона используется для круиза 1=лево 2=право
int zvuk;
/////////////////////////////////значения кнопок
int kn1 = 153; //Seek+
int kn2 = 308; //Seek-
int kn3 = 457; //Mode
int kn4 = 555; //Mute
int kn5 = 652; //Vol+
int kn6 = 737; //Vol-
void setup() {
/////////////////////////////////задаем пины
pinMode(2, OUTPUT); //seek+
pinMode(3, OUTPUT); //seek-
pinMode(4, OUTPUT); //mode
pinMode(5, OUTPUT); //mute
pinMode(6, OUTPUT); //vol+
pinMode(7, OUTPUT); //vol-
pinMode(9, OUTPUT); //on/off
pinMode(10, OUTPUT); //res+
pinMode(11, OUTPUT); //res-
pinMode(12, OUTPUT); //звук
value = analogRead(0); //если при зажигании зажать Mute
if (value > 553 && value < 557)
{
zvuk = EEPROM.read(1);
if (zvuk != 0 && zvuk != 1) EEPROM.write(1, 1);
if (zvuk == 0)
{
EEPROM.write(1, 1); // включаем звук если выключен (одиночный сигнал)
tone(12, 1000);
delay(100);
noTone(12);
}
else
{
EEPROM.write(1, 0); // иначе выключаем звук (двойной сигнал)
tone(12, 1000);
delay(100);
noTone(12);
tone(12, 1000);
delay(100);
noTone(12);
}
}
zvuk = EEPROM.read(1);
// Serial.println (zvuk);
}
void loop() {
value = analogRead(0);
//Serial.println (value);
///////////////////////////////////////////////////////////////////////
if (value > kn1-2 && value < kn1+2)
{
if (rejim == 2 && storona == 2)
{
Serial.println ("res+");
digitalWrite(10, HIGH); //res+
delay (200);
digitalWrite(10, LOW);
}
else
{
Serial.println ("seek+");
digitalWrite(2, HIGH); //иначе seek+
delay (200);
digitalWrite(2, LOW);
}
}
////////////////////////////////////////////////////////////////////////////
if (value > kn2-2 && value < kn2+2)
{
if (rejim == 2 && storona == 2)
{
Serial.println ("res-");
digitalWrite(11, HIGH); //res-
delay (200);
digitalWrite(11, LOW);
}
else
{
Serial.println ("seek-");
digitalWrite(3, HIGH); //иначе seek-
delay (200);
digitalWrite(3, LOW);
}
}
//////////////////////////////////////////////////////////////////////////////////
if (value > kn3-2 && value < kn3+2)
{
if (millis() - previousMillis >= 1)
{
previousMillis = millis();
valBut++;
schet = 1;
}
}
else
{
schet = 0;
}
if (valBut >= TimePush)
{
Serial.println ("perekluchenie");
if (rejim == 1 || rejim == 2 && storona == 1) //если круиз уже включен на другой стороне или выключен
{
rejim = 2; //включаем и устанавливаем эту сторону
storona = 2;
if (zvuk == 1)
{
tone(12, 2000);
delay(100);
noTone(12);
}
}
else
{
rejim = 1; //иначе выключаем
if (zvuk == 1)
{
tone(12, 2000);
delay(100);
noTone(12);
tone(12, 2000);
delay(100);
noTone(12);
}
}
knopka = 1;
valBut = 0;
}
if (valBut > 50 && schet == 0)
{
if (knopka != 1) {
if (rejim == 2 && storona == 2)
{
digitalWrite(9, HIGH); // вкл/выкл круиз
delay (200);
digitalWrite(9, LOW);
Serial.println ("kruiz on\off");
}
else
{
digitalWrite(4, HIGH); //иначе жмем mode
delay (200);
digitalWrite(4, LOW);
Serial.println ("Mode");
}
valBut = 0;
} else {
valBut = 0;
knopka = 0;
}
}
/////////////////////////////////////////////////////////////////////////////////////
if (value > kn4-2 && value < kn4+2)
{
if (millis() - previousMillis2 >= 1)
{
previousMillis2 = millis();
valBut2++;
schet2 = 1;
}
}
else
{
schet2 = 0;
}
if (valBut2 >= TimePush2)
{
Serial.println ("perekluchenie");
if (rejim == 1 || rejim == 2 && storona == 2)
{
rejim = 2;
storona = 1;
if (zvuk == 1)
{
tone(12, 2000);
delay(100);
noTone(12);
}
}
else
{
rejim = 1;
if (zvuk == 1)
{
tone(12, 2000);
delay(100);
noTone(12);
tone(12, 2000);
delay(100);
noTone(12);
}
}
knopka2 = 1;
valBut2 = 0;
}
if (valBut2 > 50 && schet2 == 0)
{
if (knopka2 != 1) {
if (rejim == 2 && storona == 1)
{
digitalWrite(9, HIGH); // вкл/выкл круиз
delay (200);
digitalWrite(9, LOW);
Serial.println ("kruise on\off");
}
else
{
digitalWrite(5, HIGH); //иначе жмем mute
delay (200);
digitalWrite(5, LOW);
Serial.println ("Mute");
}
valBut2 = 0;
} else {
valBut2 = 0;
knopka2 = 0;
}
}
////////////////////////////////////////////////////////////////////////////////////////
if (value > kn5-2 && value < kn5+2)
{
if (rejim == 2 && storona == 1)
{
Serial.println ("res+");
digitalWrite(10, HIGH); // res+
delay (200);
digitalWrite(10, LOW);
}
else
{
Serial.println ("vol+");
digitalWrite(6, HIGH); //иначе жмем vol+
delay (200);
digitalWrite(6, LOW);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
if (value > kn6-2 && value < kn6+2)
{
if (rejim == 2 && storona == 1)
{
Serial.println ("res-");
digitalWrite(11, HIGH); // res -
delay (200);
digitalWrite(11, LOW);
}
else
{
Serial.println ("vol-");
digitalWrite(7, HIGH); //иначе жмем vol-
delay (200);
digitalWrite(7, LOW);
}
}
}
Свернуть