久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9275|回復: 5
打印 上一主題 下一主題
收起左側

Arduino的入門與精深

[復制鏈接]
跳轉到指定樓層
樓主
ID:76244 發表于 2015-4-7 01:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一Arduino的應用市場
二如何開始使用你的Arduino kit
三Arduino的入門與精深

一Arduino的應用市場
便宜——和其他平臺相比。arduino板是相當便宜。最便宜的arduino課可以自己動手制作,即使組裝好的成品,也不會超過200元。
跨平臺——arduino軟件在window,Macintosh OSX和Linux平臺上均可以操作,大部分其他的單片機只能運行在window操作系統下。
簡易的操作環境——初學者很容易就能學會arduino的編程環境,同時它還能為高級用戶提供高級運用。對于老師們來講,一般都很容易運用processing編程環境,如果學生使用processing編程環境的話,也很容易熟悉。
軟件開源并可拓展——arduino軟件是開源的,對于有經驗的程序員是可以拓展的。arduino編程語言可以通過c++庫進行拓展。如果有人想要去了解技術上的細節,可以通過arduino語言直接使用AVR  c語言(因為arduino語言是機基于AVR c語言的)。類似,如果你有需要的話,也可以再arduino中寫入AVR c語言。
硬件開源并可拓展——arduino板是基于ateml 的atmelga8和atmelga128/328的單片機。arduino是基于creative Commons許可協議。所以有經驗的設計師根據需求設計自己的模塊,可以對其進行拓展和改造。甚至對于一些相對沒有經驗的用戶,也可以通過制作實驗板來理解arduino是如何工作的,省錢又省事。
arduino的起源
Massimo Banzi之前是意大利Ivrea一家高科技設計學校的老師。他的學生們經常抱怨找不到便宜好用的微控制器。 2005年冬天, Massimo Banzi跟David Cuartielles討論了這個問題。 David Cuartielles是一個西班牙籍晶片工程師,當時在這所學校做訪問學者。兩人決定設計自己的電路板,并引入了Banzi的學生David Mellis為電路板設計編程語言。兩天以后,David Mellis就寫出了程式碼。又過了三天,電路板就完工了。這塊電路板被命名為Arduino。



各種arduino型號
Arduino Uno

Arduino Nano                                Arduino GSM Shield Front                 Arduino Ethernet Shield


二如何開始使用你的Arduino kit
arduino的配置:
arduino是基于AVR平臺,對AVR庫進行二次封裝編譯,把端口都打包好了。神馬寄存器呀,地址指針呀,都不用寫。大大降低軟件開發難度,適合非專業愛好者使用。優點和缺點并存,因為是二次開發,所以代碼執行不如AVR代碼精練,代碼執行效率和代碼體積都弱于AVR直接編譯。
基本性能配置:
ditital i/o 數字輸入/輸出端口0-13.
anglog i/o 模擬輸入/輸出端口0-5.
支持ICP下載,支持tx/rx.
輸入電壓:支持3.3v/5v輸出。
處理器:支持atmel atmegal168/328處理器,因為支持者眾多,已有公司開發出32位的mcu支持arduino。
arduino的開發環境介紹

Arduino能通過各種各樣的傳感器來感知環境,通過控制燈光、馬達和其他的裝置來反饋、影響環境。板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進制文件,燒錄進微控制器。對Arduino的編程是利用 Arduino編程語言 (基于 Wiring)和Arduino開發環境(基于 Processing)來實現的。基于Arduino的項目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運行的軟件,他們之間進行通信 (比如 Flash, Processing, MaxMSP)來實現。
Arduino是一個基于開放原始碼的軟硬件平臺,構建于開放原始碼simple I/O介面版,并且具有使用類似Java、C語y言Processing/Wiring開發環境。
可以快速使用Arduino與Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider等軟件結合,作出互動作品。 Arduino可以使用現有的電子元件例如開關或者傳感器或者其他控制器件、LED、步進馬達或其他輸出裝置。 Arduino也可以獨立運行,并與軟件進行交互,例如: Macromedia Flash, Processing, Max/MSP, Pure Data, VVVV或其他互動軟件…。 Arduino的IDE界面基于開放源代碼,可以免費下載使用,開發出更多令人驚艷的互動作品。

三Arduino的入門與精深
開始運行你的你的Arduino kit

一個簡單的程序讓讀取模擬端口ao的值并用串口發送
void setup() {
  Serial.begin(9600);//串口波特率9.6kb//d0-tx//d1-rx
}
void loop()
{
  int sensorValue = analogRead(A0);//讀取a0值(0-1023)
  Serial.println(sensorValue);//串口發送數據
  delay(1);    //延時
}
注:arduino由初始化函數setup()
       與循環函數loop組成。


串口控制輸出
void setup() {
  Serial.begin(9600);
      for (int thisPin = 2; thisPin < 7; thisPin++)
{
        pinMode(thisPin, OUTPUT);//將d2-d7設置為輸出模式
      }
}
void loop()
{
if (Serial.available() > 0) {   //如果串口收到信息
    int inByte = Serial.read();
    switch (inByte) {
    case 'a':                        //接受a,將d2置高
     digitalWrite(2, HIGH);
      break;
    case 'b':   
      digitalWrite(3, HIGH);   //接受b,將d3置高
      break;

case 'c':        
  digitalWrite(4, HIGH);    //接受c,將d4置高
     break;
    case 'd':   
      digitalWrite(5, HIGH);    //接受d,將d5置高
      break;
    case 'e':   
   digitalWrite(6, HIGH);    //接受e,將d6置高
      break;
    default:
      // turn all the LEDs off:
      for (int thisPin = 2; thisPin < 7; thisPin++)
{
        digitalWrite(thisPin, LOW);  
     //其他情況就將d2-d7均置低
      }  
    }
   }
}

局域網控制LED燈
核心代碼:void loop () {
  word pos =ether.packetLoop(ether.packetReceive());
    if(pos)
    {
     if(strstr((char *)Ethernet::buffer + pos, "GET /led_off.png") != 0)  
       send_png_image(led_off, sizeof(led_off));
     else if(strstr((char *)Ethernet::buffer + pos, "GET /led_on.png") != 0)
       send_png_image(led_on, sizeof(led_on));
     else
    {         
      if(strstr((char *)Ethernet::buffer + pos, "GET /?LED1") != 0)
      {          led1Status = !led1Status;
         digitalWrite(LED1PIN, led1Status);   
       }         
    if(strstr((char *)Ethernet::buffer + pos, "GET /?LED2") != 0) {                                                         網頁中LED圖標
         led2Status = !led2Status;
         digitalWrite(LED2PIN, led2Status);           
       }
       BufferFiller bfill = ether.tcpOffset();
       bfill.emit_p(PSTR("HTTP/1.0 200 OK\r\n"
         "Content-Type: text/html\r\nPragma: no-cache\r\n\r\n"
         "<html><head><title>WebLeds</title></head><body>"
     "Toggle leds: "));         
       if(led1Status) bfill.emit_p(PSTR("<a href=\"/?LED1\"><img src=\"led_on.png\"></a>"));
       else bfill.emit_p(PSTR("<a href=\"/?LED1\"><img src=\"led_off.png\"></a>"));
       if(led2Status) bfill.emit_p(PSTR("<a href=\"/?LED2\"><img src=\"led_on.png\"></a>"));
    else bfill.emit_p(PSTR("<a href=\"/?LED2\"><img src=\"led_off.png\"></a>"));      
       bfill.emit_p(PSTR("</body></html>"));
       ether.httpServerReply(bfill.position());
   }
   }
}

讓你的arduino連入物聯網





小節:
通過一周對arduino的學習,我們意識到雖然arduino的開源軟硬件都很多,在消費類電子市場占有很大比例,但 對于資深工程師來說,arduino只是AVR的入門硬件,在精密電子儀器,中高端設備中有明顯的不足。對學習嵌入式,物聯網方面有一定的輔助作用。
  



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:62971 發表于 2015-8-26 15:29 | 只看該作者
贊    希望更多源碼
回復

使用道具 舉報

板凳
ID:69240 發表于 2015-11-24 15:28 來自手機 | 只看該作者
很棒,謝謝分享。。。
回復

使用道具 舉報

地板
ID:117823 發表于 2016-5-1 17:23 | 只看該作者
哈哈,我又看見了呀。
回復

使用道具 舉報

5#
ID:122782 發表于 2016-5-24 09:56 | 只看該作者
不錯,學習了
回復

使用道具 舉報

6#
ID:122752 發表于 2016-5-26 20:47 | 只看該作者
謝謝大大分享GOOD
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区免费在线 | 色橹橹欧美在线观看视频高清 | 国产999精品久久久久久 | 精精国产视频 | 黄色在线观看网址 | 亚洲精品成人av久久 | 久久久2o19精品 | 欧美中文在线 | 欧美黄色网 | 91久久久久久久久久久久久 | 福利精品 | 国产网站久久 | 99精品国产一区二区青青牛奶 | 狠狠做深爱婷婷综合一区 | 二区三区视频 | 日本不卡一区二区三区 | 日韩精品专区在线影院重磅 | av网站在线看 | 天天干视频 | 全免费a级毛片免费看视频免 | 久久精品中文字幕 | 欧美大片久久久 | 91精品久久久久久久久久入口 | 一级毛片免费视频 | 黄色在线免费观看 | 性国产xxxx乳高跟 | 精品视频在线播放 | 成人三区四区 | 夜夜av | 国产区一区二区三区 | 在线午夜| 久草在线免费资源 | 精品成人一区二区 | 久久精品日产第一区二区三区 | 成人午夜激情 | 97久久精品午夜一区二区 | 一级毛片视频免费观看 | av网站免费在线观看 | v片网站| 日韩久久久久 | 天天操天天天 |