日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]Arduino作為一款為創(chuàng)客而造的智能硬件,以其簡單,靈活,開源等特點,吸引了大批愛好者。只要稍微有一點c語言基礎(chǔ)和初高中物理知識,就能利用arduino創(chuàng)造出許多好玩的智能小物件。本篇博文將簡單介紹


Arduino作為一款為創(chuàng)客而造的智能硬件,以其簡單,靈活,開源等特點,吸引了大批愛好者。只要稍微有一點c語言基礎(chǔ)和初高中物理知識,就能利用arduino創(chuàng)造出許多好玩的智能小物件。



本篇博文將簡單介紹如何使用arduino逐步實現(xiàn)簡單的物聯(lián)網(wǎng)控制:點燈,串口點燈,利用開發(fā)板點燈。

一、準(zhǔn)備

首先我們需要下載arduino的開發(fā)環(huán)境

去www.arduino.cc 下載 Arduino IDE軟件。一路下一步安裝打開開發(fā)環(huán)境。

代碼區(qū)域主要分為setup和loop函數(shù):setup函數(shù)部分是指開始程序前對一些環(huán)境的測試,而loop代碼段則是執(zhí)行后arduino執(zhí)行的部分。我們只需要簡單對這兩個部分進(jìn)行修改即可。

二、簡單的點燈程序

首先將程序如下寫入至代碼區(qū)域:

void setup(){

pinMode(13,OUTPUT);

}

void loop(){

digitalWrite(13,HIGH);

}

插上arduino設(shè)備,編譯燒錄后,會看到開發(fā)板上的led燈常亮。

arduino板載了一個led,默認(rèn)是連接在13號數(shù)字口上的。

setup函數(shù)中,pinMode是設(shè)置了arduino的13號數(shù)字口為輸出模式,而執(zhí)行l(wèi)oop函數(shù)時,在13號數(shù)字口寫入一個高電平,則led燈會常亮。

三、串口點燈

將如下程序?qū)懭氲絀DE環(huán)境下的代碼區(qū)域內(nèi):

void setup() {

Serial.begin(9600);

pinMode(13,OUTPUT);

}

void loop() {

while(Serial.available())

{

char c=Serial.read();

if(c=='1')

{digitalWrite(13,1);}

else if(c=='2')

{digitalWrite(13,0);}

else if(c=='3')

{ while(Serial.available()<=0)

{

digitalWrite(13,1);

delay(100);

digitalWrite(13,0);

delay(100);

}

}

}

}

燒錄代碼后,打開IDE工具里的串口工具。鍵盤輸入1,則燈亮、輸入2,燈滅、輸入3時則一閃一閃;

setup函數(shù)Serial.begin中設(shè)置了串口的波特率為9600;

loop函數(shù)中將讀取串口中的數(shù)據(jù),判別是否是‘1’,‘2’,還是‘3’,對應(yīng)執(zhí)行寫入高電平實現(xiàn)燈亮,寫入低電平實現(xiàn)燈滅,以及延時寫入高低電平實現(xiàn)一閃一閃;

四、開發(fā)板點燈

上述代碼使用了arduino的串口工具實現(xiàn)串口點燈。那么如何實現(xiàn)開發(fā)板點燈呢。

將arduino用usb連接至華清遠(yuǎn)見fs4412 arm cortex-a9開發(fā)板。會識別串口設(shè)備文件(需要在內(nèi)核編譯時加入對相應(yīng)串口的支持,本實驗使用的是ch341)

則在開發(fā)板環(huán)境下打開對應(yīng)的串口設(shè)備,寫入 ‘1’、‘2’、‘3’字符,即可實現(xiàn)燈亮、燈滅、以及一閃一閃。

代碼如下,使用arm交叉編譯運行即可。

#include

#include

#include

#include

#include

#include

#include

#include

int fd;

int uart_device_open()

{

struct termios options;

if((fd=open("/dev/ttyUSB0",O_RDWR|O_NOCTTY|O_NDELAY))<0)

{

perror("open failed");

return -1;

}

tcgetattr(fd, &options);

options.c_cflag |= (CLOCAL | CREAD);

options.c_cflag &= ~CSIZE;

options.c_cflag &= ~CRTSCTS;

options.c_cflag |= CS8;

options.c_cflag &= ~CSTOPB;

options.c_iflag |= IGNPAR;

options.c_iflag &= ~(BRKINT | INPCK | ISTRIP | ICRNL | IXON);

options.c_cc[VMIN] = 12;

options.c_oflag = 0;

options.c_lflag = 0;

cfsetispeed(&options, B9600);

cfsetospeed(&options, B9600);

tcsetattr(fd,TCSANOW,&options);

printf("serial ok!n");

return 0;

}

int my_write(char command)

{

write(fd,&command,sizeof(command));

printf("write %c successn",command);

}

int main(int argc, const char *argv[])

{

uart_device_open();

char command;

while(1)

{

command = getchar();

if((command-'1')==0)

{

my_write('1');

printf("LED ONn");

}

if((command-'2')==0)

{

my_write('2');

printf("LED OFFn");

}

if((command-'3')==0)

{

my_write('3');

printf("bling blingn");

}

}

return 0;

}

五、小結(jié)

逐步通過這個三個小實驗,我們可以簡單對arduino實現(xiàn)代碼控制,串口控制,甚至于使用開發(fā)板控制。最終實現(xiàn)了上位機與下位機的簡單通信。

在以后的博文中我們將采用arduino實現(xiàn)arm開發(fā)板對電機的控制,從而實現(xiàn)一個簡單的智能小車。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉