Совсем недавно присоединился к Ардуино-мучителям. Заинтересовал проект Flprog.
Поставленная задача автоматизация ворот. Работали ворота у меня с вот этим скетчем
Код: Выделить всё
int A_RelPin = 12; // Подключаем реле 1 к порту 12
int LedPin = 13; // Подключаем светодиод СТОП к порту 13
int B_RelPin = 11; // Подключаем реле 2 к порту 11
int ButPin = 10; // Подключаем кнопку к выходу 10
int limit_switch_A = 9; // Концевой выключатель А
int limit_switch_B = 8; // Концевой выключатель В
int flag = 0; // Флаг состояния
int regim = 0; // Переключалка
void setup()
{
pinMode(A_RelPin, OUTPUT);
pinMode(LedPin, OUTPUT);
pinMode(B_RelPin, OUTPUT);
pinMode(limit_switch_A, INPUT);
pinMode(limit_switch_B, INPUT);
}
void loop()
{
if(digitalRead(ButPin) == HIGH && flag == 0)
{
delay(300); //Подавление дребезга
regim ++;
flag = 1;
if(regim > 3) // Если номер режима превышает требуемого
{ // то отсчет начинается с нуля
regim = 0;
}
}
if(digitalRead(ButPin) == LOW && flag == 1)
{
flag = 0;
}
// ======= Вполняем задачу при выборе режима =======
// РЕЖИМ 0: OFF
if(regim == 0)
{
digitalWrite(A_RelPin, HIGH);
digitalWrite(LedPin, HIGH);
digitalWrite(B_RelPin, HIGH);
}
// РЕЖИМ 1: Открытие Ворот
if(regim == 1)
{
if (digitalRead (limit_switch_A) == LOW) // Опрос концевика А
{
regim = 2;
}
digitalWrite(A_RelPin, LOW);
digitalWrite(LedPin, LOW);
digitalWrite(B_RelPin, HIGH);
}
// РЕЖИМ 2: СТОП
if(regim == 2)
{
digitalWrite(A_RelPin, HIGH);
digitalWrite(LedPin, HIGH);
digitalWrite(B_RelPin, HIGH);
}
// РЕЖИМ 3: Закрытие Ворот
if(regim == 3)
{
if (digitalRead (limit_switch_ <img src="/.s/sm/1/cool.gif" border="0" align="absmiddle" alt="cool" /> == LOW) // Опрос концевика В
{
regim = 0;
}
digitalWrite(A_RelPin, HIGH);
digitalWrite(LedPin, LOW);
digitalWrite(B_RelPin, LOW);
}
}
Прикладываю то что у меня получилось, не могу понять что не так со всем этим делом.
Думал переписать чужую програмку написанную для программируемого реле Овен, но не нашёл в Flprog блок НЕ и создать как не знаю
Может есть у кого нибудь готовый блок НЕ?