“(SKU:RB-01C076)CarDuino UNO R3(直插芯片)”的版本間的差異

來自ALSROBOT WiKi
跳轉至: 導航、 搜索
?模塊測試
?產品相關推薦
 
(未顯示2個用戶的4個中間版本)
第42行: 第42行:
  
 
==應用例程==
 
==應用例程==
?
===模塊測試===
+
此程序用于測試CarDuino UNO R3的所有I/O口狀態(tài)
?
我們使用Arduino控制器來做個測試,要用到硬件設備如下:
+
===示例代碼===
?
# Arduino控制器×2
+
<pre style='color:blue'>int val;//定義模擬讀數(shù)變量
?
# Arduino 傳感器擴展板×2
+
int i;//定義變量i
?
# 紅外發(fā)射模塊×1和紅外接收模塊×1
+
int ledpin[]={1,3,5,7,9,11,13,15,17,19,21};//定義led腳 1,3,5,7,9,11,13,15,17,19,21
?
# 電位計模塊×1和 LED 發(fā)光模塊×1
+
int ledpin1[]={0,2,4,6,8,10,12,14,16,18,20,22};//定義led腳1 0,2,4,6,8,10,12,14,16,18,20,22
?
# 通用3P傳感器連接線×4
+
void setup()
?
# USB 數(shù)據(jù)通信線×2
+
?
[[文件:3232-4.jpg|500px|有框|居中]]
+
?
:如圖所示,使用傳感器連接線將電位計模塊連接到作為發(fā)射部分的Arduino傳感器擴展板的模擬口0 上,紅外發(fā)射頭連接到 Arduino傳感器擴展板的數(shù)字口2 上。然后使用傳感器連接線將紅外發(fā)射頭連接到作為接收部分的Arduino傳感器擴展板的數(shù)字口2上,將LED 發(fā)光模塊連接到Arduino傳感器擴展板的數(shù)字口9 上。
+
?
:將發(fā)送部分代碼編譯后下載到作為發(fā)送部分的Arduino里,將接收部分代碼編譯后下載到作為接收部分的Arduino里,就可以在串口助手窗口上顯示接收到的當前值(注:串口助手波特率調到115200 )。Arduino實驗代碼如下。
+
?
:發(fā)送部分程序:
+
?
<pre style='color:blue'>#define ADD 0x00
+
?
int IR_S = 2;   // 定義數(shù)字口2 為發(fā)射模塊接口
+
?
int a;  
+
?
void setup()
+
?
{  
+
?
pinMode(IR_S, OUTPUT); //定義IR_S為輸出模式
+
?
Serial.begin(115200); //定義頻率為115200
+
?
}
+
?
void loop()
+
?
{
+
?
    uint8_t dat,temp; 
+
?
{  
+
?
      a=analogRead(0); // 讀取模擬口0 的值
+
?
      temp =a/4;
+
?
      Serial.println(temp,DEC ); // 將讀取的數(shù)值打印到串口上
+
?
      IR_Send38KHZ(280,1);//發(fā)送9ms 的起始碼
+
?
      IR_Send38KHZ(140,0);//發(fā)送4.5ms 的結果碼
+
?
   
+
?
      IR_Sendcode(ADD);//用戶識別碼
+
?
      dat=~ADD;
+
?
      IR_Sendcode(dat);//用戶識別碼反嗎
+
?
      IR_Sendcode(temp);// 操作碼
+
?
      dat=~temp;
+
?
      IR_Sendcode(dat);//操作碼反碼
+
?
   
+
?
      IR_Send38KHZ(21,1);// 發(fā)送結束碼
+
?
    }
+
?
    delay(200);
+
?
+
?
+
?
void IR_Send38KHZ(int x,int y) //產生38KHZ紅外脈沖
+
 
{   
 
{   
?
for(int i=0;i<x;i++)//15=386US
+
   for(i=0;i<13;i++)
?
  
+
     {
?
      if(y==1)
+
      pinMode(ledpin[i],OUTPUT);//將led腳設置為輸出
?
        {
+
      pinMode(ledpin1[i],OUTPUT);//將led腳1設置為輸出
?
      digitalWrite(IR_S,1);
+
?
          delayMicroseconds(9);
+
?
          digitalWrite(IR_S,0);
+
?
          delayMicroseconds(9);
+
?
        }
+
?
      else 
+
?
        {
+
?
          digitalWrite(IR_S,0);
+
?
          delayMicroseconds(20);
+
?
        }
+
?
  }                                                           
+
?
}
+
?
 
+
?
void IR_Sendcode(uint8_t x) 
+
?
{
+
?
    for(int i=0;i<8;i++)  
+
?
     {  
+
?
      if((x&0x01)==0x01)
+
?
        {
+
?
            IR_Send38KHZ(23,1);  
+
?
            IR_Send38KHZ(64,0);             
+
?
        }
+
?
        else 
+
?
        {
+
?
            IR_Send38KHZ(23,1);
+
?
            IR_Send38KHZ(21,0); 
+
?
        }
+
?
        x=x>>1;
+
?
    } 
+
?
} </pre>
+
?
:此代碼的功能是從模擬口0 讀取電位計的值,并通過紅外發(fā)射頭將讀取的數(shù)值發(fā)送出去。
+
?
接收部分程序:
+
?
<pre style='color:blue'>#define IR_LED  2  //IR 接收數(shù)字口2
+
?
#define MAX  128
+
?
#define MICRO_STEP  10
+
?
#define IDLE_PULSE  4000
+
?
unsigned long pulses[MAX];
+
?
unsigned char IRCOM[7];
+
?
unsigned long z;
+
?
int w;
+
?
byte f=B00000000; // 定義f 為位
+
?
int n;
+
?
int ledpin=9; // 定義數(shù)字口9 為LED 模塊接口
+
?
void setup()
+
?
{
+
?
  pinMode(IR_LED, INPUT);
+
?
  Serial.begin(115200);
+
?
  pinMode(ledpin,OUTPUT); //定義ledpin 為輸出模式
+
?
}
+
?
                                                           
+
?
void loop()
+
?
+
?
  if( digitalRead(IR_LED) == LOW)
+
?
  {
+
?
    // 開始接收數(shù)據(jù)
+
?
        int count = 0;
+
?
        int exit = 0;
+
?
    while(!exit)
+
?
    {
+
?
      while( digitalRead(IR_LED) == LOW )
+
?
        delayMic roseconds(MICRO_STEP);
+
?
      unsigned long start = micros();
+
?
      int max_high = 0;
+
?
      while( digitalRead(IR_LED) == HIGH )
+
?
      {
+
?
        delayMic roseconds(MICRO_STEP);
+
?
        max_high += MICRO_STEP;
+
?
        if( max_high > IDLE_PULSE )
+
?
        {
+
?
          exit = 1;
+
?
          break;
+
?
        }
+
?
      }
+
?
      unsigned long duration = micros() - start;
+
?
      pulses[count++] = duration;
+
 
     }
 
     }
?
    for(int i=3; i<4; i++)  
+
}
?
    {  
+
 
?
      for(int j=0;j<8;j++)  
+
void loop()
?
      {
+
{
?
        if(pulses[ i*8+j+1] < IDLE_PULSE)  
+
  for(val=0;val<13;val++)
?
        {
+
    digitalWrite(ledpin[val],HIGH);//將led腳設置為高電平
?
            IRCOM[i]=IRCOM [i] >> 1;          
+
  for(val=0;val<13;val++)
?
            if((pulses[i*8+j+1])>1000)  
+
    digitalWrite(ledpin1[val],LOW);//將led腳1設置為低電平
?
              {IRCOM[i] = IRCOM[i] | 0x80;}           
+
    delay(500);                    //延遲5s
?
        }
+
   for(val=0;val<13;val++)
?
      z= pulses[i*8+j+1];
+
    digitalWrite(ledpin[val],LOW);//將led腳設置為低電平
?
/***************************************************/  
+
  for(val=0;val<13;val++)
?
    //將接收到的脈沖數(shù)據(jù)轉換成十進制                                                                   
+
     digitalWrite(ledpin1[val],HIGH);//將led腳1設置為高電平
?
/***************************************************/    
+
    delay(500);                     //延遲5s
?
      if(z<800)  
+
}
?
          w=10000000; //如果Z 小于800  w=10000000
+
</pre>
?
      else
+
===程序效果===
?
          w=00000000; //如果Z 大于800  w=00000000
+
:連接在CarDuino UNO R3引腳的LED小燈呈流水狀交替閃爍
?
      f=f>>1;         // 將f 右移1 位
+
?
      f=f+w;     
+
?
/***************************************************/
+
?
    }
+
?
     }
+
?
  n=int(f);
+
?
  Serial.print(n);// 將接收到的數(shù)據(jù)打印到串口上
+
?
  analogWrite(ledpin,n); //將接收到的數(shù)據(jù)寫入ledpin 接口,控制LED 亮度
+
?
  }  
+
?
} </pre>
+
?
:此部分代碼功能是通過紅外接收頭接收發(fā)送部分發(fā)送出的電位計的值來控制LED的亮度變化并通過串口助手顯示當前接收到的值。如下圖所示左側串口助手(串口號為:117 )顯示的是紅外發(fā)送部分當前發(fā)送出的電位計的值,右側串口助手(串口號為:88)顯示的是紅外接收部分接收到的數(shù)值。
+
?
[[文件:3232-5.jpg|500px|有框|居中]]
+
  
 
==產品相關推薦==
 
==產品相關推薦==
?
1.購買地址<br/>
+
[[文件:erweima.png|230px|無框|右]]
 +
===產品購買地址===
 
[http://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-3667083713.17.ifjFAK&id=38952239931 CarDuino UNO R3 控制器購買地址]<br/>
 
[http://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-3667083713.17.ifjFAK&id=38952239931 CarDuino UNO R3 控制器購買地址]<br/>
?
2.相關書籍<br/>
+
===周邊產品推薦===
 
[http://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-3667091491.16.PkhfHw&id=6824183697 首本Arduino中文教材 入門必讀]<br/>
 
[http://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-3667091491.16.PkhfHw&id=6824183697 首本Arduino中文教材 入門必讀]<br/>
?
3.學習套件<br/>
 
 
[http://item.taobao.com/item.htm?spm=a1z10.5-c.w7022481-3722883497.83.PkhfHw&id=18753345412 愛上Arduino 互動入門套件]<br/>
 
[http://item.taobao.com/item.htm?spm=a1z10.5-c.w7022481-3722883497.83.PkhfHw&id=18753345412 愛上Arduino 互動入門套件]<br/>
 +
===相關問題解答===
 +
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=4156&highlight=carduino Arduino上傳程序失敗]<br/>
 +
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=3259&highlight=carduino Carduino UNO R3 第一次更新更新后無法正常運行]<br/>
 +
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=1461 Arduino win8中的驅動安裝]<br/>
 +
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=337 Arduino驅動安裝失敗最全的解決辦法]<br/>
 +
===相關學習資料===
 +
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=3843&extra=page%3D1%26filter%3Dtypeid%26typeid%3D16 Arduino創(chuàng)始人 板子叔親自教你Arduino]<br/>
 +
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=2953&extra=page%3D1%26filter%3Dtypeid%26typeid%3D16 Arduino 視頻教程]<br/>
 +
[http://www.makerspace.cn/forum.php?mod=forumdisplay&fid=58&filter=typeid&typeid=1 Arduino UNO 基礎教程]<br/>
 +
[http://pan.baidu.com/s/1o6H3oJw Arduino UNO R3 設計文件 Eagle 文件下載]<br/>
 +
[https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf Arduino UNO R3 電路原理圖文件 PDF 版本]<br/>
 +
[https://www.arduino.cc/en/Main/ArduinoBoardUno Arduino UNO R3 官方網站介紹(英文版)]<br/>
 +
[http://v.youku.com/v_show/id_XOTM5NDQyNTEy.html?from=y1.7-2 RPLIDAR 激光雷達與Arduino連接的互動應用視頻]<br/>
 +
[http://v.youku.com/v_show/id_XMzE5NjI3NjAw.html?from=y1.7-2 愛上Arduino互動入門套件中文配套視頻]<br/>
 +
[http://www.makerspace.cn/portal.php 奧松機器人技術論壇]<br/>

2015年10月23日 (五) 13:20的最后版本


RB01C076CarduinoUnoR3.jpg

目錄

產品概述

Carduino UNO R3是Arduino USB接口系列的最新版本, Carduino Uno R3與Arduino Uno R3一樣的AREF邊緣增加了SDA和SCL端口,此外,RESET邊上還有兩個新的端口。一個端口是IOREF,它能夠使擴展板適應主板的電壓,另一個空的端口預留給將來擴展的可能。Carduino UNO R3能夠兼容傳感器擴展板v5.0并且能用它額外的端口適應新的擴展板。 Carduino可以用于做項目開發(fā)的控制核心也可以與PC進行直接的USB連接完成與電腦間的互動,運行于開源的IDE開發(fā)環(huán)境,軟件可以在Arduino官網直接下載(支持Window,Linux以及Max系統(tǒng)),處理器核心是ATmega328,同時具有14路數(shù)字輸入/輸出口(其中6路可作為PWM輸出),6路模擬輸入,一個16MHz晶體振蕩器,一個USB口,一個電源插座,一個ICSP header和一個復位按鈕。

規(guī)格參數(shù)

  • 工作電壓:5V
  • 輸入電壓:接上USB時無須外部供電或外部7V~12V DC輸入
  • 輸出電壓:5V DC輸出和3.3V DC輸出 和外部電源輸入
  • 微處理器:ATmega328
  • Bootloader:Carduino Uno
  • 時鐘頻率:16 MHz
  • 輸入電壓:7-12V(推薦)
  • 輸入電壓:6-20V(限制)
  • 支持USB接口協(xié)議及供電(不需外接電源)
  • 支持ISP下載功能。
  • 14路數(shù)字輸入輸出口:工作電壓為5V,每一路能輸出和接入最大電流為40mA。

(1)串口信號RX(0號)、TX(1號): 與內部 ATmega8U2 USB-to-TTL 芯片相連,提供TTL電壓水平的串口接收信號。
(2)外部中斷(2號和3號):觸發(fā)中斷引腳,可設成上升沿、下降沿或同時觸發(fā)。
(3)脈沖寬度調制PWM(3、5、6、9、10 、11):提供6路8位PWM輸出。
(4)SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。
(5)LED(13號):Arduino專門用于測試LED的保留接口,輸出為高時點亮LED,反之輸出為低時LED熄滅。

  • 6路模擬輸入A0到A5:每一路具有10位的分辨率(即輸入有1024個不同值),默認輸入信號范圍為0到5V
  • AREF:模擬輸入信號的參考電壓。
  • Reset:信號為低時復位單片機芯片。
  • 直流電流:40mA(I/O端口)
  • 直流電流:50mA(3.3V端口)
  • Flash 內存:32 KB (ATmega328其中0.5 KB用于引導程序)
  • SRAM:2 KB (ATmega328)
  • EEPROM:1 KB (ATmega328)
  • 尺寸:75x55x15mm

使用方法

1.引腳說明

Carduino UNO控制器管腳說明圖

2.編譯環(huán)境下載(當前最新版本IDE是Arduino1.6.4)
Arduino IDE編譯環(huán)境下載
3.驅動安裝
Arduino驅動安裝方法
4.程序下載
程序下載方法

應用例程

此程序用于測試CarDuino UNO R3的所有I/O口狀態(tài)

示例代碼

int val;//定義模擬讀數(shù)變量
int i;//定義變量i
int ledpin[]={1,3,5,7,9,11,13,15,17,19,21};//定義led腳 1,3,5,7,9,11,13,15,17,19,21
int ledpin1[]={0,2,4,6,8,10,12,14,16,18,20,22};//定義led腳1 0,2,4,6,8,10,12,14,16,18,20,22
void setup()
{  
   for(i=0;i<13;i++)
    {
      pinMode(ledpin[i],OUTPUT);//將led腳設置為輸出
      pinMode(ledpin1[i],OUTPUT);//將led腳1設置為輸出
    }
}

void loop()
{
  for(val=0;val<13;val++)
    digitalWrite(ledpin[val],HIGH);//將led腳設置為高電平
  for(val=0;val<13;val++)
    digitalWrite(ledpin1[val],LOW);//將led腳1設置為低電平
    delay(500);                    //延遲5s
  for(val=0;val<13;val++)
    digitalWrite(ledpin[val],LOW);//將led腳設置為低電平
  for(val=0;val<13;val++)
    digitalWrite(ledpin1[val],HIGH);//將led腳1設置為高電平
    delay(500);                     //延遲5s
}

程序效果

連接在CarDuino UNO R3引腳的LED小燈呈流水狀交替閃爍

產品相關推薦

Erweima.png

產品購買地址

CarDuino UNO R3 控制器購買地址

周邊產品推薦

首本Arduino中文教材 入門必讀
愛上Arduino 互動入門套件

相關問題解答

Arduino上傳程序失敗
Carduino UNO R3 第一次更新更新后無法正常運行
Arduino win8中的驅動安裝
Arduino驅動安裝失敗最全的解決辦法

相關學習資料

Arduino創(chuàng)始人 板子叔親自教你Arduino
Arduino 視頻教程
Arduino UNO 基礎教程
Arduino UNO R3 設計文件 Eagle 文件下載
Arduino UNO R3 電路原理圖文件 PDF 版本
Arduino UNO R3 官方網站介紹(英文版)
RPLIDAR 激光雷達與Arduino連接的互動應用視頻
愛上Arduino互動入門套件中文配套視頻
奧松機器人技術論壇