Arduino笔记

来源:互联网 发布:阿里云报价 编辑:程序博客网 时间:2024/06/01 19:42

SublimeText编译Arduino, 

大概总结一下:先删除之前的版本(这个好像不用。我现在同时装了Sublime Text 2同时装了插件,也没发现问题).
打开工具--命令面板,选择'Package Control: Add Repository' 命令。(输入Repository就出现选项了)
复制粘贴https://github.com/gepd/Stino/tree/new-stino 到弹出的输入框.
再打开工具--命令面板,选择'Package Control: Install Package' 命令,选择名称为'Stino'的插件绝对不要选'Arduino-LikeIDE.'

支持 最新的

arduino IDE

上述那种方法,我在win10 64位里并未成功,所以现在用sublime 写代码,再用标准的写入。

工具:sketch(Arduino标准软件),fritzing(线路板设计)。

常用函数

 函数名作用结构void setup()初始化变量,管脚模式,调用库函数 void loop()连续执行函数内的语句数字 I/OpinMode(pin, mode)数字IO口输入输出模式定义函数,pin表示为0~13, mode表示为INPUT或OUTPUT digitalWrite(pin, value) 数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。比如定义HIGH可以驱动LED int digitalRead(pin)数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器模拟 I/Oint analogRead(pin)模拟IO口读函数,pin表示为0~5。比如可以读模拟传感器(10位AD,0~5V表示为0~1023) analogWrite(pin, value)数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表示3, 5, 6, 9, 10, 11,value表示为0~255。比如可用于电机PWM调速或音乐播放扩展 I/OshiftOut(dataPin, clockPin, bitOrder, value) SPI外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要传送的数据(0~255),另外还需要一个IO口做74HC595的使能控制 unsigned long pulseIn(pin, value) 脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间时间函数unsigned long millis()返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间 delay(ms) 延时函数(单位ms) delayMicroseconds(us)延时函数(单位us)数学函数min(x, y)求最小值 max(x, y)求最大值 abs(x)计算绝对值 constrain(x, a, b)约束函数,下限a,上限b,x必须在ab之间才能返回 map(value, fromLow, fromHigh, toLow, toHigh)约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间 pow(base, exponent)开方函数,base的exponent次方 sq(x)平方 sqrt(x)开根号三角函数sin(rad)  cos(rad)  tan(rad) 随机数函数randomSeed(seed)随机数端口定义函数,seed表示读模拟口analogRead(pin)函数 long random(max)随机数函数,返回数据大于等于0,小于max long random(min, max) 随机数函数,返回数据大于等于min,小于max外部中断函数attachInterrupt(interrupt, , mode)外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数,mode:LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING 下降沿中断 detachInterrupt(interrupt)中断开关,interrupt=1 开,interrupt=0 关中断使能函数interrupts()使能中断 noInterrupts()禁止中断串口收发函数Serial.begin(speed)串口定义波特率函数,speed表示波特率,如9600,19200等 int Serial.available()判断缓冲器状态 int Serial.read()读串口并返回收到参数 Serial.flush()清空缓冲器 Serial.print(data)串口输出数据 Serial.println(data) 串口输出数据并带回车符Arduino语言库文件EEPROMEEPROM读写程序库 Ethernet以太网控制器程序库  LiquidCrystalLCD控制程序库 Servo 舵机控制程序库 SoftwareSerial任何数字IO口模拟串口程序库 Stepper步进电机控制程序库  Wire TWI/I2C总线程序库 MatrixLED矩阵控制程序库 SpriteLED矩阵图象处理控制程序库


一、

查看串口数据:

void setup()

{

      serial.begin(9600);      //打开串口,设置波特率9600bps

}


void loop()

{

      int val;             //定义一个变量

      val = analogRead(5);  //将模拟口5的数据(很可能是传感器数据)发送到val这个变量中

      Serial.println(val,DEC); //打印数据字符串,DEC是换行

      delay(100)

}

Arduino学习笔记8数字输入

 






 

Arduino的控制程序里,必须有setuploop两个函数,setup用来设置各种引脚输出等,loop用来无限循环执行。

voidsetup() {

  pinMode(8,OUTPUT);    //数字引脚控制 由8号出高电平

}

voidloop() {

  digitalWrite(8,HIGH);     //写入8号端口高电平

  delay(200);               //延时

  digitalWrite(8,LOW);      //写入8号端口低电平

  delay(1000);

}

数字 I/O

     pinMode(pin, mode)    数字IO口输入输出模式定义函数,pin表示为013 mode表示为INPUTOUTPUT

     digitalWrite(pin,value)   数字IO口输出电平定义函数,pin表示为013value表示为HIGHLOW。比如定义HIGH可以驱动LED

     int digitalRead(pin)    数字IO口读输入电平函数,pin表示为013value表示为HIGHLOW。比如可以读数字传感器。

 

模拟 I/O

     int analogRead(pin)    模拟IO口读函数,pin表示为05Arduino Diecimila05Arduino nano07)。比如可以读模拟传感器(10AD05V表示为01023)。

     analogWrite(pin, value) -PWM     数字IOPWM输出函数,Arduino数字IO口标注了PWMIO口可使用该函数,pin表示3, 5, 6, 9, 10, 11value表示为0255。比如可用于电机PWM调速或音乐播放。

LED这种是数字接口,比如LED灯和限流电阻是接数字8号接口和数字端GND的。

voidsetup() {

  pinMode(8,OUTPUT);    //数字引脚控制 由8号出高电平

}

voidloop() {

  digitalWrite(8,HIGH);     //写入8号端口高电平

  delay(200);               //延时

  digitalWrite(8,LOW);      //写入8号端口低电平

  delay(1000);

}

 

传感器多是接模拟接口。

LM35温度传感器为例,中间的接口为VOUT接模拟引脚,在这个实例里,接Arduino模拟口的A0,左侧VCC引脚需要接5V电压供电接模拟口的5V,右侧GND接上就短路(所以不接也能用)。

程序代码:  

intpotPin = 0 ;//定义模拟接口 0 连接 LM35 温度传感器 

voidsetup()  

{  

  Serial.begin(9600);//设置波特率  

}  

voidloop()  

{  

  int val;//定义变量,用来接收读取值

  int dat;//定义变量,用来转换

  val = analogRead(potPin);//从模拟接口0读取传感器的模拟值并赋值给 val  

  dat = (125*val)>>8 ; //温度计算公式  

  Serial.print("Tep : ") ; //原样输出显示 Tep 字符串代表温度 

  Serial.print(dat) ; //输出显示 dat 的值 

  Serial.println("C"); //原样输出显示 C 字符串 

  delay(500);//延时 0.5  

}  
公式需要根据情况调整,总结。

舵机 Servo:
常用于180度左右摆头的摄像头,三根引脚分别为中间的是5V模拟供电接口,0接口接GNU,PWM接口接数字端用来读取写入。
图片
#include <Servo.h>
Servo myServo;  //定义舵机对象
int pos = 0;  //定义舵机转动位置
void setup() {
  myServo.attach(9);    //舵机定义接口为9
}

void loop() {
  for(pos=0;pos<180;pos+=1){
      myServo.write(pos);
      delay(15);
  }

  for(pos=180;pos>1;pos-=1){
    myServo.write(pos);
    delay(15);
  }
}


--------------------------------------------------
熟悉模块之后,就是需要根据实际情况组合,急需学习蓝牙通讯/wifi通信。 

0 0
原创粉丝点击