在咱们完成了前面的几部分以后,咱们也须要把这最后一部分解决,这里更多的是硬件,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