SublimeText编译Arduino,
大概总结一下:先删除之前的版本(这个好像不用。我现在同时装了Sublime Text 2和3 同时装了插件,也没发现问题).
打开“工具--命令面板”,选择'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的控制程序里,必须有setup和loop两个函数,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表示为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(Arduino Diecimila为0~5,Arduino nano为0~7)。比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。
• analogWrite(pin, value) -PWM 数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表示3, 5, 6, 9, 10, 11,value表示为0~255。比如可用于电机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通信。