3327| 0
|
[入门] arduino C语言 |
(文中含有作者手绘图,很不好看) 1.程序要用英文编写,符号也是。 √ , . ; () {} × ,。;(){} 2. 函数名后一定要有括号。 3. void setup() 参数设置函数 void loop() 参数循环函数 4. pinMode(引脚编号,模式);pin:引脚 Mode:模式(OUTPUT/INPUT) 5. 数字端口 1~13 模拟端口 A0~A5 6. 除了大括号及少数例外,几乎每一行代码都要用分号结尾。 7. digitalWrite(端口号,输出信号); ↑ 高电位(HIGH或1) 低电位(LOW或0) 8. delay(延迟毫秒数); 9. delayMicroseconds(延迟微秒数); 10. 声明变量并赋值的语法: 数据类型 变量名=值/运算式; int led=7; 11. 变量名称只能包含英文字母、数字和底线。 12. 变量名称中第一个字不能是数字。 13. 变量的名称大小写有别(LED和led是不同的变量)。 14. 变量名称尽量使用有意义的文字。看起来更方便。 15. 若要使用两个单词来命名变量,一般采用驼峰式:把两个字连起来,第二个字的首字母大写。也可采用中间加底线。 16. 避免用特殊意义的保留字给变量命名。例如print是输出文字的指令。因此不宜将变量命名为print。 17. digitalRead(pin);数字读取 18. if(判断条件) { 执行语句: } else { 否则执行语句: } 19. for(int i=0;i<3;i++) { 重复语句 } 20. Arduino串口通信相关函数 Serial扩展库:提供设置联机、输出和读取等相关函数。 Serial.begin(9600); 21. Serial扩展库: 串口输出数据函数: Serial.print();与Serial.println(); println会换行。 22. Serial.available(); 返回缓存区的字节数 如果缓存区没有数据,返回0。 Serial.read(); 读取串行缓存区的第一个字节。 如果没有数据,返回-1。缓存区的数据均以ASCII码存储输出。 23. 通过比对switch()里的变量和case后面的值,来决定切换执行哪一段程序。如果不加break;那么有一个case成立时,后面所有的程序都会执行,直到遇到一个break;或switch语句结束。 24. 模拟0~模拟5,共计6个模拟接口。它们既可以当做模拟口来使用,也可以当做数字口来使用。 25. “模拟——数字”转换器,简称A/D转换器。 26. analogRead(pin);模拟读取。 pin:读取的模拟输入引脚号(大多数主板是A0~A5)。 Returns返回值。 int(0~1023); 整数型int(0~1023); 27. arduino通过PWM波实现模拟电压输出采用analogWrite(analogOutPut,val); 函数输出模拟信号,val范围为0~255,对应输出0%~100%的占空比。 analogWrite(端口号 , 模拟数值) ↓ ↓ 可能值:3,5,6,9,10,或11 可能值为:0~255 28. 29. DS18B20简介: (1)独特的单线接口方式,与单片机连接时仅需要一条口线。 (2)测量温度为-55~125°C,在-10~85°C的范围内精度为+0.5℃。 (3)通过编程可实现9~12位数字读数方式。 (4)用户可自设定非易失性的报警上下限值。 (5)外围电路简单,使用时不需要外围元件,可用数据总线供电,电压范围为3,0~5.5V,无需备用电源。 30. 测量脉冲持续时间的pulseIn()函数Arduino提供一个测量脉冲时间长度的pulseIn()函数。 31. 超声波测距语法格式: pulseIn(pin,value,timeout) ↓ 超时时间 32. 此函数将传回微秒单位的脉冲时间,建议用unsigned long类型的变量来存放。 33.举例:key_data==0可以直接用!key_data Key_data==1 可以直接用key_data 34.Arduino舵机控制库:<Servo.h> 35.下面介绍了下库中函数的使用: attach:绑定Arduino引脚为舵机变量语法servo. Attach(pan) Servo.atttach(pin,min,max) 36.write():写一个值到舵机,控制相应的主轴。Servo.write(angle) 37.writeMicrosecond():写一个值(单位为微秒uS)到舵机,控制相应的主轴。 38.红外传输: (1)8位地址位,8位命令位。 (2)为了可靠地址位和命令位被传输两次。 (3)脉冲位置调制。 (4)载波频率38khz。 (5)每一位的时间为1.125ms或2.25ms。 39.逻辑0和1的定义如下图: (更正:Logical“2”应为Logical“0”。) |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed