最近闲的没事玩一下傻瓜单片机,简单记录下自己的学到的东西吧,
首先有一点c语言基础的就不用太过讲解语法层面了
实验(1)arduino的hello world:
这里简单说明下:
setup()相当于init的函数只执行一次,一般是用于声明一些管脚的输出状态
loop()用于循环
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Hello world!");
delay(1000);
}
串口输出
串口初始化完成后,我们便可以使用Serial.print() 或Serial.println() 向计算机发送信息了。
Serial.print(val)
参数
val是你要输出的数据,各种类型的数据均可
Serial.println(val)
println会在输出完指定数据后,再输出一组回车换行符
serial.write()
串口输出函数(对应的是ascii值对应的符号)
write(val)
write(str)
write(buf,len)
参数:
val 字节
str 一串字节
buf 字节数组
len 数组长度
实验(2)led的闪烁控制:
面包板演示电路图:
int ledpin=5;
void setup() {
pinMode(ledpin,OUTPUT);
}
void loop() {
digitalWrite(ledpin,HIGH);
delay(2000);
digitalWrite(ledpin,LOW);
delay(2000);
}
实验(3)key控制led状态反转:
#define KEY 2
#define LED 13
void setup() {
pinMode(LED,OUTPUT);
pinMode(KEY,INPUT_PULLUP);
}
void loop() {
if(digitalRead(KEY)==LOW)
{
delay(20);
if(digitalRead(KEY)==LOW)
{
digitalWrite(LED,!digitalRead(LED));
while(digitalRead(KEY)==LOW);
}
}
}
这里不得不提、一般物理按键通过物理方法上拉,而这个的强大之处就是可以软件命名直接上拉
实验(4)有缘蜂鸣器实验:
这里的有缘和无源蜂鸣器的区别:
源不是电源,而是震荡源
有缘蜂鸣器内部带震荡源 ,只要一通电就会响
而无源内部不带震荡源,直流信号没办法是它鸣叫,必须用2K-5K的方波驱动
#define KEY 2
#define LED 13
#define Buzzer 3
void setup() {
pinMode(LED,OUTPUT);
pinMode(Buzzer,OUTPUT);
pinMode(KEY,INPUT_PULLUP);
digitalWrite(Buzzer,LOW);
}
void loop() {
if(digitalRead(KEY)==LOW)
{
delay(20);
if(digitalRead(KEY)==LOW)
{
digitalWrite(LED,!digitalRead(LED));
digitalWrite(Buzzer,HIGH);
delay(20);
digitalWrite(Buzzer,LOW);
while(digitalRead(KEY)==LOW);
}
}
}