1 / 2
INFIDEL sensor filament winder — image 1
1 / 2

INFIDEL sensor filament winder

Order a print of this model

We calculate the final price from your selected file. You review and accept it before payment.

Saved on this device.

an edited version of Thomas Sanladerer filament diameter. For use in home brew filament machines.

Rating
0 / 5
Likes
17
Downloads
74
Makes
0
Views
2,179
Reviews
0

Updated at source:

Model information

Category
Tools
License
Creative Commons — Attribution — Noncommercial — Share Alike

This is a modified version of toms INFIDEL filament diameter measurement sensor: InFiDEL - Inline Filament Diameter Estimator (lowcost) by Tom | Download free STL model | Printables.com

Meant to be used with: Bambu Lab P1 / X1 / X1C / X1CC Filament Spool Switcher & Winder if you use AMS by Miklos Kiszely | Download free STL model | Printables.com

Made to be used for homebrew filament production.

IMPORTANT

don't buy a PCB and waste $60 like I did!

Instead control the hall effect sensor using an Arduino

This is my Arduino + motor upgrade for the filament spooler: Arduino Filament Transfer Winder Motor Drive and Spool Adapter by Redpotato441 | Download free STL model | Printables.com

the goal is for the Arduino to read the filament diameter and then adjust the motor speed in order to increase or decrease the filament diameter in order to create filament with a consistent diameter. 

here is my working Arduino code:

// Motor pins
const int motorChannel = 13; // Motor channel connected to pin 13
const int motorBrake = 8; // Motor brake connected to pin 8
const int pwmPinMotor = 11; // Assign PWM pin
int motorSpeed = 255; // Assign baseline motor speed
// Fan Pins
const int fanChannel = 12; // Fan channel connected to pin 12
const int pwmPinFan = 3; // Assign PWM pin
// Hall effect sensor pins
const int hallPin = A5;    // Hall effect sensor connected to analog pin A5
int magnetState = LOW;     // current state of the magnet
// Calibrations
const int baseReading = 750; // Reading of hall effect sensor without anything inserted
const int fillamentDiameter = 600; // Reading of hall effect sensor with 1.75mm fillament inserted
const int minimumSpeed = 75; // Minimum speed that the motor will rotate at
void setup() {
 digitalWrite(motorChannel, HIGH);  // Establishes backward direction of motor
 digitalWrite(motorBrake, LOW);   // Disengage the Brake for motor
 digitalWrite(fanChannel, HIGH); // Eastablishes forward direction of fans
 pinMode(hallPin, INPUT);  // Set the Hall effect sensor pin as input
 Serial.begin(9600);       // Initialize serial communication
}
void loop() {
 analogWrite(pwmPinFan, 255); // Engage fan
 int sensorValue = analogRead(hallPin);  // read the sensor value
 //Serial.println(sensorValue);
 if(sensorValue <= baseReading){
     if(sensorValue >= fillamentDiameter + 10){
       motorSpeed = motorSpeed * .975; // Make motor spin slower
     }
     else if(sensorValue <= fillamentDiameter - 10){
       if(motorSpeed < 255){
         if(motorSpeed < minimumSpeed){
           motorSpeed = minimumSpeed;
         }else{
           motorSpeed = motorSpeed + 5; // Make motor spin faster
         }
       }
     }
   Serial.println(motorSpeed);
   analogWrite(pwmPinMotor, motorSpeed);   //Spins the motor
   delay(10000);  // small delay between readings
 }
 else{
   analogWrite(pwmPinMotor, 0);   //Turns off motor
 }
}
         

Cheers

Tags