你的位置:首頁 > 電源管理 > 正文

                                        網友分享:基于Arduino的直流電機控制

                                        發布時間:2014-06-03 責任編輯:willwoyo

                                        【導讀】:Arduino正在引領開源硬件的興起,使得越來越多的人不需要科班出身就能夠快速進行電子方案的DIY制作。這里分享一個網友發布的,基于Arduino的直流電子控制方案,供大家參考。

                                        硬件資源

                                        這個Arduino 雙H橋直流電機驅動板,藍色的板子,金色的印字,做工真的很精美,物有所值,吼吼~剛拿到的驅動板當務之急就是要了解一下這款驅動板接口說明和參數指南。
                                        Arduino直流電機驅動板的硬件資源
                                        圖1 Arduino直流電機驅動板的硬件資源

                                        可以看到板子左、右下角分別有兩個直流電機控制信號輸入接口,我這里準備了一個從玩具小車上拆下來的電機,我就選擇左邊的接口,將直流電機接入綠色端子,左下角的信號輸入接口三個插針分別是EA、I1、I2,EA是區別于右邊的EB,是用來接入PWM接口給電機調速的,I1、I2分別接入數字接口就OK了,是用來控制電機轉向的。我就將EA接入Arduino的pin11PWM接口,I1、I2分別接8、9數字接口,至于邏輯供電部分,我就直接接入Arduino板子上的5V輸出接口了,這里也可以不接線,因為這款驅動板子是可以板內取電的,如需要板外取電需將控制板內取電的跳線帽取下(這里我只是為了給網友們演示外部取電的使用方法,我并沒有取下板內取電的跳線帽,如圖接線實際上仍是板內取電。這里希望沒有造成誤導),端子左邊的VMS接口是驅動部分取電,我接入四節5號電池,按下圖連接好電路。

                                        電機控制程序


                                        連接好電路就剩編程的工作了,我就讓電機先順時針轉兩秒,再逆時針轉兩秒,再讓電機停止轉動,這樣循環進行。

                                        int pinI1=8;//定義I1接口
                                        int pinI2=9;//定義I2接口
                                        int speedpin=11;//定義EA(PWM調速)接口
                                        void setup()
                                        {
                                          pinMode(pinI1,OUTPUT);//定義該接口為輸出接口
                                          pinMode(pinI2,OUTPUT);
                                          pinMode(speedpin,OUTPUT);
                                        }
                                        void loop()
                                        {
                                          analogWrite(speedpin,100);//輸入模擬值進行設定速度
                                          delay(2000);
                                          digitalWrite(pinI1,LOW);//使直流電機順時針轉
                                          digitalWrite(pinI2,HIGH);
                                          analogWrite(speedpin,100);
                                          delay(2000);
                                          digitalWrite(pinI1,HIGH);//使直流電機逆時針轉
                                          digitalWrite(pinI2,LOW);
                                          analogWrite(speedpin,100);
                                          delay(2000);
                                          digitalWrite(pinI1,HIGH);//使直流電機停止

                                          digitalWrite(pinI2,HIGH);

                                          delay(2000);

                                        }

                                        有一點值得注意,一般情況電機的速度與電機以及其負載都有關系,所以速度要根據實際情況調節。
                                        Arduino直流電機方案圖
                                        圖2,Arduino直流電機方案圖


                                        要采購跳線么,點這里了解一下價格!
                                        特別推薦
                                        技術文章更多>>
                                        技術白皮書下載更多>>
                                        熱門搜索
                                        ?

                                        關閉

                                        ?

                                        關閉

                                        国产精品亚洲АV无码播放|久久青青|老熟妇仑乱视频一区二区|国产精品经典三级一区|亚洲 校园 春色 另类 激情