знатоки помогите плиз "тахометр"
и так ..
не в тему форума.
нужно примонстрячить к моему авто регулятор хх от волгоша .
ардуинка должна взять показания тахометра (в идеале форсунки) и в зависимости от него работать с клапаном хх (шаговым двигателем)
в целом занимаюсь программированием по стольку по сколь и по сему немного не допераю как данное извращение осуществить
посмотрел тему про приборную панель но так и не нашёл не слово в коде которое работает с пином А1
Вопрос :
как мну подсчитать обороты
ну а с шаговым двиглом как нить справлюсь =)) (надеюсь)
если можно то без дурацких наф те это нуно !!!
просто код.
Re: знатоки помогите плиз "тахометр"
Считать проще всего повесив тахометр на вход с прерыванием D2 или D3
Re: знатоки помогите плиз "тахометр"
Цитата:
Сообщение от
Chip
Считать проще всего повесив тахометр на вход с прерыванием D2 или D3
так это понятно но вот только как я не допру =((
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
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 прописан.
Re: знатоки помогите плиз "тахометр"
Re: знатоки помогите плиз "тахометр"
Цитата:
Сообщение от
Chip
Закоментируй.
ешё раз прошу прощения но в языке я не очень силен . но есть желание учиться.
просто не могу понять где что в представленном коде ? не вижу не объявления конкретного пина для сбора данных тахометра , но вижу использование сериал порта (сори если глупости говорю "лол") я так понимаю для передачи на комп. а у меня хоть комп под сидухой валяется но использовать его каждый раз не хочу
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 нету =(( КАК???!!!
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);
}
может есть болие простой способ
Re: знатоки помогите плиз "тахометр"