該應(yīng)用程序適用于 345 英寸 5 英寸的車計(jì)算結(jié)果為 7 英寸 x 12 英寸您將自己更換為金屬車床??梢允褂?Arduino Nano、兩行液晶顯示器和 IR 傳感器的床為您的金屬車床。
因?yàn)槲业能嚧不魻栐O(shè)備沒(méi)有和沒(méi)有表,所以我決定做一個(gè)。在高速下表現(xiàn)不佳。設(shè)備看起來(lái)工作得更好,最高轉(zhuǎn)速會(huì)超過(guò) 1000。可能適合 1000 轉(zhuǎn)速的傳感器,我很少做任何比這轉(zhuǎn)速的金屬。
我的第一個(gè)任務(wù)是讓Arduino、LCD和傳感器啟動(dòng)并運(yùn)行。我在電機(jī)上削磨的手鉆上放了一條條紙,以便在臺(tái)標(biāo)上進(jìn)行測(cè)試。我使用小型驅(qū)動(dòng)驅(qū)動(dòng)工具來(lái)測(cè)試的速度更快。
蜜蜂將用圍繞著保護(hù)其車內(nèi)元件的作用,設(shè)置在側(cè)蓋的位置,以保護(hù)齒輪。
當(dāng)床棒的時(shí)候,有寬敞的空間在主設(shè)備附近用半個(gè)左右蓋上蓋乙柱,所以我把車縮窄子把轉(zhuǎn)換器改成了一個(gè)支架。將傳感器擰到它上面,并為傳感器安裝功能做了一個(gè)漏洞。
圖為安全的測(cè)試設(shè)置,測(cè)試完成后將用覆蓋范圍覆蓋。
這顯示了以及可以使用的位置,電纜將固定。
畫的線是蓋子適合這臺(tái)車床的位置。我用它來(lái)幫助定位傳感器。
傳感器有一個(gè)小安裝孔,只是一塊石頭子上。螺絲和兩個(gè)小柱之間有一個(gè)小柱子。
表面有一個(gè)電位器,可以調(diào)節(jié)信號(hào)距離。您可以調(diào)整它以使信號(hào)距離清晰。
在這里,您可以看到制造的兩個(gè)階段:面包,以及將所有部件安裝到主要產(chǎn)品板的板上。
下圖中需要注意的一些事項(xiàng):
1. 有很多東西要用來(lái)做盒子里。我認(rèn)為這是一個(gè)樹莓派。
2. 切割上原型板焊接到LED上。這允許連接到Arduino。
3. 一個(gè) Arduino 被焊接到一個(gè)小型原型上更改。下個(gè)月我將很容易使用 Nano。如果 Nano 出現(xiàn),將很容易使用。
4. 1K電位器在原電池上,連接斷線時(shí)切斷電源線,并不會(huì)造成短路。
5. 一個(gè)小開關(guān)和 9 副電池座也被焊接到系統(tǒng)中。
6. Nano,以便在更改程序時(shí)安裝。為了實(shí)現(xiàn)這一點(diǎn),在盒子里制作一個(gè)USB連接點(diǎn)。
這個(gè)傳感器圍起來(lái)起來(lái)揭開來(lái),安裝被剪掉,你的X的X壞了。
LCD 的原型板,大多數(shù)的螺絲釘,讓你在外面用任何東西安裝?;蛘吣憧梢栽谖易瞿愕暮凶拥暮凶?,然后把所有東西放在一起。
訂購(gòu)清單
中有很多東西可以在亞馬遜、Adafruit 或 SparkFun 上購(gòu)買。
OSOYOO 10PCS IR 紅外避障傳感器模塊(亞馬遜)
KNACRO IIC/2C/TWI 1602藍(lán)光藍(lán)光模組(亞馬遜)
Mini Nano V3.0 ATmega328P 微控制器板(亞馬遜)
Gikfun 可焊接面包板鑲金飾面原型板(亞馬遜)
Adafruit Perma-Proto 單顆粒樣板 PCB -
9v電池座
9v電池
小撥動(dòng)開關(guān)
LCD顯示對(duì)應(yīng)的10K器電位
我用是很久以前從 SparkFun 購(gòu)買的。我認(rèn)為這是 Raspberry Pi 準(zhǔn)備的。
螺絲、螺絲、水泥和墊片
金屬絲
爆破管
車床計(jì) Arduino 代碼:
// Tachometer_For_Lathe_IR
// 顯示車床主軸轉(zhuǎn)速
// 用途:
// Arduino Nano V 3.0
// OSOYOO IR 紅外傳感器(亞馬遜有售)
// IM162 LCD 顯示屏(亞馬遜上有類似的)
// 包含 LCD 和 Timer 庫(kù)代碼:
#include
#include
//通過(guò)將任何需要的LCD接口引腳//與連接到
const int rs = 12,en = 11,d4 = 6,d5 = 5,d6 = 4,d7 = 3的arduino引腳號(hào)相關(guān)聯(lián)來(lái)初始化庫(kù);
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// 用于跟蹤的 RPM 值
const int IRSensorPin = 2;// IR 傳感器輸入引腳的編號(hào)
const int ledPin = 13;
// Nano int ledState = HIGH上的 LED 引腳數(shù);// 輸出引腳的當(dāng)前狀態(tài)
// 注意:該程序曾與簧片繼電器一起使用,用于自行車踏頻計(jì)數(shù)器,
// 但它可以與紅外傳感器的輸入一起正常工作。
// 如果我需要重用它,所有變量都還在。
整數(shù)輸入狀態(tài);// 來(lái)自輸入引腳的當(dāng)前狀態(tài)
int lastInputState = LOW;// 來(lái)自輸入引腳的前一個(gè) InputState
long lastDebounceTime = 0;// 最后一次切換輸出引腳
long debounceDelay = 5;// 去抖時(shí)間;
如果輸出長(zhǎng)時(shí)間閃爍,則增加;
長(zhǎng)結(jié)束時(shí)間;
長(zhǎng)啟動(dòng)時(shí)間;
國(guó)際轉(zhuǎn)數(shù) = 0;
//int lnCount = 0;// 平均 RPM 計(jì)數(shù)器
//int avgRPM = 0;// 平均總數(shù)
//長(zhǎng)電壓= 0;// 從鍋中讀取的值
//long outputValue = 0;// 值輸出到 PWM(模擬輸出)
//int speedVal = 0;
//長(zhǎng) rpm50 = 833333;
//volatile unsigned long cadTime = 0;// 對(duì)共享變量使用 volatile
//long timeC, endTimeC, startTimeC;
//int RPMC = 0;
浮動(dòng) lnTime = 0;
//int SpeakerPin = 10;
//int 低速率;
//int hiRate;
//int potPin = A0;//模擬引腳 0
//int switchValPin = A1;//模擬引腳1
//------------------------------------------------ ---------------
void setup(void) {
pinMode(IRSensorPin, INPUT);
pinMode(ledPin,輸出);
數(shù)字寫入(ledPin,ledState);
序列號(hào).開始(9600);
lcd.begin(16, 2);//初始化液晶顯示器
// 顯示屏上的啟動(dòng)文本
lcd.clear();
lcd.print("車床紅外。");
lcd.setCursor(0, 1);
lcd.print("轉(zhuǎn)速表");
延遲(2000);
結(jié)束時(shí)間 = 0;
Timer1.initialize(1000000);// 將定時(shí)器設(shè)置為 60 rpm,1,000,000 微秒(1 秒)
Timer1.attachInterrupt(timerIsr);// 在此處附加服務(wù)例程
}
//------------------------------------------------ ---------------
無(wú)效循環(huán)(無(wú)效){
時(shí)間=毫秒();
int currentSwitchState = digitalRead(IRSensorPin);
if (currentSwitchState != lastInputState) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (currentSwitchState != inputState) {
inputState = currentSwitchState;
if (inputState == LOW) {
digitalWrite(ledPin, LOW);
計(jì)算RPM();// 來(lái)自傳感器的實(shí)際 RPM
ledState = !ledState;
}
else {
digitalWrite(ledPin, HIGH);
}
}
}
lastInputState = currentSwitchState;
}
//------------------------------------------------ ---------------
void calculateRPM() {
startTime = lastDebounceTime;
lnTime = 開始時(shí)間 - 結(jié)束時(shí)間;
RPM = 60000 /(開始時(shí)間 - 結(jié)束時(shí)間);
結(jié)束時(shí)間 = 開始時(shí)間;
}
// --------------------------
// 自定義 ISR 定時(shí)器例程
// 定時(shí)器設(shè)置為 rpm,見上
// ----- ---------------------
void timerIsr()
{
// 每秒打印 RPM
// 基于計(jì)時(shí)器的 RPM
Serial.println("------- --------");
時(shí)間=毫秒()/ 1000;
序列號(hào)。打?。〞r(shí)間);
Serial.print("RPM:");
序列號(hào).println(RPM);
lcd.clear();
lcd.print("主軸轉(zhuǎn)速");
lcd.setCursor(0, 1);
lcd.print(RPM);
lcd.setCursor(6,1);
lcd.print("RPM");
延遲(500);
轉(zhuǎn)速 = 0;
}
//------------------------------------------------ ---------------
-
傳感器
+關(guān)注
關(guān)注
2550文章
51035瀏覽量
753083 -
Arduino
+關(guān)注
關(guān)注
188文章
6468瀏覽量
186957 -
車床設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
2瀏覽量
5201
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論