Сейчас я расскажу Вам, как делал жалюзи на Ардуино с управлением через ИК пульт.
Основные детали автоматических жалюзей:
- Шаговый мотор 28BYJ-48;
- Шаговый драйвер;
- Ардуино (я использовал Nano).
Очередная моя задача это сделать умные жалюзи на Ардуино с автоматическим открыванием и закрыванием от телевизионного пульта.
Изготавливаем автоматические жалюзи на Ардуино от телевизионного пульта.
Приобрёл самую дешевую и простую жалюзи. По принципу действия они все одинаковы. Имеют функцию подниматься и опускаться. А также закрываться и открываться.
Удалил ненужные детали. Это свой редуктор для изменения угла открытия жалюзи.
Установил шаговый двигатель чтобы оси совпадали. И жестко закрепил.
Вот что получилось.
Схема подключения жалюзей на Ардуино:
Скэтч:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
// Автор неизвестен
// Изменения Гильманов ленар
// http://mikrotok.ru
// https://www.youtube.com/channel/UCzxHow9XAHPME_6KfzbILFg
#include «Stepper.h»
#include «IRremote.h»
/*—— Variables, Pins ——*/
#define STEPS 28 // Количество шагов на оборот внутреннего вала
int Steps2Take; // 2048 = 1 оборот
int receiver = 6; // Подключение ИК датчика на 6 пин
/*——( Declare objects )——*/
// Setup of proper sequencing for Motor Driver Pins
// In1, In2, In3, In4 in the sequence 1-3-2-4
Stepper small_stepper(STEPS, 8, 9, 10, 11);
IRrecv irrecv(receiver); // create instance of ‘irrecv’
decode_results results; // create instance of ‘decode_results’
void setup()
{
irrecv.enableIRIn(); // Start the receiver
}
void loop()
{
if (irrecv.decode(&results)) // have we received an IR signal?
{
switch(results.value)
{
case 0xA56113EC: // UP button pressed
small_stepper.setSpeed(700); //Максимум 700
Steps2Take = 512; // Rotate CW
small_stepper.step(Steps2Take);
delay(1000);
break;
case 0xA56109F6: // DOWN button pressed
small_stepper.setSpeed(700);
Steps2Take = —512; // Rotate CCW
small_stepper.step(Steps2Take);
delay(1000);
break;
case 0xA561639C: // UP button pressed
small_stepper.setSpeed(700);
Steps2Take = 1024; // Rotate CCW
small_stepper.step(Steps2Take);
delay(1000);
break;
case 0xA561A35C: // DOWN button pressed
small_stepper.setSpeed(700);
Steps2Take = —1024; // Rotate CCW
small_stepper.step(Steps2Take);
delay(1000);
break;
}
irrecv.resume(); // receive the next value
}
}/* —end main loop — */
|
Видео: Жалюжи на Ардуино.
Вариант жалюзей на Ардуино с солнечной панелью.
Последующем скэтч переделал и упростил. Установил солнечную панель на 5 вольт управление на ардуино.
Когда на улице солнечно жалюзи автоматически открываются чтобы свет падал в дом или в офис. А когда темнеет жалюзи закрываются.
Также вместо шагового двигателя установил обычную сервомашинку. Я рассчитал, чтобы жалюзи были закрыты и когда свет начинает попадать на панель жалюзи открываются на полную.
Эта солнечная панелька от фонарика. При полной мощности выдает 5 вольт. Я его засунул на аналоговый пин. Солнечный свет и солнечная панель играет роль подстроечного резистора. И соответственно меняет угол сервомашинки.
Как видите скэтч автономного жалюзи получился очень простеньким.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = 0; // вход 5 вольтовой солнечной панели панели
int val; // variable to read the value from the analog pin
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
val = analogRead(potpin); // Аналоговое значение переносим на сервопривод (value between 0 and 1023)
val = map(val, 0, 1023, 180, 0); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(150); // waits for the servo to get there
}
|
Не забываем делиться с друзьями и высказать свое мнение в комментариях.