在咱們完成了前面的幾部分以後,咱們也須要把這最後一部分解決,這裏更多的是硬件,Arduino的存在可讓硬件更簡單。 git
Arduino 是一款便捷靈活、方便上手的開源電子原型平臺,包含硬件(各類型號的arduino板)和軟件(arduino IDE)。它適用於藝術家、設計師、愛好者和對於「互動」有興趣的朋友們。 github
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); } }
那麼讓咱們先來看看咱們寫的代碼。 (轉載保留 Phodal's Blog Phodal's zenthink )
這個代碼看上去彷佛會有點複雜,可是讓咱們看點基礎的,也就是由Arduino來控制一個LED的亮和滅。 oop
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 }
這個也就是來自於官方的示例程序,而咱們要作的東西也和這個差很少,只是這個是自動的,上面那個是由串口通訊來實現的。 ui
串行接口是一種能夠將接受來自CPU的並行數據字符轉換爲連續的串行數據流發送出去,同時可將接受的串行數據流轉換爲並行的數據字符供給CPU的器件。通常完成這種功能的電路,咱們稱爲串行接口電路。
簡單地來講,咱們誻就是用這個來實現通訊的,用以前的RaspberryPI 發送1和0給Arduino。那麼咱們在Arduino上就只是接受和執行,這個由loop裏面的if來執行spa
若是你真心不喜歡51上的複雜的串口,那麼我想Arduino又是解放雙手的東西了。 .net
Serial.begin(9600);
這個就是串口初始化,速率爲9600。 設計
while (Serial.available()<0) { int inChar = Serial.read(); if (isDigit(inChar)) { inString += (char)inChar; } serialData=inString.toInt();
用於讀取的就是這麼一行code
int inChar=Serial.read()
而下面的部分則是剛咱們接收到的數據轉換爲1,因爲接到的爲char類型,那麼咱們須要轉爲轉爲Int進行判斷。
blog
只是爲了寫給須要的同窗用的,也能夠直接在上面用if(serialData=='1'),上面寫可讓後期擴展的時候方便一點。接口
QQ羣:348100589