第1步:零件和組件:
舊的dvd驅動鏡頭。
Arduino(任何uno,nano等)
光敏電阻(LDR)。
10K歐姆電阻。
1 -RGB led
面包板和跳線。
計算機和筆記本電腦(安裝了arduino IDE)。
第二步:撕下電話DVD驅動器
打開DVD驅動器的所有螺絲并將其打開。鏡頭驅動系統安裝在橡膠螺柱上,底部有螺釘。
撕裂后,您會看到DVD驅動器的鏡頭有兩個激光器,但在CD驅動器中只有一個激光器。 DVD驅動器有一個用于CD的紅外激光器和用于DVD的其他紅色激光器。撕下鏡頭在其中插入RGB LED和在光電探測器上插入LDR。
步驟3:電路和編碼:
我使用共同的共陰極RGB led,所以我將負極連接到COM,其他三個端子連接到數字引腳d2,d3,d4。
另一側LDR和10K歐姆電阻執行電壓驅動器并將光轉換為電壓
int R = 2;//紅色連接到D2
int G = 3;//綠色連接到D3
int B = 4;//BLUE conect to D4
int ldr = 14//LDR連接到A0模擬引腳
void setup(){
int thresh_R,thresh_G, thresh_B;
Serial.begin(9600);
pinMode(R,OUTPUT);
pinMode(G,OUTPUT);
pinMode(B,OUTPUT);
////獲取紅色閾值
digitalWrite(R,HIGH);
延遲(500);
延遲(500);
/////獲取綠色閾值
digitalWrite(R,LOW);
digitalWrite(G,HIGH);
延遲(500);
thresh_G = analogRead(ldr);
延遲(500);
/////獲取藍色閾值
digitalWrite(R,LOW);
digitalWrite(G ,LOW);
digitalWrite(B,HIGH);
延遲(500);
thresh_B = analogRead(ldr);
delay(500);
}
void loop(){
int real_R,real_G,real_B;
digitalWrite(R ,HIGH);
延遲(50);
real_R = analogRead(ldr);
延遲(50);
digitalWrite (R,LOW);
digitalWrite(G,HIGH);
延遲(50);
real_G = analogRead(ldr);
延遲(50);
digitalWrite(R,LOW);
digitalWrite(G,LOW);
digitalWrite(B,HIGH);
延遲(50);
real_B = analogRead(ldr);
延遲(50);
if((real_R》 thresh_R + 2)&&(real_G》 thresh_G + 2)&&(real_B》 thresh_B + 2)
{
Serial.println(“color is white”);
}
else if((real_R》 thresh_R + 2)&&(real_G》 thresh_G) )
{
Serial.println(“color is yellow”);
}
else if(real_R》 thresh_R + 2 )
{
Serial.println(“color is red”);
}
else if(real_G》 thresh_G + 2 )
{
Serial.println(“color is green”);
}
else if(real_B》 thresh_B + 2 )
{
Serial.println(“顏色為藍色”);
}
}
第4步:工作原理:
LED的紅色,綠色,藍色光以固定間隔順序發光。但是LDR值可以根據周圍區域的光線而變化,因此當您打開arduino或重置時,它不會給出固定值,而是取值。
當對象光量的特定光線取決于對象的顏色時例如,當紅色對紅色物體輸出的紅色亮起最大時,綠色和藍色最小。這些是三原色,所有顏色都是它的混合物。因此每個對象都有自己的反射屬性組合,由LDR檢測到的兩種或更多顏色在串行監視器上顯示響應
步驟5:注意事項:
DVD和CD驅動激光具有非常小的波長,因此對眼睛和皮膚有害。所以不要給它供電或專注于這樣的區域。.
-
檢測器
+關注
關注
1文章
865瀏覽量
47713 -
DVD
+關注
關注
3文章
134瀏覽量
61957
發布評論請先 登錄
相關推薦
評論