轉載請注明:@小五義http://www.cnblogs.com/xiaowuyi
歡迎加入討論群 64770604
在搭建好arduino開發環境(http://www.cnblogs.com/xiaowuyi/p/3190201.html或者http://wikicode.net/?p=152)后,就可以進行入門學習了。
一、本次實驗所用到的器材為:
1、arduino uno R3無特殊注明,本學習筆記全部使用此板。
2、面包板(1個SYB-120):這里簡單介紹一下面包板,以后的筆記中不再介紹。
面包板又稱“集成電路實驗板“,就是一種插件板,此板上具有若干小型插座(孔)。在進行電路實驗時,可以根據電路連接要求,在相應孔內插入電子元器件的引腳以及導線等,使其與孔內彈性接觸簧片接觸,由此連接成所需的實驗電路。
3、LED:LED兩個針腳有一長一短,短的是連接GND,長的是連接正極。
4、幾根導線:確切的說只用到了兩根。
在本實驗中,我使用了arduino板子上的數字5號端口,其實該實驗在arduino程序的實例中存在,名字叫“blink”,只是在blink實例中使用的是13號端口。連接圖如下:
二、實驗
1、blink代碼實驗
點擊file菜單下EXAMPLES--011.Basics--Blink,就可以看到Blink程序已經加載到程序編輯區。因為使用的端口不同,略加修改如下:
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 5; #這里將原來的13改為5,當然你也可以改為其實端口,只要和led正極連接端口相一致即可。 // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
點擊“校驗”按鈕實現程序的編譯,等待一會兒后狀態欄會提示Done compiling(程序編譯完成),然后點擊upload后,會發現led燈開始每一秒閃爍一次。
2、間隔時間不等的閃爍
想要讓led閃爍的時間間隔不等,會出現一會亮的快,一會亮的慢的情況,這里我們把代碼做一修改就可實現。
第一修改:
int led = 5; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); delay(200); digitalWrite(led, LOW); delay(200); digitalWrite(led,HIGH); delay(2000); digitalWrite(led, LOW); delay(2000); }
該代碼運行后,led先是0.2秒閃一下,然后再2秒閃一下。
進一步修改,加入了for循環,主要是為了練習一下基本語句:
int led = 5; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { for (int i=0;i<5;i=i+1) { digitalWrite(led, HIGH); delay(200); digitalWrite(led, LOW); delay(200); } digitalWrite(led,HIGH); delay(2000); digitalWrite(led, LOW); delay(2000); }
在這一代碼中,led后首先間隔0.2秒連續閃5次,然后間隔2秒閃一次。upload后,會看到具體的效果。
推薦購買網址:https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-15820725129.16.AtgoEm&id=545093340395