This Arduino Sketch tests a 3D Printer TL-TOUCH auto leveling sensor for 3D Printers.
Like the one in these links. https://drive.google.com/file/d/0B_lX6Bwizwk0RzFhTTF2dHhSems/view?usp=sharing
BLtouch VS 3Dtouch 3D Printer bed leveling sensor match up
Like the one in these links. https://drive.google.com/file/d/0B_lX6Bwizwk0RzFhTTF2dHhSems/view?usp=sharing
BLtouch VS 3Dtouch 3D Printer bed leveling sensor match up
C:
/* This tests a 3D Printer TL-TOUCH auto leveling sensor for 3D Printers.
* It sends a RC servo PWM signal of 10 degrees to lower the test probe.
* If the probe is pushed in approximately 0.130", the unit sends a quick positive pulse
* on the white wire. No more than 3.3 volts. (That is why pullups on)
* The unit will suck the probe in & flash the red light.
* Then this sends a PWM signal of 90 degrees to raise the test probe, simulating moving
* to another test point. After a delay it lowers the probe again & starts over.
* BL-touch may have inverted output so use the attachInterrupt line for FALLING edge detect.
* The repeatability on this one ranged about 0.003"
* This example code is in the public domain. DNA-Robotics.com 2018
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int Touch = 0;
const int ledPin = 13; // the pin that the LED is attached to
const byte interruptPin = 2; // White probe output wire to Digital pin 2
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(ledPin, OUTPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, RISING); // off to on will interrupt & go to blink function
// attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING); // FALLING edge detect for BL-touch, Maybe?
}
void loop()
{
myservo.write(10); // tell servo to go to DOWN position
// delay(15); // waits 15ms for the servo to reach the position
if (Touch == 1) { // went from off to on:
myservo.write(90); // tell servo to go to UP position.
digitalWrite(ledPin, HIGH); // Turn LED on
delay(2000);
digitalWrite(ledPin, LOW); // Turn LED off
Touch = 0;
}
}
void blink() {
Touch = 1;
}