Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.02.2020, 17:37   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
Стал читать ветку и видел сообщения, что надо не волну резать, а пропускать периоды. Но во всей теме не нашел такого примера со скетчем, а сам пока дуб в этом деле. Не смогли бы вы мне помочь?
Это для нагревателя подойдет, а мотор с пропусками не будет работать

Цитата:
Еще, я так понял, нужно собрать снаббер, чтобы в сеть не пускать помехи. Помогите, пжл, рассчитать параметры сопротивления и кондера.
резистор 39 Ом, конденсатор 0,01 мкФ . Но от помех в сети он не сильно поможет

Цитата:
Как средствами ардуинки регистрировать аварийную остановку вентилятора (когда в лопасти попало что-то и его заклинило.
Инфракрасным датчиком препятствий Считать ничего не нужно. Например если в течении 1 сек. лог1 или лог0 , то значит вентилятор не крутится
Или второй вариант импульсами от датчика препятствий обнулять таймер
Admin вне форума   Ответить с цитированием
Старый 21.02.2020, 19:53   #2
Renzo
Junior Member
 
Регистрация: 21.02.2020
Сообщений: 3
Вес репутации: 0
Renzo is an unknown quantity at this point
Cool

Цитата:
Сообщение от Admin Посмотреть сообщение
Это для нагревателя подойдет, а мотор с пропусками не будет работать
Ваша правда. Чуть разобравшись с кодом, написал такой проверочный скетч:

Развернуть для просмотра

PHP код:
#include <CyberLib.h>
int  j=1zcross=0;
volatile int k=1i=1pot;
void setup() 

Serial.begin(115200);
  
D3_In//энкодер счетчик
  
D7_In//энкодер поворот
  
D8_Out;  //Настраиваем порты на выход
  
D4_Out;  //Настраиваем порты на выход
  
D2_In//настраиваем порт на вход для отслеживания прохождения сигнала через ноль
  
attachInterrupt(0zero_crosssRISING);  // прерывание на D2 


void zero_crosss() 

  
zcross++;                                     //Считаем два полупериода (целую волну - Герц)
  
if (zcross>1
  {
    if (
j>k) {j=1;D4_LowD8_Low;}                             //Сбрасываем счетчик периодов, закрываем симистор, тушим лед    
    
i++;                                        //Счетчик пакетов
    
if (i>=pot)     //Пропускаем пакеты или нет. Если map=1, то каждый пакет с волнами идет на симистор. Если 100, то только каждый сотый...
    
{
      
D4_HighD8_High;                         //Открываем симистор, поджигаем лед
      
j++;                                      //Счетчик волн в пакете 
      
if (j>ki=1;                             //Сбрасываем счетчик пакетов
    
}
    
zcross=0;                                   //Сбрасываем счетчик полупериодов
    
}


void loop()   

 
pot=map(analogRead(0),0,1023,100,1); // Показания потенциометра
 
if ((digitalRead(3)==1)&&(digitalRead(7)==1)) {k=constrain(k--,2,98);D3_OutD3_Low;D3_In;} // Энкодер против часовой
 
if ((digitalRead(3)==1)&&(digitalRead(7)==0)) {k=constrain(k++,2,98);D3_OutD3_Low;D3_In;} // Энкодер по часовой
 
Serial.print("Пакет непрерываных волн D4 (периодов) = "); Serial.print(k);
 
Serial.print("   Пропускаем волн (периодов) = "); Serial.println(pot);

[свернуть]


В нем можно регулировать как пропуски периодов, так и их длительность.
По итогу мотор крутится без гула, но рывками. Особенно интересные звуки когда ставишь цикл с соотношением 1 период в работу, 1 период на пропуск
Со срезанием волны э/двигатель работает плавнее. А на определенных частотах гула вообще не слышно...

Цитата:
Сообщение от Admin Посмотреть сообщение
резистор 39 Ом, конденсатор 0,01 мкФ . Но от помех в сети он не сильно поможет
А что поможет? Если поможет конечно...
А может фильтр от какого-нибудь розеточного "пилота"?

Цитата:
Сообщение от Admin Посмотреть сообщение
Инфракрасным датчиком препятствий Считать ничего не нужно. Например если в течении 1 сек. лог1 или лог0 , то значит вентилятор не крутится
Или второй вариант импульсами от датчика препятствий обнулять таймер
Да тут логика понятна, будем пробовать
Renzo вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 23:08. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика