ЖД шлагбаум на Arduino своими руками, управление с пульта
Питание 12В, логика на Arduino, привод шлагбаума - моторчик из cd-привода с резиновым пассиком из велошины, корпус - канализационные трубы 50мм, лампы галогенные по 10W, крепление - подставка для живой елки, звонок - катушка, втягивающая сердечник, который отпружинивая ударяет звонок.
#include IRremote.h
//#include IRremoteInt.h
IRrecv irrecv(11); //пин ИК приемника
decode_results results; //переменная где будет хр. результат
int motor1=3; //пин мотора 1
int motor2=4; //пин мотора 2
int pwm=5; //пин ШИМ
int buzz=6; //пин звонка
int white=7; //пин белой лампы
int red1=8; //пин красной лампы 1
int red2=9; //пин красной лампы 2
int switch1=10; //пин концевика на открытие
int switch2=12; //пин концевика на закрытие
int redlamp=red1; //пин активной красной лампы
void setup()
{
(); // Запускаем прием
pinMode(motor1,OUTPUT);
pinMode(motor2,OUTPUT);
pinMode(pwm,OUTPUT);
pinMode(buzz,OUTPUT);
pinMode(white,OUTPUT);
pinMode(red1,OUTPUT);
pinMode(red2,OUTPUT);
pinMode(switch1, INPUT_PULLUP); //HIGH-разомкнут, LOW-замкнут
pinMode(switch2, INPUT_PULLUP); //HIGH-разомкнут, LOW-замкнут
digitalWrite(motor1,LOW);
digitalWrite(motor2,LOW);
digitalWrite(pwm,LOW);
digitalWrite(buzz,LOW);
digitalWrite(white,LOW);
digitalWrite(red1,LOW);
digitalWrite(red2,LOW);
}
void buzz_and_redlight()
{
digitalWrite(redlamp,HIGH);
digitalWrite(buzz,HIGH);
delay(50);
digitalWrite(buzz,LOW);
delay(200);
digitalWrite(buzz,HIGH);
delay(50);
digitalWrite(buzz,LOW);
delay(200);
digitalWrite(redlamp,LOW);
if (redlamp==red1) {redlamp=red2} else {redlamp=red1} //смена активной красной лампы
}
void loop()
{
//открытие шлагбаума
digitalWrite(motor1,HIGH); //поднимаем шлагбаум
digitalWrite(motor2,LOW);
while (digitalRead(switch1) == HIGH) //пока не сработает концевик мигаем красными и звеним
{
buzz_and_redlight();
if ((&results)) {goto closing;} //прерывание с пульта
}
digitalWrite(motor1,LOW); //останавливаем двигатель
digitalWrite(white,HIGH); //зажигаем белый
while (!(&results)){} //ждем команды с пульта
digitalWrite(white,LOW); //гасим белый
//закрытие шлагбаума
closing:
();
digitalWrite(motor1,LOW);
digitalWrite(motor2,HIGH); //опускаем шлагбаум
while (!(&results)) //пока не будет команды с пульта мигаем красными и звеним
{
buzz_and_redlight();
if (digitalRead(switch2) == LOW) {digitalWrite(motor2,LOW);} //если сработал концевик останавливаем двигатель
}
();
}
3 views
6
1
1 year ago 00:20:23 1
Дом под тапочки| 145 кв.м | Газ | г.Ломоносов | ИЖС
1 year ago 00:35:31 1
Домик Маши из мультфильма “Маша и Медведь“ / DIY
1 year ago 00:07:36 1
Безбашенные водители на жд переездах, правила не для них
1 year ago 00:04:27 1
Новосибирск 1986 год. ГАИ- На Закрытый шлагбаум. Социальная реклама, СССР.
1 year ago 00:02:50 1
Перепутала педали и вытолкнула Газель на ж/д пути. Real Video
1 year ago 00:01:00 7
В Архангельске началась перепланировка парковки у железнодорожного вокзала
1 year ago 00:01:40 2
😎 НАТУРАЛЬНЫЙ МАРКИЗ В КАВГЛОВСКИХ ХОЛМАХ | Тёплый пол | Качественная отделка | Крытая терраса |