Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Пользователь
    Регистрация
    14.01.2010
    Возраст
    38
    Сообщений
    26
    Вес репутации
    196

    По умолчанию знатоки помогите плиз "тахометр"

    и так ..

    не в тему форума.
    нужно примонстрячить к моему авто регулятор хх от волгоша .

    ардуинка должна взять показания тахометра (в идеале форсунки) и в зависимости от него работать с клапаном хх (шаговым двигателем)

    в целом занимаюсь программированием по стольку по сколь и по сему немного не допераю как данное извращение осуществить


    посмотрел тему про приборную панель но так и не нашёл не слово в коде которое работает с пином А1


    Вопрос :
    как мну подсчитать обороты

    ну а с шаговым двиглом как нить справлюсь =)) (надеюсь)

    если можно то без дурацких наф те это нуно !!!
    просто код.

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

    По умолчанию Re: знатоки помогите плиз "тахометр"

    Считать проще всего повесив тахометр на вход с прерыванием D2 или D3

  3. #3
    Пользователь
    Регистрация
    14.01.2010
    Возраст
    38
    Сообщений
    26
    Вес репутации
    196

    По умолчанию Re: знатоки помогите плиз "тахометр"

    Цитата Сообщение от Chip Посмотреть сообщение
    Считать проще всего повесив тахометр на вход с прерыванием D2 или D3
    так это понятно но вот только как я не допру =((

  4. #4
    Пользователь
    Регистрация
    05.08.2010
    Возраст
    41
    Сообщений
    68
    Вес репутации
    197

    По умолчанию Re: знатоки помогите плиз "тахометр"

    с помощью этого
    PHP код:
    #include <FreqCounter.h>

    void setup() {
      
    Serial.begin(57600);                    // connect to the serial port
      
    Serial.println("Frequency Counter");
    }

    long int frq;
    Void loop() {

     
    FreqCounter::f_****= 8;             // Set compensation to 12
     
    FreqCounter::start(100);            // Start counting with gatetime of 100ms
     
    while (FreqCounter::f_ready == 0)         // wait until counter ready
     
     
    frq=FreqCounter::f_freq;            // read result
     
    Serial.println(frq);                // print result
     
    delay(20);

    http://interface.khm.de/index.php/la...unter-library/
    а зная частоту ты сможешь выбрать по какой частоте тебе Двигало шевелить туда или сюда
    Или так как предлагают за бугром только схемку переделаеш под себя http://www.arduino.cc/playground/Learning/Tachometer
    Последний раз редактировалось xeonlink; 09.09.2010 в 21:13.

  5. #5
    Пользователь
    Регистрация
    14.01.2010
    Возраст
    38
    Сообщений
    26
    Вес репутации
    196

    По умолчанию Re: знатоки помогите плиз "тахометр"

    Цитата Сообщение от xeonlink Посмотреть сообщение
    с помощью этого
    PHP код:
    #include <FreqCounter.h>

    void setup() {
      
    Serial.begin(57600);                    // connect to the serial port
      
    Serial.println("Frequency Counter");
    }

    long int frq;
    Void loop() {

     
    FreqCounter::f_****= 8;             // Set compensation to 12
     
    FreqCounter::start(100);            // Start counting with gatetime of 100ms
     
    while (FreqCounter::f_ready == 0)         // wait until counter ready
     
     
    frq=FreqCounter::f_freq;            // read result
     
    Serial.println(frq);                // print result
     
    delay(20);

    http://interface.khm.de/index.php/la...unter-library/
    а зная частоту ты сможешь выбрать по какой частоте тебе Двигало шевелить туда или сюда
    Или так как предлагают за бугром только схемку переделаеш под себя http://www.arduino.cc/playground/Learning/Tachometer
    СПС только не пойму мне нужно автономное устройство а тут serialport прописан.

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

    По умолчанию Re: знатоки помогите плиз "тахометр"

    Закоментируй.

  7. #7
    Пользователь
    Регистрация
    14.01.2010
    Возраст
    38
    Сообщений
    26
    Вес репутации
    196

    По умолчанию Re: знатоки помогите плиз "тахометр"

    Цитата Сообщение от Chip Посмотреть сообщение
    Закоментируй.
    ешё раз прошу прощения но в языке я не очень силен . но есть желание учиться.

    просто не могу понять где что в представленном коде ? не вижу не объявления конкретного пина для сбора данных тахометра , но вижу использование сериал порта (сори если глупости говорю "лол") я так понимаю для передачи на комп. а у меня хоть комп под сидухой валяется но использовать его каждый раз не хочу

  8. #8
    Пользователь
    Регистрация
    14.01.2010
    Возраст
    38
    Сообщений
    26
    Вес репутации
    196

    По умолчанию Re: знатоки помогите плиз "тахометр"

    int taho = 2; //задает порт считавания тахометра
    int tahom; //переменная для считывания частоты
    int tah; //определяет диапазон включения регулировки холостого хода

    int termo = 5; //задает порт считывания термодчика
    int tempovol; //переменная для считывания температуры
    int termom; //определяет переменную для значения оборотов холостого хода в зависимости от оборотов

    //переменная для значения оборотов холостого хода в зависимости от оборотов
    int termo1 = 10;
    int termo2 = 20;
    int termo3 = 30;
    int termo4 = 40;
    int termo5 = 50;

    // для расчета значения оборотов холостого хода в зависимости от оборотов
    int termom1 = 1;
    int termom2 = 63;
    int termom3 =127;
    int termom4 = 190;
    int termom5 = 253;
    //задает значение необходимого холостого хода в зависимости от оборотов
    int tahomraz;
    int tahomm;
    int tahomm1 = 1400;
    int tahomm2 = 1200;
    int tahomm3 = 1100;
    int tahomm4 = 900;
    int tahomm5 = 850;

    int drosel = 6; //задает порт определения положения дроселя
    int drosel1; //переменная для считывания положения дроселя
    int dros; //определяет диапазон дроселя для регулерови холостого хода


    int rhhod; //переменная контроля соблюдения условий включения регулировки холостого хода
    int hhodplus = 14; //задает порт для повышения оборотов
    int hhodminus = 15; //задает порт для снижения оборотов

    void setup() {
    pinMode(taho, INPUT);
    pinMode(termo, INPUT);
    pinMode(drosel, INPUT);
    pinMode(hhodplus, OUTPUT);
    pinMode(hhodminus, OUTPUT);
    }
    void loop(){
    tahom = pulseIn(taho, HIGH) //мерием импульсы тахометра
    tempovol = analogRead(termo /4 ); // мерием температуру
    drosel1 = analogRead(drosel /4 ); //мерием положение дроселя


    // вычесляем темпратурный режим
    if (tempovol >= temom1 | tempovol <=temom2) {termom = termo1};
    if (tempovol >= temom2 | tempovol <=temom3) {termom = termo2};
    if (tempovol >= temom3 | tempovol <=temom4) {termom = termo3};
    if (tempovol >= temom4 | tempovol <=temom5) {termom = termo4};
    if (tempovol >= temom5 ) {termom = termo5};


    //вычесляем необходимые обороты в зависимости от температуры
    if (termom == termo1) {tahomm = tahom1}
    if (termom == termo2) {tahomm = tahom2}
    if (termom == termo3) {tahomm = tahom3}
    if (termom == termo4) {tahomm = tahom4}
    if (termom == termo5) {tahomm = tahom5}


    if (drosel >= 8 && drosl >= 40) {dros=true}; // задаем условие холостого хода по дроселю

    if (tahom >500 && tahom < 1600) {tah=true}; // задаем условие холостого хода по оборотам

    if (tahom == tahomm) {tahomraz=false}; //приравневаем темперануру к оборотам

    if (dros = true && tah = true && tahomraz = true) {rhhod=true}; //даем разрешение на регулеровку холостого хода



    if(rhhod = true && tahom > tahomm) { ??? hhodminus ???} // как выдовать импульсы для управления шаговым дроселем
    if(rhhod = true && tahom < tahomm) { ???hhodplus??? } // как выдовать импульсы для управления шаговым дроселем
    вроде как то так . только не пинайте !! .

    не могу понять как мне управлять шаговым двигателем .

    есть команда pulseIn но pulseOut нету =(( КАК???!!!

  9. #9
    Пользователь
    Регистрация
    14.01.2010
    Возраст
    38
    Сообщений
    26
    Вес репутации
    196

    По умолчанию Re: знатоки помогите плиз "тахометр"

    туту помозговал и придумал вот что

    int taho = 2; //задает порт считавания тахометра
    int tahom; //переменная для считывания частоты
    int tah; //определяет диапазон включения регулировки холостого хода

    int termo = 5; //задает порт считывания термодчика
    int tempovol; //переменная для считывания температуры
    int termom; //определяет переменную для значения оборотов холостого хода в зависимости от оборотов

    //переменная для значения оборотов холостого хода в зависимости от оборотов
    int termo1 = 10;
    int termo2 = 20;
    int termo3 = 30;
    int termo4 = 40;
    int termo5 = 50;

    // для расчета значения оборотов холостого хода в зависимости от оборотов
    int termom1 = 1;
    int termom2 = 63;
    int termom3 =127;
    int termom4 = 190;
    int termom5 = 253;
    //задает значение необходимого холостого хода в зависимости от оборотов
    int tahomraz;
    int tahomm;
    int tahomm1 = 1400;
    int tahomm2 = 1200;
    int tahomm3 = 1100;
    int tahomm4 = 900;
    int tahomm5 = 850;

    int drosel = 6; //задает порт определения положения дроселя
    int drosel1; //переменная для считывания положения дроселя
    int dros; //определяет диапазон дроселя для регулерови холостого хода


    int rhhod; //переменная контроля соблюдения условий включения регулировки холостого хода
    int hhodplus = 14; //задает порт для повышения оборотов
    int hhodminus = 15; //задает порт для снижения оборотов

    void setup() {
    pinMode(taho, INPUT);
    pinMode(termo, INPUT);
    pinMode(drosel, INPUT);
    pinMode(hhodplus, OUTPUT);
    pinMode(hhodminus, OUTPUT);
    }
    void loop(){
    tahom = pulseIn(taho, HIGH) //мерием импульсы тахометра
    tempovol = analogRead(termo /4 ); // мерием температуру
    drosel1 = analogRead(drosel /4 ); //мерием положение дроселя


    // вычесляем темпратурный режим
    if (tempovol >= temom1 | tempovol <=temom2) {termom = termo1};
    if (tempovol >= temom2 | tempovol <=temom3) {termom = termo2};
    if (tempovol >= temom3 | tempovol <=temom4) {termom = termo3};
    if (tempovol >= temom4 | tempovol <=temom5) {termom = termo4};
    if (tempovol >= temom5 ) {termom = termo5};


    //вычесляем необходимые обороты в зависимости от температуры
    if (termom == termo1) {tahomm = tahom1}
    if (termom == termo2) {tahomm = tahom2}
    if (termom == termo3) {tahomm = tahom3}
    if (termom == termo4) {tahomm = tahom4}
    if (termom == termo5) {tahomm = tahom5}


    if (drosel >= 8 && drosl >= 40) {dros=true}; // задаем условие холостого хода по дроселю

    if (tahom >500 && tahom < 1600) {tah=true}; // задаем условие холостого хода по оборотам

    if (tahom == tahomm) {tahomraz=false}; //приравневаем темперануру к оборотам

    if (dros = true && tah = true && tahomraz = true) {rhhod=true}; //даем разрешение на регулеровку холостого хода



    if(rhhod = true && tahom > tahomm) {
    digitalWrite(hhodminus, HIGH);
    delay(10);
    digitalWrite(hhodminus, LOW);
    delay(10);
    digitalWrite(hhodminus, HIGH);
    delay(10);
    digitalWrite(hhodminus, LOW);
    delay(10);
    digitalWrite(hhodminus, HIGH);
    delay(10);
    digitalWrite(hhodminus, LOW);
    delay(10);
    digitalWrite(hhodminus, HIGH);
    delay(10);
    digitalWrite(hhodminus, LOW);
    delay(10);
    digitalWrite(hhodminus, HIGH);
    }

    if(rhhod = true && tahom < tahomm) {
    digitalWrite(hhodplus, HIGH);
    delay(10);
    digitalWrite(hhodplus, LOW);
    delay(10);
    digitalWrite(hhodplus, HIGH);
    delay(10);
    digitalWrite(hhodplus, LOW);
    delay(10);
    digitalWrite(hhodplus, HIGH);
    delay(10);
    digitalWrite(hhodplus, LOW);
    delay(10);
    digitalWrite(hhodplus, HIGH);
    delay(10);
    digitalWrite(hhodplus, LOW);
    delay(10);
    digitalWrite(hhodplus, HIGH);
    }




    может есть болие простой способ
    Последний раз редактировалось mirilka; 10.09.2010 в 19:09.

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

    По умолчанию Re: знатоки помогите плиз "тахометр"


Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Ваши права

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