Arduino笔记

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/O pinMode(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/O int 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/O shiftOut(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语言库文件 EEPROM EEPROM读写程序库
  Ethernet 以太网控制器程序库 
  LiquidCrystal LCD控制程序库
  Servo  舵机控制程序库
  SoftwareSerial 任何数字IO口模拟串口程序库
  Stepper 步进电机控制程序库 
  Wire  TWI/I2C总线程序库
  Matrix LED矩阵控制程序库
  Sprite LED矩阵图象处理控制程序库


一、

查看串口数据:

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通信。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

limaning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值