КАК СДЕЛАТЬ НОЧНИК НА ARDUINO [Уроки Ардуино #9]
HTML-код
- Опубликовано: 29 фев 2016
- В уроке использовались следующие компоненты:
1) Плата Arduino Uno + USB-кабель: ali.pub/q0tku
2) RGB светодиод: ali.pub/xumb1
3) Кнопки, 100 шт: ali.pub/5gtfd
2) Breadboard (макетная плата): ali.pub/ned59
4) Перемычки, 40 шт:
5) Светодиоды, 30 шт: ali.pub/6lc3w
6) Резисторы + Светодиоды, 50 шт: ali.pub/2dgio
В следующих уроках вам может потребоваться:
Набор Aurdino для начинающих: ali.pub/uftro
___________________________
Скетч для ночника: yadi.sk/i/hOW0j19RpooNc
______________________________________
Группа в ВК: goo.gl/pE36V9
Реклама на канале: goo.gl/r9jM6p
Почта (для сотрудничества): daymon911@mail.ru
В этом выпуске вы узнаете: как сделать ночник на ардуино с помощью rgb светодиода; как можно сделать простой светильник ночник с переключением разных цветов. Этот arduino проект можно использовать например, как ночник детский, так как детям нравятся разные яркие цвета и их переключение с помощью кнопки будет очень интересно.
___
Смотрите наши видео, в которых мы простым языком рассказываем о радиотехнике, электронике и радиоэлектронике!
Наши уроки будут особенно полезны для начинающих радиолюбителей и студентов радиотехнических ВУЗов.
В видеороликах мы даём основы электроники: определения, описания, схемы и принцип работы различных элементов радиотехники.
В наших видео вы узнаете: что такое транзистор, диод, конденсатор, резистор, микросхема, электрический ток и много других разных интересных вещей и явлений, связанных с электроникой. Наука
Добрый день! Все очень доходчиво и понятно. Хотелось бы видеть работу ардуино с временем (включение и выключение в определенное время), датчиками освещения, как включить приборы работающие от 220 или 12 вольт, переключение между разными источниками питания.
Согласен с теми, кто критикует отсутствие схемы. Есть еще одна просьба, в описании показывать текст программы и писать побольше комментариев в операциям программы, это очень облегчит усвоение материала тем, кто никогда не писал программы. Спасибо за работу.
Спасибо за доходчивые и подробные видео дружище!
супер видосы)!!! понятные подробные) и интересные. а кто не успевает пусть перемотают назад.\
огромное спасибо автору за очередной обучающий ролик!!! респект за труд
ВНИМАНИЕ ДЛЯ ТЕХ, КТО СПИСЫВАЕТ СКЕТЧ С ЭКРАНА!!! на 4.15
между lustbutton и currentbutton стоит знак равно!!! хорошо хоть автор скетч в описании оставил, а то я целый час бился и не мог понять, почему у меня через жопу все работает. диод цвета менял совершенно хаотично
Спасибо, тоже не мог понять почему не работает программа. Сначала ставлю на проверку, выдавал на этом месте ошибку, мол не хватает ";" решил на всякий случай проверить прежде чем поставить точку с запятой, оказалось правильно, что не поставил)
СПАСИБО
😢
Спасибо огромное, пришлось разбираться вместе с дочкой, 6 класс, учитель задал светофор на кнопке после двух уроков подкинь. Без вами бы совсем не разобрались.
Белый цвет, исходя из треугольника цветности, получится примерно при 85 синего, 75 красного и 60 зеленого. В таких пропорциях работало в старых цветных телевизорах. С таким светодиодом надо будет подобрать экспериментально.
Прикольно обязательно соберу эту схему!
Маленькое уточнение: RGB светодиоды бывают как с общим катодом, так и с общим анодом!
В первую очередь выражаю благодарность автору за видеоуроки и в тоже время подлизываюсь - мне необходим модулятор речи в голос Дарта Вейдэра,чтобы девушку напугать.И вот просьба хотя бы корявую попробовать версию сделать на Ардуине или каким-то образом конденсатор включать.А критиков самсэй не слушайте-большинство из них ничего даже подобного вашему не создало. Их душат жабы зависти и злобы.Да прибудет с нами сила.Ответы оставлять под мэссэджем - буду раз в неделю проверять(пока с Китая 2 месяца везут Ардуин). Хочу упредить 50% гневных комментов - необходима портативная версия,которую бы я смог вмонтировать в шлем,а ПК слишком громоздкий и модуляцию хочу в реальном времени.Пока пересмотрю уроки по ШИМ,наверное. Готовые устройства из магазина тоже не годятся - мой голос далёк от Дарта Эникена, поэтому я бы хотел иметь возможность перенастраивать глубину модуляции как скажем в NERO , но опять-таки в реальном времени.Спасибо, если дочитали.Кто не дочитал и палец вниз - средний палец вам вверх ,.!..
Интересно, жду продолжения.
Если интересно, можете попробовать использовать не предустановленные значения, а рандомные, через функцию random(0, 127) - аргументы её обязательно оставить именно такими, чтобы покрыть весь доступный диоду диапазон rgb.
void loop()
{
currentButton = debounce (lastButton);
if (lastButton == LOW && currentButton == HIGH)
{
ledMode++;
}
lastButton currentButton;
if (ledMode == 8)
ledMode = 0;
setMode(ledMode);
}
на видео ошибка между lastButton currentButton; не хвотает =
Код на видео косячный. Берите код из ссылки. Автор редиска.
Добрый день !! У вас на видео контроллер ардуино больших размеров, на моей uno маленьких atmega328p u-kr. от чего это зависит ? и критично ли это?
у меня проблемка с кнопкой, проги работают но сами по себе, без участию кнопки-я так понимаю дело в резисторе на 10 кОМ? когда я жму на кнопку он стопит цвет, если отпускаю дальше перечисляет.
Ардуино с ночником плохо справляется, когда будет ночник на процессоре I7?:)))
все супер и доходчиво! но пожалуйста не тряси рукой, когда держишь детальки и рассказываешь :\
А какова частота тактов руки автора?Может в их скважностях что-то закодировано???Ни один китайский Ардуин не сможет превзойти человеческий процессор(естественно взрослый и образованный)
как будто разговаривает детали а не автор)
const int BLED=9;
const int GLED=10;
const int RLED=11;
const int BUTTON=2;
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledMode = 0;
void setup ()
{
pinMode (BLED, OUTPUT);
pinMode (GLED, OUTPUT);
pinMode (RLED, OUTPUT);
pinMode (BUTTON, INPUT);
}
boolean debounce(boolean last)
{
boolean current = digitalRead(BUTTON);
if (last != current)
{
delay(5);
current = digitalRead(BUTTON);
return current;
}
}
void setMode(int mode)
{
// Красный
if (mode == 1)
{
digitalWrite(RLED, HIGH);
digitalWrite(GLED, LOW);
digitalWrite(BLED, LOW);
}
// Зеленый
else if (mode == 2)
{
digitalWrite(RLED, LOW);
digitalWrite(GLED, HIGH);
digitalWrite(BLED, LOW);
}
// Синий
else if (mode == 3)
{
digitalWrite(RLED, LOW);
digitalWrite(GLED, LOW);
digitalWrite(BLED, HIGH);
}
// Пурпурный (Красный+ Синий)
else if (mode == 4)
{
analogWrite(RLED, 127);
analogWrite(GLED, 0);
analogWrite(BLED, 127);
}
// Бирюзовый (Синий+ Зеленый)
else if (mode == 5)
{
analogWrite(RLED, 0);
analogWrite(GLED, 127);
analogWrite(BLED, 127);
}
// Оранжевый (Зеленый+ Красный)
else if (mode == 6)
{
analogWrite(RLED, 127);
analogWrite(GLED, 127);
analogWrite(BLED, 0);
}
// Белый (Зеленый+ Красный+ Синий)
else if (mode == 7)
{
analogWrite(RLED, 85);
analogWrite(GLED, 85);
analogWrite(BLED, 85);
}
// Выключен (mode = 0)
else
{
digitalWrite(RLED, LOW);
digitalWrite(GLED, LOW);
digitalWrite(BLED, LOW);
}
}
void loop()
{
currentButton = debounce(lastButton);
if (lastButton == LOW && currentButton == HIGH)
{
ledMode++;
}
lastButton = currentButton;
if (ledMode == 8)
ledMode = 0;
setMode(ledMode);
}
Просто так, чтобы яндекс не открывать.
БОГ КОДА, ПРОСТО БОГ...
А поставить одно сопротивление на общий отвод светодиода можно?
Что такое setMode?
откуда это появилось, почему про это ранее не слова?
Спасибо за видио! Просьба, когда крупно что-то показываешь, то не тряси рукой, постарайся компонент или деталь держать статично, чтобы нормально можно было рассмотреть. )
Интересно было бы посмотреть про ардуино и дистанционное упраление.
+Иван Конь Именно
Добрый день! Вопрос по теме. Ну с последовательным перебором понятно, а вот как сделать что бы при длительном нажатии(более 2сек) лампа полностью выключалась из любого режима свечения, а при удержании более 4сек моргал с шим выбранный цвет светодиода? можно это в отдельный видеоурок вынести если долго пояснять. Да и дкмаю эта функция будет многи интересна.
Классно, только что читал книгу Блум Джереми - Изучаем Arduino. Инструменты и методы технического волшебства - 2015 58 станица и тут ваш видео. Скетч точ в точ как у книги)
Спасиб за наводку. При всем уважении к автору, есть ошибки в коде. Например, строка lastButton currentButton идет через =
@@alexkrat5562 в функции debounce тоже ошибка была, ещё с первого видео.
@@alexkrat5562спасибо огромное
А есть разность собирать на Uno или Mega2560 и в но писании кода.
там не delay(S) а delay(5)
спасибо тебе хороший человек
У меня пока самой ардуины нет, учусь тут и в симуляторе Circuits, так вот короче, собрал такую же схему, только там RGB светодиод обычный, как сказал автор я на каждую ногу кроме катода подключил еще по резистору на 220 Ом, но симулятор показывает что светодиод ломается. Что я сделал не так ?
Сам разобрался, эмулятор лагает как проклятый и я случайно один резистор не прикрепил к светодиоду.
Резисторы на 220 ом надо к анодам?
В последних строчках у Автора косяк а именно lastButton = currentButton; надо! Автору Спасибо)
а если например не по половине или трети напряжения подавать на цвета а полностью 5 В ?
Светильник для морского аквариума, где разные спектры света включаются в определенное время мощность такого светильника должна быть порядка 100 Вт .спасибо )
можно добавить одну команду (из 3 или 4 урока, не помню), чтобы он приятно мигал и цвета переключались
Добрый день! Сможете написать скетч со светодиодом на заказ ?
я загрузил скеч который ты дал в описании и соеденил все также как у тебя но у меня почему то очень быстро моргает и при нажатии на кнопку она перестает моргать и горит всеми цветами
Здравствуйте, а можно снять видео про управление сервой. С помощью простого термо резистора. Так как думаю не у всех есть датчик ДХТ11 или аналоги. А вот простой терморезистор думаю каждый сможет достать. Спасибо.
у void бывает setup и loop, при чем тут setMode?
При переписывании скетча с видео выдаёт ошибку, Если брать скетч в описании то там без ошибки
а почему бы не switch(mode)?
помогите пожалуйста решить задачу переключение множество светодиодов по порядку при помощи одной кнопки
Визуализация книги Джереми Блума. Советую, тем, кому текст проще воспринимать, нежели видеоуроки
Функции уже были в предыдущем видео, лучше и здесь написать свою функцию для установки цвета:
void setRGB(unsigned red, unsigned green, unsigned blue) {
analogWrite(RLED, red);
analogWrite(GLED, green);
analogWrite(BLED, blue);
}
тогда вместо
// Пурпурный (Красный+ Синий)
else if (mode == 4)
{
analogWrite(RLED, 127);
analogWrite(GLED, 0);
analogWrite(BLED, 127);
}
достаточно будет её вызвать:
// Пурпурный (Красный+ Синий)
else if (mode == 4)
{
setRGB(127, 0, 127);
}
В остальных случаях подобным образом, сильно сократит код и упростит его чтение
у меня скеч не прходит проверку по этой строке setMode (ledMode); выдает ошибку was not declared in this scope . что делать ?
привет
у меня есть проблема на прошивке выходит 'setMode' was not declared in this scope
const int BLED = 9;
const int GLED = 10;
const int RLED = 11;
const int BUTTON = 2;
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledMode =0;
void setup()
{
pinMode(RLED,OUTPUT);
pinMode(BLED,OUTPUT);
pinMode(GLED,OUTPUT);
pinMode (BUTTON,INPUT);
}
boolean debounce(boolean last)
{
boolean current = digitalRead(BUTTON);
if(last != current)
{
delay(5);
current = digitalRead(BUTTON);
return current;
}
}
void setMod(int mode)
{
//красный
if (mode == 1)
{
digitalWrite (RLED,HIGH);
digitalWrite (BLED,LOW);
digitalWrite (GLED,LOW);
}
//зеленый
else if (mode == 2)
{
digitalWrite (RLED,LOW);
digitalWrite (BLED,HIGH);
digitalWrite (GLED,LOW);
}
//синий
else if (mode == 3)
{
digitalWrite (RLED,LOW);
digitalWrite (BLED,LOW);
digitalWrite (GLED,HIGH);
}
// порпуровый
else if (mode == 4)
{
analogWrite ( RLED,127 );
analogWrite ( BLED, 0 );
analogWrite ( GLED,127 );
}
//бежевый
else if (mode == 5)
{
analogWrite ( RLED,0 );
analogWrite ( BLED, 127 );
analogWrite ( GLED,127 );
}
//ораньжеаый
else if (mode == 6)
{
analogWrite ( RLED,127 );
analogWrite ( BLED, 127 );
analogWrite ( GLED,0 );
}
//белый
else if (mode == 7)
{
analogWrite ( RLED,85 );
analogWrite ( BLED, 85 );
analogWrite ( GLED, 85 );
}
//выключить (mode = 0)
else
{
analogWrite ( RLED, LOW );
analogWrite ( BLED, LOW );
analogWrite ( GLED, LOW );
}
}
void loop()
{
currentButton = debounce(lastButton);
if (lastButton == LOW && currentButton == HIGH)
{
ledMode++;
}
lastButton = currentButton;
if ( ledMode ==8)
ledMode = 0;
setMode ( ledMode );
}
где я ошибся. заранее спасибо
Сделайте управление через блютуз
Что делать у меня при включении всей системы ледсветильник начянает мигать а при нажатии кнопки 5 сек и меняет свет затем обратно мигает.Помогите пж
де учился программировать и какую для этого литературу используешь?
+++
+Александр Соболев Все есть в интернете. А что касается ардуино, там в самой программе есть множество шаблонов с подробными комментариями. Было бы желание.
Василий Банников Спасибо. Какие книжки посоветуешь.
Василий Банников спасибо большое.
+Александр Соболев Прата хорош, но сложноватый. Я сам С++ потихоньку ковыряю и в этом полный нуб, а потому, как для нуба, советую автора Роберт Лафоре. Легче намного. А после Лафоре можно знания полировать Пратой. Я к такому алгоритму изучения пришёл после пары месяцев :)
Совет: RGB выводы лучше подключать через токоограничивающий резистор 220ом.
А я вот жду проект "Умный дом" ))))
+(samodelkin) Рано еще
Ну я же не говорю что "хочу видео сейчас же" я просто написал что хочу его увидеть в дальнейшем)))
(samodelkin) , я хочу сейчас, чтобы нам показали как сделать, чтобы сразу 2 более операций выполнялись не по порядку каждая своё делала сразу.
Василий Банников На словах и я могу , а код написать слабо?
+Phantomas ! ни один процессор в мире не может делать больше одного действия за такт..
Покажи электронный замок (замок как на машине ) с задержкой срабатывания
Молодец! Только не успеваю заказывать комплектующие. Долго едут с китая.
Закажи набор ардуино уно 3
Как с помощью кнопки включать циклы?
У тебя на видео ошибка в коде, lastButton currentButton;, там не хватает знака между переменными
Подскажи, как сделать питание от батарейки как у тебя. Заранее спасибо
Для этого специально продаётся переходник на батарейку типа КРОНА . Переходник с проводами. На алиэкспресс копейки стоит.
Хорошим стилем программирования считается в последнем условии писать не ledMode == 8, а ledMode >=8.
Гуд
Крута, а я точно так же сделаю с RGB света-диодной лентой только управляться будет по Wi Fi со смартфона через приложение RemoteXY, также можно и через интернет ну в качестве кнопок еще можно запилить ИК пульт, но библиотека IRRemote не позволит использовать ШИМ. Зачем они так замутили в Ардуино с таймерами, доступа к ним из Ардуино как я понял нет, только через прямое обращение к регистрам.
lastButton currentButton Может объяснишь, что это за строчка? Так себе из тебя объяснялка
@@vsratko_ebich спасибо
Плохо, что он этого нормально не объяснил
(╭☞ ゚ ͜ʖ ゚)╭☞ BLED
светодиод из видео - детская игрушка
обычно цветовые контакты - катоды
Сделай то же самое только диод с обшим анодом
Можно автора попросить не рассказывать что и куда подключать, а просто в группе в ВК разместить схему (а в описании указать ссылку)? А то с программой разобрался легко а вот со схемой пришлось помучиться.
еще есть такая идея: можно сделать так чтобы цвета сами переключались по времени: скажем через каждую минуту идет переключение. Причем время переключений можно было бы тоже менять нажатием другой кнопки.
А так лайк!
Не все сидят в ВК :/
А где скетч в описание нету?
Блиин
Здраствуйте . У меня все цвета вместе светятся . В чем может быть ошибка ???
на кнопку не нужен резистор просто подключать надо на
А у меня программа не загружается, в строчке setMode(ledMode); ошибку выдает
Здравствуйте код пишется не так я помогу
Вот пример:
Int led =12; //тут пишете устр с пином к которому он подключен
void setup(){
pinMode(led,OUTPUT); //OUTPUT используется как выход а вход INPUT
}
void loop(){
digitalWrite(led, HIGH); //эта функция используются для включения выкл и т.д
delay(1000)
digitalWrite(led, LOW);
}
Вдруг пригодится:
В Ардуино вместо внешнего подтягивающего резистора на кнопку можно использовать встроенный а Атмегу. Делается это очень просто:
pinMode(2,INPUT_PULLUP);
+Dan Mishin эх, жаль что INPUT_PULLDOWN нету.
+Dan Mishin А что такое Атмега?
+astoa100 полагаю, что речь о "главном" чипе на плате ардуино :)
Спасибо.
Можно писать digitalRead(!BUTTON), чтобы значение с кнопки при таком режиме было "нормальным".
на 2:02 кот требует положить ему мясо в миску ))
А где можно оставить свой проект?
Макар Цивиков Выложи в Ютубе.
Было бы круто сделать что бы цвета переливались и диодов было с 10-ток )
для этого, нужно всего 3 светодиода, и мелкая модификация программы
Какой ток ARDUINO может выдавать на светодиод?
каждый пин выдает не больше 40 мА.
@@maksymnepomiashchyi6529 без резистора на светодиод выдавал почти 160мА
привет.скажи пожалуйста я вставляю видео карту а она начинает очень сильно пипикать
У меня по ходу ргб диод палёный, все предыдущие уроки получались, а в этом хоть ты трести не светит, уже и контакты все проверил
Что добавить в скетч чтобы светодиод сам менял цвет, а по кнопке выключался и выключался? Помогите пожалуйста кто разбирается. Спасибо.
Код крупнее плиз. На телефоне не видно ничего. Спасибо.
Люди добрые,я только начинаю и столкнулся с такой проблемой,я собрал макет 1 в 1 как и код (перепроверил очень мого раз)
,но у меня после загрузки скетча почему-то сразу горит диод 1м цветом и не реагирует на кнопку,в чем может быть ошибка?
а что изменится если вместо const int написать просто int ?
Нечего не изменится , просто перестанет быть константой.
Сможешь менять значение этой переменной.
Где код?
Для тех кто пытается списать код с видео, учтите что там ошибка, лучше сразу глянуть в описании скетч.
Радиолюбитель сылка на светодиод не открывается
"И ledMode - это энкримент переменной статуса светодиода" - быстро сказал автор и все поняли что это значит, поскольку руку никто не поднял, чтобы задать вопрос...
😁
у меня зеленый,оранжевый,бирюзовый не работает а оранжевый немного
Я хотел бы добавить фоторезистор, это ж ночник, а если бежишь на работу и забыл выключить? Неееехоорошо, делаем на аккумуляторе….иииии…. Думаю штука будет хорошая, если можно оставь контакты, а я как сделаю, поделюсь усовершенствованием
У меня ошибка before 'currentButton' в конце где
lastButton currentButton;
Ага
между надписями равно поставь
можно было взять поменьше макетную плату
Кто-то может сбросить ссылку на гугл диск со скетчем ? Яндекс отказуется работать
Куда в итоге делись три 220 Ом резистора?))
резисторы нужны когда используешь не RGB светодиод, а три обычных светодиода разных цветов
@@AA-un4so для ргб тоже надо)
на єтом светедиоде есть резистор
что делать?:
's' was not declared in this scope
Если это в строке delay(5); , то в скобках цифра 5, а не переменная S, которая не объявлена,
очем гласит сообщение.
не s а 5
Все собрано по схеме. Однако от кнопки не переключается. Просто при поднесении руки к проводам сигнал переключается, а от кнопки нет. Так в этом случае было и по урокам прошлых видео тоже. Кто знает в чем дело?
жиза
Ты еще не разобрался ?
Вот видно же.Сперва не правильно подключаешь
В чем проблема если горит только 3 режима красный синий и зеленый а остальные просто не горят??????????????????????
белый цвет скорее всего (255, 255, 255)
Странно, ты подготовил 3 резистора по 120 ом, но в схеме их не использовал. Почему?
Он объяснил, что если у тебя RGB светодиод без платы, а просто с 4 ножками, то нужно ставить резисторы .
А если с платой, то они уже впаяны в плату и свои ставить не нужно
Вместо резистора на 10k можно писать input_pullup и в if писать ! перед digitalWrite!!!!!!!
const int BLED=9;
const int GLED=10;
const int RLED=11;
const int BUTTON=2;
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledMode = 0;
void setup() {
pinMode (BLED, OUTPUT);
pinMode (GLED, OUTPUT);
pinMode (RLED, OUTPUT);
pinMode (BUTTON, INPUT);
}
boolean current = digitalRead(BUTTON);
if (last !=current)
{
delay(5);
current=digitalRead(BUTTON);
return current;
}
}
void setMode(int mode)
{
if (mode ==1)
{
digitalWrite(RLED, HIGH)
digitalWrite(GLED, HIGH)
digitalWrite(BLED, HIGH)
}
else if (mode == 2)
{
digitalWrite(RLED, HIGH)
digitalWrite(GLED, HIGH)
digitalWrite(BLED, HIGH)
}
else if (mode == 3 )
{
digitalWrite(RLED, HIGH)
digitalWrite(GLED, HIGH)
digitalWrite(BLED, HIGH)
}
else if (mode == 4)
{
analogWrite(RLED, 127);
analogWrite(GLED, 0);
analogWrite(BLED,127);
}
else if (mode == 5)
{
analogWrite(RLED, 0);
analogWrite(GLED, 127);
analogWrite(BLED,127);
}
else if (mode == 6)
{
analogWrite(RLED, 127);
analogWrite(GLED, 127);
analogWrite(BLED,0);
}
else if (mode == 7)
{
analogWrite(RLED, 85);
analogWrite(GLED, 85);
analogWrite(BLED,85);
}
// Выключен (mode = 0)
else
{
digitalWrite(Rled, LOW);
digitalWrite(Gled, LOW);
digitalWrite(Bled, LOW);
}
}
void loop() {
currentButton = debounce(lastButton);
if (lastButton == LOW && currentButton == HIGH)
{
ledMode++;
}
lastButton currentButton;
if (ledMode ==8)
ledMode = 0;
setMode(ledMode);
}
}
где ? отправь пожалуйста
Блин помогите, у меня при писании команды delay(S); Выбивает ошибку: S was not declared in this scope.
Вместо S напиши число в милисекундах (1 секунда - 1000 милисекунд)
У тебя не объявлена переменная S. Напиши в начале кода чему она равна, например так int S = 500; Ещё возможно объявление переменной лежит за областью видимости для этой функции. Например если ты в методе setup() инициализируешь переменную int S = 100; А метод, кот. Использует эту переменную лежит в loop() то это выдаст ошибку (правда я не уверен. Это верно для си, си шарп и проч. языков. А какой язык в ардуинке не знаю)
и если setMode это переменная, нахера ее делать созвучно функции цифрового ввода
2:02 у кого-то падает посуда.......