
Познакомьтесь с активами вашего запаса филамента
Шаг 1: 3D-принтер

Если у вас есть одна из этих машин,
Шаг 2: почти пустые катушки
Рано или поздно вы их получите много.
Почти пустые катушки с несколькими метрами нити.
Если вы такие, как я, вы не можете их выбросить. Может быть, когда-нибудь появится небольшой проект, где вы сможете их использовать?
Шаг 3: измеритель нити

Исходя из моих потребностей, я разработал измеритель нити для 3D-печати.
Он адаптирован для верхней рамы Anet A8 и питается от батареи 9 В.
Потребляемая мощность составляет всего 4, 5 мА, поэтому батареи хватит на много часов.
Шаг 4: OLED-дисплей

Рамка OLED-дисплея тщательно изготовлена г-ном Думнаком и ее можно найти на сайте Thingervis -
Большое ему спасибо.
Шаг 5: самодельные печатные платы

Печатные платы разработаны специально для этой цели и выгравированы на моей кухонной раковине. Безупречный результат и без всяких «ссылок».
Принцип состоит в том, чтобы вращать колесо кодировщика, когда вы протягиваете нить по колесу с другой стороны «жук». Кодировщик считает по фото прерывателю. Из-за переменной скорости и, следовательно, частот, сигнал от фото прерывателя подается на триггер HW Schmit (SN74 14), а затем загружается в Attiny 85.
В Attiny прерыватель используется для подсчета импульсов, а делитель - для корректировки от импульсов к сантиметровой нити накала.
Все питается от регулятора напряжения LM 7805.
Шаг 6: макет

Вот схема печатной платы. Маленькая печатная плата припаяна к основной плате с помощью штырей под углом 90 градусов.
Шаг 7: Schemastic

Принципиальная схема для тех, кто хочет это сделать.
Шаг 8: 3D-печать

Здесь вы можете увидеть все необходимые детали. В том числе подшипник 608 Yx2Z.
Шаг 9: Код

# включить "avr / interrupt.h";
#include #include U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8 (/ * clock = * / 2, / * data = * / 0, / * reset = * / U8X8_PIN_NONE); // Digispark ATTiny85
int pulse = 0;
void setup (void) {
u8x8.begin (); ГИМСК = 0b00100000; // включает прерывания смены вывода
PCMSK = 0b00001000; // включаем прерывания на выводах PB3
sei (); // разрешает прерывания}
void loop (void) {
u8x8.setFont (u8x8_font_victoriabold8_r);
u8x8.drawString (1, 2, «Сбросить и перетащить»);
u8x8.setCursor (1, 4);
u8x8.print ("заполнение");
u8x8.setCursor (2, 6);
u8x8.print ("см:");
u8x8.setCursor (8, 6);
u8x8.print (импульс / 3,53);
}
ISR (PCINT0_vect) {импульс = импульс + 1; }