基Arduino簡易智能垃圾桶


  1. 材料清單:Arduino開發板  超聲波傳感器  舵機  杜邦線 
  2. 原理:當我們人靠近垃圾桶,超聲波傳感器測出兩者之間的距離,距離小於設定的閾值,舵機轉動,垃圾桶蓋打開。
  3. 功能:實現人到自動打開垃圾袋。
  4. 線路連接:

  

 
元件名稱 I/O引腳
arduino 正極 負極 引腳2 引腳3 引腳9
舵機 正極  負極     信號接收口
超聲波傳感器 正極 負極 TrigPin  EchoPin  

 

  5.注意事項:舵機紅色線:正極接5v    棕色(有的黑色)線:負極      黃色(橘色):arduino9號引腳

  • 代碼:
 1 #include <Servo.h>
 2 Servo myservo;  // 創建舵機對象來控制舵機
 3 int pos = 0; 
 4 const int TrigPin = 2; 
 5 const int EchoPin = 3; 
 6 float distance; 
 7 void setup() 
 8 {   
 9   // 初始化串口通信及連接SR04的引腳
10         Serial.begin(9600); 
11         pinMode(TrigPin, OUTPUT); 
12     // 要檢測引腳上輸入的脈沖寬度,需要先設置為輸入狀態
13         pinMode(EchoPin, INPUT); 
14     Serial.println("Ultrasonic sensor:");
15     myservo.attach(9);  
16     // 把連接在引腳9上的舵機賦予舵機對其控制
17 } 
18 void loop() 
19 { 
20     // 產生一個10us的高脈沖去觸發TrigPin 
21         digitalWrite(TrigPin, LOW); 
22         delayMicroseconds(2); 
23         digitalWrite(TrigPin, HIGH); 
24         delayMicroseconds(10);
25         digitalWrite(TrigPin, LOW); 
26     // 檢測脈沖寬度,並計算出距離
27         distance = pulseIn(EchoPin, HIGH) / 58.00;
28         Serial.println(distance); 
29         delay(300);
30         if (distance<=50)
31         {
32           for(pos = 0; pos <= 120; pos += 120) // 從0度到120度 步長為120度,角度自己可調整
33           {                                  
34            myservo.write(5);              // 告訴舵機到達位置
35            delay(150);                       // 舵機命令之間等待15ms
36             }
37         }
38         if  (distance>=50)
39         {
40           for(pos = 180; pos>=0; pos-=180)     // 從120度到0度
41           {
42             myservo.write(120);              // 在相反的方向上移動舵
43             delay(150);                       // 舵機命令之間等待15ms
44             }
45         }
46 }

 

 

 6.選擇對應串口上傳,每個人的電腦有可能不一樣,查看舵機轉動,方向不合適可自己調整。

  總結:1,制作模型過程要多加小心,我的手指就是在制作過程中操作不當,流血不止 嘻嘻 還好沒有什么大礙。2、在連接電路過程中有必要的時候可以把線路接穩了,能固 定就可以固定了,現在接的電路比較簡單,以后可能要接觸多電路時就很難排錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM