Arduino

Автоматическая дверь в курятник

Автоматическая дверь в курятнике значительно облегчает жизнь птицеводам. По крайне мере вечером не нужно идти закрывать курятник, да и утром можно поспать лишний часок.

Именно такую дверь и решил сделать мастер-самодельщик, а для ее изготовления он использовал следующие

Материалы и инструменты:
-Фоторезистор;
-Ардуино;
-Резисторы;
-Кнопочные переключатели;
-Шаговый двигатель;
-Солнечная панель;
-Повербанк;
-Макетная плата;
-Провода;
-Два блока;
-Веревка;
-Рым-болт;
-Вал с блоками;
-Противовес;

Шаг первый: Ардуино
Сначала мастер собирает схему, как на фото.

Дверь закрывается, когда на улице настают сумерки и открывается, когда встает солнце. Для принудительного закрытия/открытия мастер установил две кнопки.

После сборки схемы мастер скачивает библиотеки по этому адресу .
#include
#include
CheapStepper Stepper (8,9,10,11);
логическое moveClockwise = true;
const int ldrPin = A2;
const int OuvPin = 5;
const int FermPin = 6;
int x = 1;
const int pinReveil = 2;
const int pinReveil2 = 3;
const int pinReveil3 = 4;
const int pinReveil4 = 12;
В этом коде мастер устанавливает разъемы шагового двигателя, кнопок, фоторезистора и т.д.
Далее определяет контакты, которые будут получать информацию (от LDR и от кнопок). Х — это положение двери (1 = открыто, 0 = закрыто).
Ниже он устанавливает скорость шагового двигателя. Скорость выставляется между 1 и 8. 8 самая маленькая скорость.
void setup () {
pinMode (pinReveil, OUTPUT);
pinMode (pinReveil2, OUTPUT);
pinMode (pinReveil3, OUTPUT);
pinMode (pinReveil4, OUTPUT);
pinMode (ldrPin, INPUT);
pinMode (OuvPin, INPUT);
pinMode (FermPin, INPUT);
stepper.setRpm (1);
Serial.begin (9600);
Загружает код.
void loop()

digitalWrite(pinReveil,HIGH); // The pins is now +5V
digitalWrite(pinReveil2,HIGH);
digitalWrite(pinReveil3,HIGH);
digitalWrite(pinReveil4,HIGH);
delay(100);
digitalWrite(pinReveil,LOW); // The pin is now 0
digitalWrite(pinReveil2,LOW);
digitalWrite(pinReveil3,LOW);
digitalWrite(pinReveil4,LOW);

// Here that is what I was talking about : stimulating my powerbank so that I don't have to

// open it and solder things, or power my arduino with 3.6V.

if(digitalRead(OuvPin) == 1 ){
while ( digitalRead(OuvPin) == 1 ){
moveClockwise = true;
stepper.moveDegrees(moveClockwise, 1 );
}
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
x=1; // We consider that we will use this button only to put the door in full "open" position
}

// I just checked whether my 'open' button was used or not, and acted accordingly.

else if(digitalRead(FermPin) == 1 ){
while ( digitalRead(FermPin) == 1 ){
moveClockwise = false;
stepper.moveDegrees(moveClockwise, 1 );
}
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
x=0; // We consider that we will use this button only to put the door in full "closed" position
}

// Same here with closing button.

int ldrStatus = analogRead(ldrPin);
delay(500);

// I get the value of the ldr resistance, and let a delay to process the information.

if(ldrStatus > 150 && x==0){ // If my door is closed and light is enough
moveClockwise = true;
stepper.moveDegrees(moveClockwise,2500);
stepper.moveDegrees(moveClockwise,2500);
stepper.moveDegrees(moveClockwise,2500);
stepper.moveDegrees(moveClockwise,2500);
stepper.moveDegrees(moveClockwise,2000);
x=1;
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}

// I open my door if it's closed and if the threshold is reached ( you have to observe your chickens

// so that you know when they get in and out and adapt values accordingly.

else if (ldrStatus<6 && x==1) {
moveClockwise=false;
stepper.moveDegrees(moveClockwise,2500);
stepper.moveDegrees(moveClockwise,2500);
stepper.moveDegrees(moveClockwise,2500);
stepper.moveDegrees(moveClockwise,2500);
stepper.moveDegrees(moveClockwise,2000);
x=0;
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
}

// same with closing

else {
for (int i=0; i<6;i++)
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF)

}

// If I'm not in those situations ( full day or night ), I just put my arduino in sleep mode

// to try to save energy.

}
Шаг второй: дверь
Далее мастер делает устанавливает систему блоков для поднятия двери. Шаговый двигатель и всю электронику, кроме солнечной панели, устанавливает внутри. Солнечную панель поместил в пластиковый контейнер и установил на крыше. По команде начинает работать шаговый двигатель и наматывает веревку на шкив — дверь открывается. Вечером двигатель начинает крутится в другую сторону и дверь закрывается. Продолжительность работы двигателя устанавливается опытным путем в зависимости от размеров двери и конструкции блока.

Источник

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть
Закрыть