Контролери > Ардуино (Arduino)
помощ arduino с бутон и реле
lz1iko:
Здравейте моля за малко помощ
трябва да пусна едно ардуино уно което да управлява 3 релета
идеята е като натисна бутона да се включи реле 1 и да стои включено 2 минути след което само (без натискане на бутон) да изключи
реле 2 трябва да генерира малък импулс на втората сек след това да изчака 3 сек и пак да генерира импулс и едновременно с това да се генерира импулс на реле 3
проблема е че не мога да накарам реле 1 да е включено постоянно и да гасне след 2 мин
Ще бъда много благодарен ако ми помогне някой с програмирането
nunep:
loop()
{
if (buton = natisnat)
{
digitaloutput( rele1, ON ); //vkliu4va rele 1
delay(120000); // 4aka 2 min
digitaloutput( rele1, OFF); // izkliu4va rele 1
delay(2000); // 4aka 2 sekundi
digitaloutput( rele2, ON ); //vkliu4va rele 2
delay(20); // kratuk impuls
digitaloutput( rele2, OFF); // izkliu4va rele 2
delay(3000) // 4aka 3 sekundi
digitaloutput( rele2, ON ); //vkliu4va rele 2
digitaloutput( rele3, ON ); //vkliu4va rele 3
delay(20); // kratuk impuls
digitaloutput( rele2, OFF); // izkliu4va rele 2
digitaloutput( rele3, OFF); // izkliu4va rele 3
}
}
lz1iko:
много благодаря
ще го пробвам и при първа възможност ще го пробвам
lz1iko:
ok
Пробвах но нещо явно греша
написах следната програма но нищо не се случи
моля за малко помощ
int rele1 = 13 ;
int rele2 = 12 ;
int rele3 = 11 ;
int buton = 8;
boolean ON = HIGH;
boolean OFF = LOW;
void setup ()
{
pinMode(buton, INPUT);
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
}
void loop()
{
digitalRead(buton);
if (buton == HIGH ) //natisnat buton
{
digitalWrite(rele1,ON); //vkliu4va rele 1
delay(120000); // 4aka 2 min
digitalWrite(rele1,OFF); // izkliu4va rele 1
delay(2000); // 4aka 2 sekundi
digitalWrite( rele2, ON ); //vkliu4va rele 2
delay(20); // kratuk impuls
digitalWrite( rele2, OFF); // izkliu4va rele 2
delay(3000); // 4aka 3 sekundi
digitalWrite(rele2, ON ); //vkliu4va rele 2
digitalWrite(rele3, ON ); //vkliu4va rele 3
delay(20); // kratuk impuls
digitalWrite(rele2, OFF); // izkliu4va rele 2
digitalWrite(rele3, OFF); // izkliu4va rele 3
}
}
lz1iko:
След Лека преработка програмата изглежда така
int rele1 = 13 ;
int rele2 = 12 ;
int rele3 = 11 ;
int inpin = 8;
int ON = HIGH;
int OFF = LOW;
int val = 0;
void setup ()
{
pinMode(inpin, INPUT);
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
}
void loop()
{
val = digitalRead(inpin);
if (val == HIGH) {
//digitalWrite(ledPin, LOW
// if (buton == HIGH ) //natisnat buton
digitalWrite(rele1,ON); //vkliu4va rele 1
delay(60000); // 4aka 1 min
digitalWrite(rele1,OFF); // izkliu4va rele 1
delay(2000); // 4aka 2 sekundi
digitalWrite( rele2, ON ); //vkliu4va rele 2
delay(220); // kratuk impuls
digitalWrite( rele2, OFF); // izkliu4va rele 2
//delay(3000); // 4aka 3 sekundi
digitalWrite(rele2, ON ); //vkliu4va rele 2
digitalWrite(rele3, ON ); //vkliu4va rele 3
delay(220); // kratuk impuls
digitalWrite(rele2, OFF); // izkliu4va rele 2
digitalWrite(rele3, OFF); // izkliu4va rele 3
}
}
но за съжаление пак не е това което ми трябва
идеята е реле 1 да е включено постоянно а реле 2 и 3 да изпълняват функциите си докато реле 1 е включено
Моля за помощ
Навигация
[0] Списък на темите
Премини на пълна версия