Перейти к содержанию
Andreyka

Еще один цифровой тахометр

Рекомендуемые сообщения

При этом дисплей подключается на пины Д7, Д6, Д5

 

На каких пинах дисплей по проекту "Andreyka"?

Может в ардуинке пин не работает. Поправьте прошивку под рабочие пины ардуинки.

Поделиться сообщением


Ссылка на сообщение
Дата: (изменено)

В какой программе это можно попробовать сделать? Попробовал в Codevisionavr прошивку открыть (*.hex), но там не программа, а по другому все написано

Изменено пользователем spaun

Поделиться сообщением


Ссылка на сообщение

Дмитрий смените пины в ардуиновском скече.

(Или сообщите в личку адрес куда скинуть мои исходники)

Поделиться сообщением


Ссылка на сообщение
Дата: (изменено)

смените пины в ардуиновском скече

Переключил дисплей в ардуиновской прошивке с Д7-Д5 на А0-А2

int SCLK = 14;

int RCLK = 15;

int DIO = 16;

Работает :wacko:

Почему тогда AVRовская не хочет работать :unsure:

Изменено пользователем spaun

Поделиться сообщением


Ссылка на сообщение

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

Первоначально этот тахометр предназначался для сверлильного станка с приводом от фрезера JMD-X1.

В такой конфигурации были две особенности.

1. Старт привода при подаче питания, питание платы от привода, т.е. состояние 0 об/мин было нереально.

2. Минимальные обороты шпинделя 130 об/мин, т.е. малые обороты не отслеживались.

Что исправлено.

1. Обновление информации на дисплее каждые 0.4 сек.

2. При превышении скорости 9999 об/мин, отображается не "9999", а строка "HI...".

3. При снижении оборотов ниже 45, теперь показывается не "0", а "LO...".

post-49871-038468600_1490697071_thumb.jpg

 

После загрузки, рабочие файлы (исходники и прошивка) под версией №3.0

будут размещены в архиве под именем [Tacho_4dig_display_v3_0_bin&src.zip]

Ссылка в предыдущем посте.

Поделиться сообщением


Ссылка на сообщение

А готовые изделия подобного рода бывают? А то я с проводниками только в поезде дело имел :(

Поделиться сообщением


Ссылка на сообщение

Вот к примеру:

post-141675-071745100_1491833766_thumb.jpg

 

Дисплей и датчик, на дисплей два прихода, 3 контакта от датчика, 2 контакта - видимо питание?

А куда закреплять датчик, как его располагать относительно вала, какие метки на вал ставить, или не ставить?

А то ведь куплю, а потом буду его как мартышка подвешивать к разным местам...

 

Заранее благодарен за ликбез!

Поделиться сообщением


Ссылка на сообщение

Да. Описание на русско-китайском читал. Я примерно так же стихи пишу...

Поделиться сообщением


Ссылка на сообщение
Дата: (изменено)

Этот с датчиком Холла, на вал ставится магнит полюсом к торцу датчика.

Не очень удобно, магнит надо крепить, к нему будет прилипать стальная стружка,

если обороты большие, то может проявится дисбаланс.

Этот с оптодатчиком, годится любой светонепроницаемый легкий флажок на вал.

 

Разъём с тремя контактами это датчик, просто подключите.

Два контакта - разъём питания 5 Вольт, полярность указана на плате.

 

P.S. Не используйте автоматический перевод, англо-китайский более понятен

(он не "авто", там англо-китаец текст вручную наколачивает :wink: )

Изменено пользователем Andreyka

Поделиться сообщением


Ссылка на сообщение

Вот, уже картина проясняется! Спасибо!

Поделиться сообщением


Ссылка на сообщение

Но он я так понимаю будет просто считать количество оборотов от момента включения до... пока пробки не вылетят. Или все же количество оборотов за фиксированный промежуток времени? В минуту, в час... ?

Поделиться сообщением


Ссылка на сообщение

Или все же количество оборотов за фиксированный промежуток времени? В минуту, в час... ?

Это не "счетчик", это больше "частотомер". :wink:

Насколько я читал об этих тахометрах, информация обновляется чаще чем раз в секунду, на совсем малых оборотах

это время может быть несколько секунд. Личного общения с такими тахометрами не имел.

Поделиться сообщением


Ссылка на сообщение

Обновление, это хорошо. И все же частота на дисплей выдается в пересчете на минуту? или на другой период? врядли период настраиваемый, весчь простая, значит заранее прошитая. А вашь приборчик волшебный линейную скорость вроде даже выдает, если ему диаметр заготовки "сообщить"?

Поделиться сообщением


Ссылка на сообщение

И все же частота на дисплей выдается в пересчете на минуту?

Ну разумеется, все измеряют частоту вращения в оборотах в минуту

RPM (rovolution per minute).

Поделиться сообщением


Ссылка на сообщение

Еще раз спасибо! Хотя слово "Революшн" немного напрягает :)

Поделиться сообщением


Ссылка на сообщение

Хотя слово "Революшн" немного напрягает :)

Есть альтернатива - "Rotations per minute", также широко используется.

Поделиться сообщением


Ссылка на сообщение

А не подскажете, как приделать модуль дисплея на базе драйвера TM1637. Возможно ли это? У меня такой есть, а другого нет. Если заказывать, ждать долго. Хочется быстрее попробовать.

Поделиться сообщением


Ссылка на сообщение

Он в основном для часов сделан, но пишут что можно выводить целые числа. И он не требует каких то там прерываний , облегчая работу процессору. Я не разбираюсь в этих делах, но не мешало бы. Возможно ли подправить его библиотеку, или там с прерываниями нестыковочка будет?

Поделиться сообщением


Ссылка на сообщение

Есть у меня еще жк дисплей 1602. Но он большеват для 4х знаков.

Поделиться сообщением


Ссылка на сообщение
Дата: (изменено)

Почему спрашиваю про ТМ1637. Вот, взято из статьи про автомобильный тахометр на этом дисплее. Я нашел эту статью, скопировал, и сюда вставил:

........Нам понадобятся

Arduino UNO занимается подсчетом ипульсов и вывод оборотов на экран

4-х разрядный 7-ми сегментный индикатор на базе чипа tm1637

Резистор на 10 кОм

Перемычки .

В качестве датчика временно подключим генератор на ардуинке.

 

 

c35f7des-960.jpg

 

Исходный код UNO 2 (генератора импульсов)

int pau = 66; //грубая задержа

int i;

unsigned long int time, time1;

void setup() {

pinMode(13, OUTPUT);

// Serial.begin(9600);

}

void loop() {

time=micros();

// Serial.println(time-time1); // необходимо для сведения данных между ардуино

digitalWrite(13, HIGH); // генерируем импульс на 13 порту

digitalWrite(13, LOW);

delay(pau);

for (i=0; i < 3000; i++) //3000 — точная задержка

{

}

time1=time;

}

Исходный код UNO 1 (счетчик импульсов, вывод на дисплей)

#include <tm1637.h>

#define CLK 10 //определим константы как номера пинов на которые будут соединены с одноименными пинами на модуле

#define DIO 9 //это нужно будет позже

int taho = 2; //вход тахометра

volatile unsigned long int time1 = 0; // переменные для расччета оборотов

volatile unsigned long int time2 = 0;

unsigned long int time4 = 0;

volatile unsigned long int time, time5, time6, time7;

int oborots = 0;

TM1637 tm1637(CLK, DIO); //создаем экземпляр объекта типа «TM1637», с которым будем далее работать и задаем пины.

// можно было и не определять константы, а написать проще — вместо трёх предыдущих строк одну:

// TM1637 tm1637(3,2);, но так как мы сделали наглядней

int n1, n2, n3, n4, n; //переменные для вывода на индикатор

void setup()

{

tm1637.init();// инициализация библиотеки «TM1637.h»

tm1637.set(BRIGHT_TYPICAL);//установка яркости указанная константа равна 2, значение по умолчанию

pinMode (taho, INPUT);

attachInterrupt(0, merilka, RISING);

}

void loop()

{

if (time2 — time4 > 100)

{

printdisplay();

time4 = micros();

}

}

void printdisplay ()

{

n = time;

n4 = n % 10;

n = n — n4;

n3 = ((n % 100) / 10);

n = n — n3 * 10;

n2 = ((n % 1000) / 100);

n = n — n2 * 100;

n1 = ((n % 10000) / 1000);

tm1637.display(0, n1); //1 цифра дисплея

tm1637.display(1, n2); //2

tm1637.display(2, n3); //3

tm1637.display(3, n4); //4

}

void merilka () {

time1 = time2;

time2 = micros();

time = ((time2 — time1)); //расчитываем обороты в секунду.

// Serial.println(time); // необходимо для сведения данных между ардуино

time = (time + time5) / 2; //Усредняем значения для устранния погрешности изменений

time5 = time;

time = (time6 + time) / 2;

time6 = time;

// time = time + 1; //уравниваем время между импульсами с задержкой в генераторе

time = 60000000 / time; // Получаем обороты в минуту

time = (time — (time % 10)); //округляем значения до 10;

}

 

Как видим, возможно применение данного дисплея но, характеристики этого тахометра меня не устраивают. Может использован другой принцип счета оборотов и данный дисплей в проект не подойдет. Мне подходят характеристики с вашего проекта. Понятное дело, что можно заказать другой индикатор, и закажу ... а с этим что делать? )))

Изменено пользователем vn67

Поделиться сообщением


Ссылка на сообщение

Понятное дело, что можно заказать другой индикатор, и закажу ...

Ну и правильно, я же не могу модернизировать код "под заказ" каждый раз,

когда у кого-то возникают проблемы с комплектующими. :unknw:

Так что извините.

Поделиться сообщением


Ссылка на сообщение

Я думал что все гораздо проще, а оно вон как. Буду ждать досплейчик.

Поделиться сообщением


Ссылка на сообщение

калькулятор вполне логичное, дешевое и доступное решение.

 

Не... все проще... и стильнее...

 

Берем 158р.... цепляем кулачек...

 

D67-F 5 Digits Mechanical Pull Stroke Counter Black Casing Resettable #H028#

 

HTB1pysomGagSKJjy0Fgq6ARqFXaK.jpg

https://ru.aliexpress.com/item/D67-F-5-Digits-Mechanical-Pull-Stroke-Counter-Black-Casing-Resettable-H028-Drop-shpping/32838086387.html

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

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


×
×
  • Создать...

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.