Мобильные устройства и высокие технологии.
Vseweb.com — вебмастер, сайт, веб
Rungo.link - новости и самое интересное в интернете - новости шоу бизнеса
RSS-каналов в каталоге: 3391
Добавлено сегодня: 0
Добавлено вчера: 0
Недавно собрал новый станок ЧПУ для сверления и гравировки печатных плат, корпусов и прочих мелочей.
Для станка ЧПУ приобрел мотор шпиндель с регулировкой оборотов.
Радиолюбительский зуд не давал покоя — захотелось иметь на станочке показометр оборотов. Вариант с оптическим энкодером показался слишком сложным. Датчика холла, который применяется во всех автомобилях, не было под рукой. И тут на одном форуме подкинули идейку — попробовать ИК сенсор. Как раз без дела лежал ИК датчик препятствий, который не знал куда применить. Решил его попробовать — и вот что из этого получилось.
Данный модуль применяется в основном в ардуинщиками в роботостроительстве как ИК датчик препятствия. Представляет маленькую очень бюджетную платку (особенно если покупать партиями штук по 10)
Схема у этого сенсора очень простая
В основе лежит ИК пара диод-транзистор. Что вроде L-53P3C/L-53F3C работающие в диапазоне 940нм
Компаратор LM393 сравнивает уровень фоторанзистора с уровнем, выставляемым подстроечным резистором.
Подцепил к валу шпинделя кусочек фольги, поднес сенсор к валу, покрутил подстроечник — модуль стал моргать светодиодом в так вращения.
Поковырявшись в своей барахолке нашел ATmega328 в DIP корпусе (писал по ним статью) и четырехразрядный семисегментный индикатор
Максимальная скорость вращения у мотора 12000RPM и лучше было бы применить 5-разрядный индикатор, но будем работать с чем имеем
Накидал такую схему
Порядок подключения выводов индикатора к микроконтроллеру значения не имеет (так как настраивается в программе) и обусловлен исключительно из удобства проектирования печатной платы
«Квадратный» дизайн платы потому что на данном этапе я осваивал изготовление печатных плат на станке ЧПУ
Закругленные полигоны сложнее, а главное, дольше выбирать гравировкой.
Основным достоинством изготовления плат на станке является то, что весь процесс происходит не отрывая зада от кресла. С покупкой ламинатора я отказался от этого метода, оставив для станка сверление отверстий и обрезку плат.
Итак гравируем, сверлим, режем
Паяем плату и можно приступать к отладке программы
Для работы индикатора применяется простая и удобная библиотека SevSeg, позволяющая подключать индикатор к каким угодно выводам МК, применять индикаторы как с общим катодом, так и анодом да еще и яркостью управлять.
Для измерения частоты попробовал библиотеку FreqMeasur. МК с ней отлично мерит сигнал с генератора от 10 до 200Гц (а больше мне и не нужно)
А вот когда на вход контроллера подал с сигнал с сенсора, результат получился плачевным.
Частота прыгала как ненормальная. Виной этому оказался «дребезг» сигнала с оптического датчика. Фольга давала массу помех. Попытка настроить сигнал подстроечником или заменить кусочек фольки на другой не дали ощутимого результата.
Тогда я решил давить «дребезг» программно. Осциллограф показал, что помехами являются импульсы в 0.3 — 1 мкс, тогда как сигнал — это импульсы 5мс (При частоте 12000RPM) и больше.
В результате родилась такая программка с подавлением помех длительностью менее 2мкс
// Библиотека работы с 7-сегментным индикатором // https://github.com/sparkfun/SevSeg #include SevSeg myDisplay; byte displayType = COMMON_CATHODE; //Your display is either common cathode or common anode byte digit1 = 18; byte digit2 = 19; byte digit3 = 8; byte digit4 = 10; byte segA = 17; byte segB = 9; byte segC = 12; byte segD = 14; byte segE = 15; byte segF = 16; byte segG = 13; byte segDP = 11; byte numberOfDigits = 4; int dot = 0; uint32_t ms, ms1 = 0, ms0 = 0, ms2 = 9; uint32_t rps = 0; uint32_t count = 0; char buf[10]; void setup(){ // Инициализация индикатора myDisplay.Begin(displayType, numberOfDigits, digit1, digit2, digit3, digit4, segA, segB, segC, segD, segE, segF, segG, segDP); myDisplay.SetBrightness(100); myDisplay.DisplayString("----", 0); // Инициализация входа для счета импульсов attachInterrupt(0, pulseCount, RISING); } void loop(){ ms = millis(); char s[10]; uint16_t rpm = 0; // Перевыдача дисплея myDisplay.DisplayString(buf, dot); // Каждую секунду перевыдаем значение скорости if( ms2 == 0 || ms2 > ms || ( ms - ms2 )>1000 ){ ms2 = ms; // Переводим в коичество оборотов в минуту rpm = rps*60; // Отображение 10=тичной точки, сли число больше 4-х разрядов if( rpm > 9999 ){ dot = 2; sprintf(buf,"M",rpm/10); } else{ dot = 0; sprintf(buf,"M",rpm); } rps = 0; } } /** * Счетчик импульсов */ void pulseCount(){ uint32_t ms = micros(); // Убираем импулься менее 2 мс (дребезг) if( ms - ms0 > 2000 )count++; ms0 = ms; // 0.5 сек цикл подсчета импульсов if( ms - ms1 > 500000 ){ ms1 = ms; rps = count*2; count = 0; } }
Программа показала 100% результат с тестового генератора. При включенном моторе с сенсора показывались стабильные обороты, которые хорошо коррелировали с режимом работы мотора. На том и остановимся
Корпус
Корпус делаю на станочке из обрезков ПВХ пластика 3мм
Еще одна проблема нартсовалась при выборе места установки счетчика на станок.
В длинных проводах наводились сильные помехи от мотора и БП и индикатор, отлично работавший «на коленках» никак не хотел работать на станке. В результате смонтировал контроллер в непосредственной близости от сенсора и запитал его через импульсный DC-DC преобразователь от 24В. (Напряжения для шаговиков, подсветки, вентиляторов охлаждения).
Так мой новый станочек обзавелся счетчиком оборотов шпинделя. индикаторы К слову, данный измеритель должен практически без изменения схемы и программы заработать и с «кошерным» датчиком холла и магнитиком на валу.
Как работает станок с датчиком можно посмотреть здесь
Кот за любой кипишь кроме голодовки )))
The post Счетчик оборотов шпинделя на ИК-сенсоре appeared first on самопал.pro.
Мотор-шпиндель для станка ЧПУ 300Вт с патроном, кронштейном и БП регулирующим обороты 31.10.2017 в 11:55
Новый станок ЧПУ с рамой из алюминиевого профиля 11.09.2017 в 11:49
Матричный дисплей на MAX7219. Делаем часы с погодой. 23.07.2017 в 08:15
Большой набор инструмента из Китая для ремонта мелкой аппаратуры 29.06.2017 в 12:57
Измеритель мощности с WiFi, цветным дисплеем и логгером на базе PZEM-004T 06.06.2017 в 12:39
Самодельный спектрометр из ювелирного спектроскопа 18.03.2017 в 17:29
WiFi измеритель мощности SONOFF POW 05.03.2017 в 19:07
Апельсин с плюсом. Новый одноплатный ПК Orange PI PC PLUS. 11.12.2016 в 17:30
SONOFF LED — умный светодиодный драйвер с управлением по WiFi 23.11.2016 в 13:53
Елочка на WS2812 и ATTiny13A 12.11.2016 в 17:07