国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

(八)——與單片機(jī)通訊

2018-02-24 15:43 更新

原文出處:https://www.phodal.com/blog/bare-minimum-iot-system-mcu-commucation/

在我們完成了前面的幾部分之后,我們也需要把這最后一部分解決,這里更多的是硬件,Arduino的存在可以讓硬件更簡(jiǎn)單。

Arduino

Arduino 是一款便捷靈活、方便上手的開(kāi)源電子原型平臺(tái),包含硬件(各種型號(hào)的arduino板)和軟件(arduino IDE)。它適用于藝術(shù)家、設(shè)計(jì)師、愛(ài)好者和對(duì)于“互動(dòng)”有興趣的朋友們。

那么讓我們先來(lái)看看我們寫(xiě)的代碼。

void setup() {
  Serial.begin(9600);
  pinMode(13,OUTPUT);
}
int serialData;
void loop() {
  String inString = "";
  while (Serial.available()> 0)
  {
    int inChar = Serial.read();
    if (isDigit(inChar)) {
      inString += (char)inChar; 
    }
    serialData=inString.toInt();
    Serial.print(serialData);
  }
  if(serialData==1){
    digitalWrite(13,HIGH);
  }else{
    digitalWrite(13,LOW);
  }
}

這個(gè)代碼看上去似乎會(huì)有點(diǎn)復(fù)雜,但是讓我們看點(diǎn)基礎(chǔ)的,也就是由Arduino來(lái)控制一個(gè)LED的亮和滅。

int led = 13;
void setup() {              
  pinMode(led, OUTPUT);   
}
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
}

這個(gè)也就是來(lái)自于官方的示例程序,而我們要做的東西也和這個(gè)差不多,只是這個(gè)是自動(dòng)的,上面那個(gè)是由串口通信來(lái)實(shí)現(xiàn)的。

串口通信

串行接口是一種可以將接受來(lái)自CPU的并行數(shù)據(jù)字符轉(zhuǎn)換為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,同時(shí)可將接受的串行數(shù)據(jù)流轉(zhuǎn)換為并行的數(shù)據(jù)字符供給CPU的器件。一般完成這種功能的電路,我們稱為串行接口電路。

簡(jiǎn)單地來(lái)說(shuō),我們誻就是用這個(gè)來(lái)實(shí)現(xiàn)通信的,用之前的RaspberryPI 發(fā)送1和0給Arduino。那么我們?cè)贏rduino上就只是接受和執(zhí)行,這個(gè)由loop里面的if來(lái)執(zhí)行

初始化串口

如果你真心不喜歡51上的復(fù)雜的串口,那么我想Arduino又是解放雙手的東西了。

 Serial.begin(9600);

這個(gè)就是串口初始化,速率為9600。

串口讀取

 while (Serial.available()<0)
  {
    int inChar = Serial.read();
    if (isDigit(inChar)) {
      inString += (char)inChar; 
    }
    serialData=inString.toInt();

用于讀取的就是這么一行

 int inChar=Serial.read()

而下面的部分則是剛我們接收到的數(shù)據(jù)轉(zhuǎn)換為1,由于接到的為char類型,那么我們需要轉(zhuǎn)為轉(zhuǎn)為Int進(jìn)行判斷。

為什么不直接用'1'

只是為了寫(xiě)給需要的同學(xué)用的,也可以直接在上面用if(serialData=='1'),上面寫(xiě)可以讓后期擴(kuò)展的時(shí)候方便一點(diǎn)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)