Страница 3 из 19 ПерваяПервая 12345678913 ... ПоследняяПоследняя
Показано с 21 по 30 из 184
  1. #21
    Новичок
    Регистрация
    21.09.2010
    Возраст
    32
    Сообщений
    1
    Вес репутации
    0

    По умолчанию Re: Замена ручного управления печкой

    Тема что, умерла что ли?((

  2. #22
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    393

    По умолчанию Re: Замена ручного управления печкой

    у меня получилось следующее.

    код ардуино:
    Код:
    #include <DallasTemperature.h>
    #include <EEPROM.h>
    int address = 0;
    DallasTemperature tempSensor;
    #define m1_l  7 //первый влево 
    #define m1_r  8 //первый вправо
    #define m2_l  5 //второй влево 
    #define m2_r  3 //второй вправо 
    #define m3_l  4 //третий влево 
    #define m3_r  2 //третий вправо 
    #define en1  6  //enable
    #define JOY 0 //АЦП первого мотора
    #define val1 1 //АЦП первого мотора
    #define val2 3 //АЦП второго мотора
    #define val3 2 //АЦП третьего мотора
    #define vent 10 //ШИМ вентилятора
    #define kran 11 //управление клапаном ОЖ
    
    byte bytes[8]; 
    int res_dt1;//джойстик
    int motor1, motor2, motor3;//АЦП приводов
    int vent_speed; //значение ШИМ вентилятора 
    int min_1 = 190; //боковые
    int max_1 = 445; //стекло
    int centr_1 = 310; //среднее первый
    int min_2 = 260; //ноги
    int max_2 = 499; //ноги закрыто
    int centr_2 = 380; //среднее второй
    int temp0, temp_s; //temp0 - в салоне, temp_s - заданая
    int t=5, f=5;
    int flow=5;
    
    void setup()      
    {
    pinMode(m1_l,OUTPUT); 
    pinMode(m1_r,OUTPUT);
    pinMode(m2_l,OUTPUT); 
    pinMode(m2_r,OUTPUT);
    pinMode(en1,OUTPUT);
    pinMode(kran, OUTPUT);
    digitalWrite(m1_l,LOW);
    digitalWrite(m1_r,LOW);
    digitalWrite(m2_l,LOW);
    digitalWrite(m2_r,LOW);
    digitalWrite(en1,LOW);
    digitalWrite(kran,LOW);
    tempSensor.begin(12); //Вешаем Датчик на 12 порт
    Serial.begin(115200); // настроить скорость com порт
    temp_s = EEPROM.read(address);//читаем заданую температуру из еепром
      bytes[0] = 0x5A; //шлем ее в комп
      bytes[1] = temp_s;
      Serial.write( bytes,2);
    } 
    
    void loop()     
    {   
      res_dt1 = analogRead(JOY); // прочитать данные АЦП 
      motor1 = analogRead(val1); // прочитать данные АЦП 
      motor2 = analogRead(val2); // прочитать данные АЦП 
      //motor3 = analogRead(val3); // прочитать данные АЦП
      
    termometer();
    
      byte a, b; 
      if (Serial.available() > 1)
      { 
        a = Serial.read();  
        b = Serial.read();
        if(a==0x64)temp_s=b;
        if(a==0xFF)f=b;
      } 
     
    
    if((res_dt1>=843 && res_dt1<=853) || f==0)// на стекло. кнопка MODE
    {
     digitalWrite(en1,HIGH);
     if (analogRead(val2)<max_2)
     {
       digitalWrite(m2_l,HIGH);
       while (analogRead(val2)<max_2)
       {}
       digitalWrite(m2_l,LOW);
     }
     if (analogRead(val1)<max_1)
     {
       digitalWrite(m1_r,HIGH);
       while (analogRead(val1)<max_1)
       {}
       digitalWrite(m1_r,LOW);
     }
     digitalWrite(en1,LOW);
     flow=0;
     f=5;
     bytes[0] = 0x4B;
     bytes[1] = flow; 
     Serial.write( bytes,2);
    }
    
    if((res_dt1>=401 && res_dt1<=411) || f==1)//в ноги. кнопка FILE
    {
      digitalWrite(en1,HIGH);
      if (analogRead(val2)>min_2)
      {
        digitalWrite(m2_r,HIGH);
        while (analogRead(val2)>min_2)
        {}
        digitalWrite(m2_r,LOW);
      }
      digitalWrite(en1,LOW);
      flow=1;
      f=5;
      bytes[0] = 0x4B;
      bytes[1] = flow; 
      Serial.write( bytes,2);
    }
    
    if((res_dt1>=784 && res_dt1<=794) || f==2)//боковые. кнопка SEL
    {
      digitalWrite(en1,HIGH);
      if (analogRead(val1)>min_1)
      {
        digitalWrite(m1_l,HIGH);
        while (analogRead(val1)>min_1)
        {}
        digitalWrite(m1_l,LOW);
      }
      if (analogRead(val2)<max_2)
     {
       digitalWrite(m2_l,HIGH);
       while (analogRead(val2)<max_2)
       {}
       digitalWrite(m2_l,LOW);
     }
      digitalWrite(en1,LOW);
      flow=2;
      f=5;
      bytes[0] = 0x4B;
      bytes[1] = flow; 
      Serial.write( bytes,2);  
    }
    
    if((res_dt1>=307 && res_dt1<=327) || f==3)//на стекло и в ноги. кнопка ATT
    {
      digitalWrite(en1,HIGH);
      if (analogRead(val1)<max_1)
     {
       digitalWrite(m1_r,HIGH);
       while (analogRead(val1)<max_1)
       {}
       digitalWrite(m1_r,LOW);
     }
     if (analogRead(val2)>centr_2)
      {
        digitalWrite(m2_r,HIGH);
        while (analogRead(val2)>centr_2)
        {}
        digitalWrite(m2_r,LOW);
      }
      if (analogRead(val2)<centr_2)
     {
       digitalWrite(m2_l,HIGH);
       while (analogRead(val2)<centr_2)
       {}
       digitalWrite(m2_l,LOW);
     }
     digitalWrite(en1,LOW);
     flow=3;
     f=5;
     bytes[0] = 0x4B;
     bytes[1] = flow; 
     Serial.write( bytes,2);  
    }
    
    if(res_dt1>=715 && res_dt1<=725)//temp_s++. кнопка VOL UP
    {
      temp_s++;
      delay(30);
      if(temp_s>=50)temp_s=50;
      bytes[0] = 0x5A;
      bytes[1] = temp_s; //салон 1 
      Serial.write( bytes,2);
    }
    if(res_dt1>=635 && res_dt1<=645)//temp_s --. кнопка VOL DOWN
    {
      temp_s--;
      delay(30);
      if(temp_s<=0)temp_s=0;
      bytes[0] = 0x5A; 
      bytes[1] = temp_s; //салон 1 
      Serial.write( bytes,2);
    }
    if(res_dt1>=176 && res_dt1<=186)//кнопка SOURCE
    {
      EEPROM.write(address, temp_s);//пишем в еепром temp_set
    }
    }
    
    void termometer() 
    {
        switch(tempSensor.isValid())
        {
            case 1:
                Serial.println("Invalid CRC");
                tempSensor.reset(); // сбросить девайс
                return;
            case 2:
                Serial.println("Invalid device");
                tempSensor.reset(); // сбросить девайс
                return;
        }
        temp0=tempSensor.getTemperature();
        
        if(temp0>=temp_s+1)digitalWrite(kran,HIGH);//закрываем клапан - охлаждаем салон
        if(temp0<=temp_s-1)digitalWrite(kran,LOW);//открываем - греем
        
        bytes[0] = 0x64;
        bytes[1] = temp0; //салон  
        Serial.write( bytes,2);
    }
    схема:
    Нажмите на изображение для увеличения. 

Название:	cxema.jpg 
Просмотров:	2244 
Размер:	199.8 Кб 
ID:	10201

    управление вентилятором пока не сделал.
    и, как видно из кода, приводов заслонки сейчас 2.
    Написал две проги для компа на процессинге. Ни разу не программист, так что как получилось, так и написал, но работает))) Если кто-нибудь подскажет как сделать лучше, будет большое спасибо. Все в архиве.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	climate2.JPG 
Просмотров:	939 
Размер:	41.8 Кб 
ID:	10202   Нажмите на изображение для увеличения. 

Название:	climate3.JPG 
Просмотров:	831 
Размер:	32.2 Кб 
ID:	10203  
    Вложения Вложения
    Последний раз редактировалось manu_245; 09.11.2010 в 23:07.

  3. #23
    Бдительно следящий
    Регистрация
    27.01.2010
    Возраст
    55
    Сообщений
    203
    Вес репутации
    221

    По умолчанию Re: Замена ручного управления печкой

    Переменники RV1-RV3 - это что? Резисторы обратной связи моторов?
    Или это ручное управление заслонками?
    Какие двигатели использованы?
    Какие диоды использованы?
    Для чего подключение "Джойстик SONY" ?
    Skiw®, Самара
    http://www.skiw63.ru/

  4. #24
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Замена ручного управления печкой

    Диоды на выходе драйвера L293D не нужны, так как они уже в микросхеме имеются

  5. #25
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    393

    По умолчанию Re: Замена ручного управления печкой

    Цитата Сообщение от Skiw Посмотреть сообщение
    Переменники RV1-RV3 - это что? Резисторы обратной связи моторов?
    Или это ручное управление заслонками?
    Какие двигатели использованы?
    Какие диоды использованы?
    Для чего подключение "Джойстик SONY" ?
    переменники - обратная связь
    приводы - моторедукторы печки 2110. диоды 1A3 кажется.
    я использовал аналог L293 - КР1128КТ3А. там по даташиту указаны диоды.
    "джойстик sony" для джойстика sony rm-x4s)) - для управления устройством
    Последний раз редактировалось manu_245; 07.11.2010 в 00:11.

  6. #26
    Бдительно следящий
    Регистрация
    27.01.2010
    Возраст
    55
    Сообщений
    203
    Вес репутации
    221

    По умолчанию Re: Замена ручного управления печкой

    С диодами понятно, действительно, они не нужны.


    Морчики, как я понимаю, коллекторные, не шаговые.
    У меня как раз коллекторные заговлены, которые бесшумные, 4rpm.

    Вообще, manu_245, поподробнее можно по схеме рассказать?
    Skiw®, Самара
    http://www.skiw63.ru/

  7. #27
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    393

    По умолчанию Re: Замена ручного управления печкой

    Цитата Сообщение от Skiw Посмотреть сообщение
    Вообще, manu_245, поподробнее можно по схеме рассказать?
    что именно?
    ардуино управляет заслонками, вентилятором и электромагнитным клапаном печки.
    мотор1 - привод заслонки стекло/боковые воздуховоды
    мотор2 - нижняя заслонка
    мотор3 - заслонка забора воздуха (пока не сделал).
    редукторы управляют штатными тросиками приводов заслонок.
    подобраны положения приводов для 4 направлений обдува:0-стекло,1-ноги,2-боковые сопла,3-стекло и ноги.
    клапан управляется по температуре салона. просто термостат.
    управление джойстиком и с компьютера.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	DSC01905.jpg 
Просмотров:	1783 
Размер:	210.1 Кб 
ID:	10205  

  8. #28
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    393

    По умолчанию Re: Замена ручного управления печкой

    подключил вентилятор. код как в сообщении ув. interhard.
    полет нормальный.
    архив перезалил.

  9. #29
    Местный
    Регистрация
    20.07.2009
    Сообщений
    158
    Вес репутации
    213

    По умолчанию Re: Замена ручного управления печкой

    приводы - моторедукторы печки 2110.
    А почему не юзали готовые сервы модельные? Там же только ШИМ 1-2 мс подать нужно и все... Никаких переменников и L293 не надо...
    В примерах к ардуино есть как рулить сервами. Получается намного проще схема, точнее ее почти не остается

  10. #30
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    38
    Сообщений
    229
    Вес репутации
    393

    По умолчанию Re: Замена ручного управления печкой

    Цитата Сообщение от s.m. Посмотреть сообщение
    А почему не юзали готовые сервы модельные? Там же только ШИМ 1-2 мс подать нужно и все... Никаких переменников и L293 не надо...
    В примерах к ардуино есть как рулить сервами. Получается намного проще схема, точнее ее почти не остается
    не спорю. но приводы 2110 уже были.

Страница 3 из 19 ПерваяПервая 12345678913 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Ваши права

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