Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

г0сть
2020-07-28 22:30:03
ян пише:

можно ли в  код за место реле воткнуть драйвер шаговика ну соответствеено сам шаговик

Это в смысле вместо relay написать shagovik? Можно, втыкайте.

ян
2020-07-28 21:38:07

no name можно ли в ваш код за место реле воткнуть драйвер шаговика ну соответствеено сам шаговик

Mold0vanin
2015-09-24 12:32:47
NoName пише:

тут главное не увлечься и не подвинуть с рынка 
http://www.aotewell.com/wp-content/uplo … S-LOGO.jpg

немцам тоже кушать  нужно )

не стоит так запугивать...немцев....В серьезных  организациях,  надзор не примет,  всякую самопальщину.  А дома лепить. можно все что угодно.

а по существу, найти язык лестничных  диаграмм, где то  болтался в сети, не знаю для ардуино есть,  думаю должен быть и собрать схему на нем(ней)

NoName
2015-08-20 09:38:26

state  переменная
teezy, базовый синтаксис, вы уж сами изучайте.

http://natalia.appmat.ru/c&c++/lezione1.php
http://younglinux.info/book/export/html/358
и  т.д.

teezy
2015-08-17 18:33:10

state и case для чего служит... neutral

NoName
2015-08-17 18:13:56

Бьярне Страуструп. Программирование: принципы и практика использования C++

но скорее всего - делайте больше устройств, получайте удовольствие от  разработки )  пытайтесь разобраться  в библиотеках что используете, они хорошо написаны, и обществом "вылизаны" )

а что непонятно?

teezy
2015-08-17 18:05:01

NoName, спасибо большое, Вам! Все работает! Скажите, пожалуйста, что мне почитать чтобы лучше разобраться в вашем коде (много незнакомого), а еще лучше объясните, если не сложно smile

NoName
2015-08-17 17:50:30

тут главное не увлечься и не подвинуть с рынка 
SIEMENS-PLC-SIEMENS-LOGO.jpg

немцам тоже кушать  нужно )

vvr
2015-08-17 17:22:57

я полностью согласен что в данном примере можно и с делеями работать.
но нужно двигаться дальше и изначально делать в "хорошем тоне" smile
да и о дребезге неплохо подумать

NoName
2015-08-17 17:15:11
int button1 = 4; // концевик №1
int button2 = 5; // концевик №2
int relay1 = 6; // реле №1
int relay2 = 7 // реле №2
int  state;

void setup() {
   pinMode(button1, INPUT);
   pinMode(button2, INPUT);
   pinMode(relay1, OUTPUT);
   pinMode(relay2, OUTOUT);

state = 0;
}
void loop()
{
	
  switch ( state )
  {
	default:
	case 0: 
		digitalWrite(relay1, HIGH);
	    state = 1;
		break;
		
	case 1:
   if (digitalRead(button1) == HIGH)    //если концевик сработал, то реле выключается, до его повторного запуска по кругу.
    {
        digitalWrite(relay1, LOW);
		delay(2000);                                //2 сек. задержки между переключениями реле.
		digitalWrite(relay2, HIGH);
	    state = 2;
	}
	break;
	
	case 2:
    if (digitalRead(button2) == HIGH)
     {
        digitalWrite(relay2, LOW);
		delay(2000);
	    state = 0;
	 }
	break;
  }
}
   
}

алгоритм линейный

насчет delay не согласен, в данном случае задержка не участвуют в анализе, и имеет право на жизнь
хотя да, не очень хороший тон )

vvr
2015-08-17 16:59:52

ваши делеи постоянно тормозят программу.
используйте millis()
при срабатывании концевика 1 запускаете таймер.
через 2 сек срабатывает реле 2 и таймер обнуляете.
делеи вообще лучше не применяйте.

teezy
2015-08-17 15:03:26

Добрый день!
Помогите, пожалуйста, с программированием. Вроде бы все просто, но никак не могу сделать правильно.
Есть 2 реле и 2 концевика.

Включается реле №1, потом через концевик №1 реле №1 выключается. Ждем 2 сек. включается реле №2, а потом через концевик №2 выключается. Программно набросал так, но это не правильно:(
Разбирался с прерываниями, но ничего толком не сообразил.


[== Undefined ==]
int button1 = 4; // концевик №1
int button2 = 5; // концевик №2
int relay1 = 6; // реле №1
int relay2 = 7 // реле №2
void setup() {
   pinMode(button1, INPUT);
   pinMode(button2, INPUT);
   pinMode(relay1, OUTPUT);
   pinMode(relay2, OUTOUT);
}
void loop(){
   digitalWrite(relay1, HIGH);
   if (digitalRead(button1) == HIGH)    //если концевик сработал, то реле выключается, до его повторного запуска по кругу.
     {
        digitalWrite(relay1, LOW);
     }
   delay(2000);                                //2 сек. задержки между переключениями реле.
   digitalWrite(relay2, HIGH);
   if (digitalRead(button2) == HIGH)
     {
        digitalWrite(relay2, LOW);
     }
   delay(2000);
}

Спасибо большое! smile

Підвал форуму