zoukankan      html  css  js  c++  java
  • Arduino使用注意问题及编程相关

    1.Arduino的概念

    arduino是一款便捷灵活方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE),

    是一个基于开放原始码的软硬件平台,构建于开放原始码simple I/O 介面版,具有类似Java 、C的Processing/Wiring开发环境。
     
    2.Arduino获取

    获取Arduino IDE开发工具

    下载地址 :http://arduino.cc/en/Main/Software

    Arduino的开发性,支持源码下载

    支持的平台有 Windows、MAC OS X、Linux

    Windows 平台上面 Arduino IDE下载后为zip包,直接解压就可以使用。

    3.说明一下Arduino的驱动安装

    首先把Arduino UNO R3 通过数据线和电脑连接。

    (1)  在设备管理器中找到未识别的设备,然后选择更新驱动程序软件...

    (2)  选择浏览查找驱动程序软件

    (3)  浏览计算机上的驱动文件 ,方法是找到Arduino IDE中的drivers文件夹

    点击下一步即可实现安装。

    (4)  驱动安装完成

    4.开发环境编写程序
     

     
    5.实现简单的程序 Hello World 

    有两个条件要设置

    条件一

    (1)确定驱动的串口,图中为 COM4

    (2)打开Arduino,选择 Tools->Serial Port->COM4

    条件二

    选择开发板 Tools->Board->Arduino Uno (我的开发版为Arduino Uno)

    通过上面的设置,就可以正确连接Arduino开发板

    先看一段代码

     1 void setup()//系统初始化
     2 {
     3     Serial.begin(9600); //设置串口波特率
     4 }
     5  
     6 void loop()//程序运行
     7 {
     8     Serial.println("Hello Arduino");  //打印Hello Arduino    
     9     delay(1000);        //延时1000ms
    10 }
    运行效果,显示串口打印信息

    注意事项:

    每次配置完整个preferences之后,选择完硬件版本之后,要重启IDE

    Arduino编程相关:

    数据类型
    Arduino数据类型转换函数

    char() :  将任意类型的值转换成char类型;

    byte():   将任意类型的值转换成byte类型;

    int():     将任意类型的值转换成int类型;

    long():    将任意类型的值转换成long类型;

    float():    将任意类型的值转换成float类型;

    结构

    setup() 初始化一些变量
    void setup()
    {
        Serial.begin(9600);              //设置波特率
        pinMode(13,OUTPUT);         //设置某个引脚是输出还是输入
    }
    loop()    //每个arduino程序中必须包含的连续执行函数,setup()初始化后的执行函数,相当于C语言中的main()
    void loop()
    {
        if(digitalRead(buttonPin)==HIGH)
            serialWrite('H');
        else
            serialWrite('L');
    
        delay(1000);
    }    
    常量

    HIGH、LOW        表示读写数字IO脚的值
    INPUT、OUTPUT      表示数字IO脚的方向
    true、false        

    数字IO
    pinMode()
    pinMode(pin,mode);    pin:0-13       mode:INPUT / OUTPUT  
    返回None

    digitalWrite()
    digitalWrite(pin,Value);    Value:HIGH / LOW
    返回None

    digitalRead()
    digitalRead(pin,Value);    Value:HIGH / LOW
    eg:

     1 int ledPin=13;
     2 int inPin=7;
     3 int val=0;
     4 
     5 void setup()
     6 {
     7     pinMode(ledPin,OUTPUT);
     8     pinMode(inPin,INPUT);
     9 }
    10 void loop()
    11 {
    12     val=digitalRead(inPin);
    13     digitalWrite(ledPin,val);
    14 }

    串口收发函数
    Serial.begin(speed) 一般取值300,1200,2400,4800,9600,14400,19200,28800,38400,57600,115200
    void setup()
    {
        Serial.begin(9600);
    }
    Serial.end()
    禁止串口传输函数。此时串口传输的pin脚可以作为数字IO脚使用
    Serial.end();

    Serial.available()
    判断串口接收缓冲器的状态函数,读取串口接收缓冲器的值,以判断数据送达到串口

     1 int incomingByte=0;
     2 void setup()
     3 {
     4     Serial.begin(9600);
     5 }
     6 void loop()
     7 {
     8     if(Serial.available()>0)
     9       {
    10         incomingByte=Serial.read();
    11         Serial.print("I received: ");
    12         Serial.println(incomingByte,DEC);
    13         }
    14 }

    Serial.peek()
    串口读取函数,返回的是串口数据中下一字节的内容
    如果没有返回-1

    Serial.flush()
    清除串口缓冲器内容函数

    Serial.print()
    串口输出数据函数
    Serial.print(val);    //打印的值,任意数据类型
    Serial.print(val,format);    //format:输出的数据格式,包括整数类型和浮点型数据的小数点位数

    Serial.print(78,BIN);    得到“1001110”
    Serial.print(78,OCT);   得到“116”
    Serial.print(78,DEC);   得到“78”

    Serial.point(1.23456,0);  得到“1”
    Serial.point(1.23456,3);  得到“1.234”
    Serial.print("Hello World!");   得到“Hello World!”

    Serial.println() 串口输出数据函数,与Serial.print()不同的是输出数据带回车符


    Serial.write()    串口输出数据函数,写二进制数据到串口
    Serial.write(buf,len);       返回值是字节

    Serial.serialEvent()  串口数据准备好调用该函数

    Serial.serialEvent
    {
            //statements                    //任何有效的语句
    }

    模拟IO口
    1.AnalogReference()      配置模拟输入口的参考电压值函数
        analogReference(type)    
        type:    DEFAULT  默认的参考电压5V或者3.3V
                    INTERNAL  内置参考电压1.1V (Atmeg168 or Atmeg328)或者 2.56V(Atmeg8)
                    INTERNAL1V1  内置参考电压1.1V(Arduino Mega)
                    INTERNAL2V56  内置参考电压2.56V(Arduino Mega)
                    EXTERNAL       AREF脚为参考电压值

    2.AnalogRead()     模拟IO口读函数,Arduino中ADC单元是10位分辨率
        analogRead(pin)
        pin:不同的核心电路板不同的模拟输入口数量,一般是0-5,如Arduino Uno; 0-7 Arduino Mini and Arduino Nano;0-15 Arduino Mega2560

    3.AnalogWrite()        数字IO口PWM输出函数
        analogWrite(pin,Value)    pin:3,5,6,9,10 ;在Arduino Mega2560中PWM口编号为2-13
        Value: 设置输出的信号占空比,范围0-255
        返回:None
     eg:

     1  int ledPin=9;
     2  int analogPin=3;
     3  int val=0;
     4  void setup()
     5  {
     6       pinMode(ledPin,OUTPUT);
     7  }
     8  void loop()
     9  {
    10       val=analogRead(analogPin);
    11       analogWrite(ledPin,val/4);
    12  }

    必杀技: 

    VS+Arduino+VMICRO插件实现Arduino编译和代码跟踪查看

  • 相关阅读:
    Java打印M图形(二维数组)——(九)
    Java调整JVM内存大小——(八)
    Java导出List集合到txt文件中——(四)
    Java读取Txt封装到对象中——(三)
    Java读取txt文件——(二)
    Java导出txt模板——(一)
    c# listview导出excel文件
    mfc 导出数据保存成excel和txt格式
    数据库日志删除重建方法
    HTTP POST请求的Apache Rewrite规则设置
  • 原文地址:https://www.cnblogs.com/SwiftAero/p/6281634.html
Copyright © 2011-2022 走看看