Arduino蓝牙小车

   arduino 的代码 类似 JAVA C++   所以非常简单!
     但是有两组很重要的函数 我要说下!
     digitalWrite (数字输出)digitalRead (数字输入)   
     analogWrite(模拟输出)analogRead(模拟输入)
     两者的差别就是 后者是可调节的!(很简单的描述)主要是用于 PWM(脉冲宽度调制) 。而第一个 就是 输出或读取状态! HIGH  或者 LOW (高低电位)!
01 void setup()     //初始化
02 {
03   Serial.begin(9600);   //Serial 通信 用于捕捉 蓝牙发送过来的值!
04 }
05 void loop()      //逻辑上 每秒钟执行1千6百万次
06 {
07    while (Serial.available() > 0) {   //判断是否有值传递进来!
08     int inChar = Serial.read();
09     inChar=inChar-0x30;
10      if(inChar == 1)  //  当值为1的时候 向前
11       {
12         runfoward(250);
13        delay(300);
14        stop();
15       }
16      else if(inChar == 2)  //2  向后
17       {
18        runback(250);
19        delay(300);
20        stop();
21       }
22     else if(inChar == 3)  //3 向右
23       {
24        turnR(250);
25        delay(300);
26        stop();
27       }
28      else if(inChar == 4)  //4 向左
29       {
30        turnL(250);
31        delay(300);
32        stop();
33       }
34       else
35       {
36         stop();
37       }
38      inChar=0;
39 }
40 }
41 //==========一下代码 驱动电机 。如果大家不了解的话,就不用看了! 这里使用了 脉冲宽度调制技术, 控制小车的速度!======
42 void motor(char pin,char pwmpin,char state,int val)   
43 {
44 pinMode(pin, OUTPUT);   
45  
46 if(state==1)
47 {
48 analogWrite(pwmpin,val);
49 digitalWrite(pin,1);
50 }
51 else if(state==2)
52 {
53 analogWrite(pwmpin,val);
54 digitalWrite(pin,0);
55 }
56 else if(state==0)
57 {
58 analogWrite(pwmpin,0);
59 digitalWrite(pin,0);
60 }
61 }
62 //===========一下代码对于最上面的 LOOP方法里面的值!
63 void runfoward(int i)
64 {
65 motor(4,5,1,i);
66 motor(7,6,1,i);
67 }
68 void runback(int j)
69 {
70 motor(4,5,2,j);
71 motor(7,6,2,j);
72 }
73 void turnL(int m)
74 {
75 motor(4,5,1,m);
76 motor(7,6,2,m);
77 }
78 void turnR(int n)
79 {
80 motor(4,5,2,n);
81 motor(7,6,1,n);
82 }
83 void stop()
84 {
85 motor(4,5,0,0);
86 motor(7,6,1,0);
87 }
这样小车这一端 就完成了!  是不是很简单呢?  接下来就是 对控制端的开发了! 我是采用的安卓环境! 但是,安卓的蓝牙开发 代码量比较大!而且 各种类跨的文件比较多。我就给张图算了!


4.png  

    当然 如果就这样完事了 文章就太水了! 主要是后面这个遥控端没有给出代码! 

=================================
    我这里各一个更方便的代码!C#版本的蓝牙通信!其实就是串口通信!但是需要确定你的电脑上有蓝牙(bluetooth)这的东西!当然笔者是在公司加班完成这文章的,所以呢  这破电脑还真没 蓝牙! 


     废话不说! C#里面对应串口通信 有这样一个类  SerialPort ! 但是VS IDE的环境里面为我们提供了一个SerialPort控件! 遗憾的是我不喜欢用这控件  太麻烦~!

     托4个button 进窗体!  分别将TEXT属性改为 前后左右!
     代码如下:
01 namespace 蓝牙小车控制器
02 {
03     public partial class Form1 : Form
04  
05     {
06       private  SerialPort SP;
07        
08         public Form1()
09         {
10             InitializeComponent();
11               
12              
13         }
14  
15         private void runfoward_Click(object sender, EventArgs e)  //向前button事件
16         {
17            // this.serialPort1.Open();
18              
19             ONOFF("1");
20             
21             
22         }
23  
24         private void runback_Click(object sender, EventArgs e)//向后button事件
25         {
26             ONOFF("2");
27           
28         }
29         private void ONOFF(string  str)        // 串口通信 最核心的方法。
30         {
31             
32             SP = new SerialPort("COM7", 9600); // 这里的COM7  是你安装蓝牙 的输出串口号! 有些事COM3  有些事COM4、、这里的9600 是波特率!和单片机上的是对应的!
33             SP.Open();       //打开
34           
35             SP.Write(str);   //发送
36             SP.Close();    // 关闭
37         }
38  
39         private void turnL_Click(object sender, EventArgs e)//向左button事件
40         {
41             ONOFF("4");
42        
43         }
44  
45         private void turnR_Click(object sender, EventArgs e) 向右button事件
46         {
47             ONOFF("3");
48           
49         }
50          
51     }
52 }
=============以上的代码是随手在发表文章编辑框写的。。所以不规范~~望见谅!

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值