Привет форумчане. Хотелось бы поделиться своим проектом.
Задумал сделать вытяжку в ванной с применением ардуины, но что бы было интересней добавил к часто повторяемым проектам, регулировку скорости вентилятора 220 вольт.
https://www.youtube.com/watch?v=zRnoZTSYxf4
Не ругайтесь пожалуйста что нет схемы. Рисовать схемы для меня просто ад!! Но если кому то ну прям очень нужно, то пишите я заморочусь.
001 | #include <iarduino_DHT.h> // подключаем библиотеку для работы с датчиком DHT |
002 | iarduino_DHT sensor(12); |
003 | #define dimPin 3 // пин оптопары затвора симистора |
004 | #define zeroPin 2 // пин оптопары определяющию зиро крос |
005 | #include <CyberLib.h> // шустрая библиотека для таймера |
006 | volatile int tic, Dimmer; |
007 | #define knopka1 10 // Кнопка скорости |
008 | #define knopka2 11 // Кнопка режима |
009 | #define NOGA1 4 // Ноги экрана |
037 | byte numberSegments[15] = { |
038 | 0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110, 0b01101101, |
039 | 0b01111101, 0b00000111, 0b01111111, 0b01101111, 0b00000000, 0b11100011, |
040 | 0b11011100, 0b01101101, 0b01110110 |
047 | pinMode(dimPin, OUTPUT); |
048 | digitalWrite(dimPin, 0); |
049 | pinMode(zeroPin, INPUT); |
050 | attachInterrupt(0, detect_up, FALLING); |
051 | StartTimer1(timer_interrupt, 40); |
054 | pinMode(knopka1, INPUT); |
055 | pinMode(knopka2, INPUT); |
056 | pinMode(NOGA1, OUTPUT); |
057 | pinMode(NOGA2, OUTPUT); |
058 | pinMode(NOGA3, OUTPUT); |
059 | pinMode(NOGA4, OUTPUT); |
060 | pinMode(NOGA5, OUTPUT); |
061 | pinMode(NOGAa, OUTPUT); |
062 | pinMode(NOGAb, OUTPUT); |
063 | pinMode(NOGAc, OUTPUT); |
064 | pinMode(NOGAd, OUTPUT); |
065 | pinMode(NOGAe, OUTPUT); |
066 | pinMode(NOGAf, OUTPUT); |
067 | pinMode(NOGAg, OUTPUT); |
068 | pinMode(NOGAt, OUTPUT); |
073 | unsigned long r = millis(); |
074 | if (r - p > i & Z == 1){ |
075 | switch (sensor.read()){ |
076 | case DHT_OK:h = sensor.hum; break ;} |
080 | if (!digitalRead(knopka1)) { |
087 | if (!digitalRead(knopka2)) { |
096 | if (Y == 0){ SH1 = 0;SH2 = 0; Dimmer = 255;} |
097 | if (Y == 1){ SH1 = 2;SH2 = 5; Dimmer = 140;} |
098 | if (Y == 2){ SH1 = 5;SH2 = 0; Dimmer = 120;} |
099 | if (Y == 3){ SH1 = 7;SH2 = 5; Dimmer = 100;} |
100 | if (Y == 4){ SH1 = 9;SH2 = 9; Dimmer = 10;} |
107 | if (h < 50){Dimmer = 255;} |
108 | if (h > 50 & h < 60){Dimmer = 140;} |
109 | if (h > 60 & h < 70){Dimmer = 120;} |
110 | if (h > 70 & h < 80){Dimmer = 100;} |
111 | if (h > 80){Dimmer = 10;} |
114 | digitalWrite(NOGA1, LOW); |
115 | digitalWrite(NOGA2, HIGH); |
116 | digitalWrite(NOGA3, HIGH); |
117 | digitalWrite(NOGA4, HIGH); |
118 | digitalWrite(NOGA5, HIGH); |
120 | digitalWrite(NOGAa, bitRead(numberSegments[SH1], 0)); |
121 | digitalWrite(NOGAb, bitRead(numberSegments[SH1], 1)); |
122 | digitalWrite(NOGAc, bitRead(numberSegments[SH1], 2)); |
123 | digitalWrite(NOGAd, bitRead(numberSegments[SH1], 3)); |
124 | digitalWrite(NOGAe, bitRead(numberSegments[SH1], 4)); |
125 | digitalWrite(NOGAf, bitRead(numberSegments[SH1], 5)); |
126 | digitalWrite(NOGAg, bitRead(numberSegments[SH1], 6)); |
127 | digitalWrite(NOGAt, bitRead(numberSegments[SH1], 7)); |
129 | digitalWrite(NOGAa, bitRead(numberSegments[10], 0)); |
130 | digitalWrite(NOGAb, bitRead(numberSegments[10], 1)); |
131 | digitalWrite(NOGAc, bitRead(numberSegments[10], 2)); |
132 | digitalWrite(NOGAd, bitRead(numberSegments[10], 3)); |
133 | digitalWrite(NOGAe, bitRead(numberSegments[10], 4)); |
134 | digitalWrite(NOGAf, bitRead(numberSegments[10], 5)); |
135 | digitalWrite(NOGAg, bitRead(numberSegments[10], 6)); |
136 | digitalWrite(NOGAt, bitRead(numberSegments[10], 7)); |
138 | digitalWrite(NOGA1, HIGH); |
139 | digitalWrite(NOGA2, LOW); |
140 | digitalWrite(NOGA3, HIGH); |
141 | digitalWrite(NOGA4, HIGH); |
142 | digitalWrite(NOGA5, HIGH); |
144 | digitalWrite(NOGAa, bitRead(numberSegments[SH2], 0)); |
145 | digitalWrite(NOGAb, bitRead(numberSegments[SH2], 1)); |
146 | digitalWrite(NOGAc, bitRead(numberSegments[SH2], 2)); |
147 | digitalWrite(NOGAd, bitRead(numberSegments[SH2], 3)); |
148 | digitalWrite(NOGAe, bitRead(numberSegments[SH2], 4)); |
149 | digitalWrite(NOGAf, bitRead(numberSegments[SH2], 5)); |
150 | digitalWrite(NOGAg, bitRead(numberSegments[SH2], 6)); |
151 | digitalWrite(NOGAt, bitRead(numberSegments[SH2], 7)); |
153 | digitalWrite(NOGAa, bitRead(numberSegments[10], 0)); |
154 | digitalWrite(NOGAb, bitRead(numberSegments[10], 1)); |
155 | digitalWrite(NOGAc, bitRead(numberSegments[10], 2)); |
156 | digitalWrite(NOGAd, bitRead(numberSegments[10], 3)); |
157 | digitalWrite(NOGAe, bitRead(numberSegments[10], 4)); |
158 | digitalWrite(NOGAf, bitRead(numberSegments[10], 5)); |
159 | digitalWrite(NOGAg, bitRead(numberSegments[10], 6)); |
160 | digitalWrite(NOGAt, bitRead(numberSegments[10], 7)); |
162 | digitalWrite(NOGA1, HIGH); |
163 | digitalWrite(NOGA2, HIGH); |
164 | digitalWrite(NOGA3, LOW); |
165 | digitalWrite(NOGA4, HIGH); |
166 | digitalWrite(NOGA5, HIGH); |
168 | digitalWrite(NOGAa, bitRead(numberSegments[11], 0)); |
169 | digitalWrite(NOGAb, bitRead(numberSegments[11], 1)); |
170 | digitalWrite(NOGAc, bitRead(numberSegments[11], 2)); |
171 | digitalWrite(NOGAd, bitRead(numberSegments[11], 3)); |
172 | digitalWrite(NOGAe, bitRead(numberSegments[11], 4)); |
173 | digitalWrite(NOGAf, bitRead(numberSegments[11], 5)); |
174 | digitalWrite(NOGAg, bitRead(numberSegments[11], 6)); |
175 | digitalWrite(NOGAt, bitRead(numberSegments[11], 7)); |
177 | digitalWrite(NOGAa, bitRead(numberSegments[10], 0)); |
178 | digitalWrite(NOGAb, bitRead(numberSegments[10], 1)); |
179 | digitalWrite(NOGAc, bitRead(numberSegments[10], 2)); |
180 | digitalWrite(NOGAd, bitRead(numberSegments[10], 3)); |
181 | digitalWrite(NOGAe, bitRead(numberSegments[10], 4)); |
182 | digitalWrite(NOGAf, bitRead(numberSegments[10], 5)); |
183 | digitalWrite(NOGAg, bitRead(numberSegments[10], 6)); |
184 | digitalWrite(NOGAt, bitRead(numberSegments[10], 7)); |
187 | digitalWrite(NOGA1, HIGH); |
188 | digitalWrite(NOGA2, HIGH); |
189 | digitalWrite(NOGA3, HIGH); |
190 | digitalWrite(NOGA4, LOW); |
191 | digitalWrite(NOGA5, HIGH); |
193 | digitalWrite(NOGAa, bitRead(numberSegments[12], 0)); |
194 | digitalWrite(NOGAb, bitRead(numberSegments[12], 1)); |
195 | digitalWrite(NOGAc, bitRead(numberSegments[12], 2)); |
196 | digitalWrite(NOGAd, bitRead(numberSegments[12], 3)); |
197 | digitalWrite(NOGAe, bitRead(numberSegments[12], 4)); |
198 | digitalWrite(NOGAf, bitRead(numberSegments[12], 5)); |
199 | digitalWrite(NOGAg, bitRead(numberSegments[12], 6)); |
200 | digitalWrite(NOGAt, bitRead(numberSegments[12], 7)); |
202 | digitalWrite(NOGAa, bitRead(numberSegments[10], 0)); |
203 | digitalWrite(NOGAb, bitRead(numberSegments[10], 1)); |
204 | digitalWrite(NOGAc, bitRead(numberSegments[10], 2)); |
205 | digitalWrite(NOGAd, bitRead(numberSegments[10], 3)); |
206 | digitalWrite(NOGAe, bitRead(numberSegments[10], 4)); |
207 | digitalWrite(NOGAf, bitRead(numberSegments[10], 5)); |
208 | digitalWrite(NOGAg, bitRead(numberSegments[10], 6)); |
209 | digitalWrite(NOGAt, bitRead(numberSegments[10], 7)); |
211 | digitalWrite(NOGA1, HIGH); |
212 | digitalWrite(NOGA2, HIGH); |
213 | digitalWrite(NOGA3, HIGH); |
214 | digitalWrite(NOGA4, HIGH); |
215 | digitalWrite(NOGA5, LOW); |
217 | digitalWrite(NOGAa, bitRead(numberSegments[SH3], 0)); |
218 | digitalWrite(NOGAb, bitRead(numberSegments[SH3], 1)); |
219 | digitalWrite(NOGAc, bitRead(numberSegments[SH3], 2)); |
220 | digitalWrite(NOGAd, bitRead(numberSegments[SH3], 3)); |
221 | digitalWrite(NOGAe, bitRead(numberSegments[SH3], 4)); |
222 | digitalWrite(NOGAf, bitRead(numberSegments[SH3], 5)); |
223 | digitalWrite(NOGAg, bitRead(numberSegments[SH3], 6)); |
224 | digitalWrite(NOGAt, bitRead(numberSegments[SH3], 7)); |
226 | digitalWrite(NOGAa, bitRead(numberSegments[10], 0)); |
227 | digitalWrite(NOGAb, bitRead(numberSegments[10], 1)); |
228 | digitalWrite(NOGAc, bitRead(numberSegments[10], 2)); |
229 | digitalWrite(NOGAd, bitRead(numberSegments[10], 3)); |
230 | digitalWrite(NOGAe, bitRead(numberSegments[10], 4)); |
231 | digitalWrite(NOGAf, bitRead(numberSegments[10], 5)); |
232 | digitalWrite(NOGAg, bitRead(numberSegments[10], 6)); |
233 | digitalWrite(NOGAt, bitRead(numberSegments[10], 7)); |
238 | void timer_interrupt() { |
241 | digitalWrite(dimPin, 1); |
247 | attachInterrupt(0, detect_down, RISING); |
253 | digitalWrite(dimPin, 0); |
254 | attachInterrupt(0, detect_up, FALLING); |
DHT11? сетевой вентелятор диммером?
скорость там изменять нельзя, точнее можно изменением частоты в небольших пределах, но в целом, взять вентель от компа на 12 вольт, както логичнее.
ну а DHT, лучше заранее сменить на чтото вроде sht20.
Не ругайтесь пожалуйста что нет схемы. Рисовать схемы для меня просто ад!!
Не буду ругаться, что нет схемы. Ругнусь, что нет описания. Что регулирует, в каких диапазонах, основные элементы ...
ТС, ты программированию не у индусов учился?
ТС, ты программированию не у индусов учился?
ну вот, опять, в кои-то веки появился TC пишущий латиницей на понятном русском языке и, ...облом )))
З
DHT11? сетевой вентелятор диммером?
скорость там изменять нельзя, точнее можно изменением частоты в небольших пределах
DTH11 понятно что чушь не сусветная, просто попался под руку. А сетевой вентилятор диммером почему нет? Ведь все получилось. Я видел похожие схемы и управление на очень брендовых системах. У меня пылесос на такой же схеме, с изменением скорости мотора, хотя могу ошибаться, если хотите сниму осцифолограмму с семистора пылесоса. А вон возмите плату управления воротами, там точно такая же схема, так вообще для трехфазного двигателя с конденцатором, хотя в их схему мне слабо вериться.
ТС, ты программированию не у индусов учился?
Неее я вообще не когда не учился программированию. Честно!! Объясните пожалуйста что не так???
Я видел похожие схемы и управление на очень брендовых системах. У меня пылесос на такой же схеме, с изменением скорости мотора,
ага, и в дрели еще... там двиг коллекторный.
хотя возможно в том, чтото другое, а вообще они только частотой управляются, в небольших приделах.
Я видел похожие схемы и управление на очень брендовых системах. У меня пылесос на такой же схеме, с изменением скорости мотора,
ага, и в дрели еще... там двиг коллекторный.
хотя возможно в том, чтото другое, а вообще они только частотой управляются, в небольших приделах.
Ну а если глушить симистором полуволны через одну (не так как в коде) получиться 25 герц, или это так не сработает??
Если конденсатор внутри вытяжки есть, то можно им поиграться - мощность падает и вентиль просто не разгоняется до максимальных оборотов, чисто по шуму этого достаточно должно быть, я у себя так сделал (сами обороты может и не сильно меняются, но жужжит заметно тише). Ну а потом пару конденсаторов, пару релюшек... ) А потом в 3д принтерах, например, тоже ведь применяют вентиляторы, которые не предназначены для управления оборотами, но тем не менее управляют тупо ШИМом и работает.
Ну а если глушить симистором полуволны через одну (не так как в коде) получиться 25 герц