Arduino基本知识

本文介绍了Arduino编程的基本概念,包括程序结构、变量(局部与全局)、调用函数,以及如何通过pinMode()和digitalWrite()控制LED。此外,还涉及了IO输入模式、赋值和逻辑运算符的使用,并通过按键开关实现了LED的亮灭控制。通过实例,读者可以深入理解Arduino硬件与软件交互的原理。
摘要由CSDN通过智能技术生成

1.程序结构
2.变量:局部变量和全局变量
3.调用Arduino的函数
4.通过点亮led,IO设置为输出模式,学习pinMode()和digitalWrite()
5.按键开关,IO设置为输入模式
6.初识赋值运算符和逻辑运算符,和布尔类型,逻辑控制
——————————————————————————

1.用店小二的一天工作来举例
当开发板通电或复位后,执行一遍setup。loop函数会循环执行。
在这里插入图片描述
2.变量的作用域,局部变量和全局变量

int onTIME=1000;//全局变量
void setup() 
{
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
  int time= 1000;//局部变量
  onTIME=onTIME+1000;
  digitalWrite(LED_BUILTIN, HIGH);   // 灯点亮
  delay(1000);                       // 持续1000ms
  digitalWrite(LED_BUILTIN, LOW);    // 灯熄灭
  delay(time);                       // 持续time=1000ms
}

3.函数调用,下面是一些Arduino自带的函数,可以直接调用,只需要遵守函数定义即可。

void loop()
{
pinMode(ledPin, OUTPUT);  // 引脚13设置为输出模式
digitalWrite(13, HIGH);   // 引脚13输出高电平
digitalWrite(13, LOW);    // 引脚13输出低电平
delay(1000);              // 等待一秒钟(1000毫秒)
delayMicroseconds(10000); // 等待10000微秒
}

4.点亮led的原理,硬件led的正极连接在13脚上,负极通过电阻接地。
如下图,要将led点亮,需要先将引脚设置为输出OUTPUT模式,然后进行高低电平的设置。
在这里插入图片描述

void setup() 
{
	pinMode(13, OUTPUT);      // 引脚13设置为输出模式
}
void loop()
{
	digitalWrite(13, HIGH);   // 引脚13输出高电平
	delay(1000);              // 等待一秒钟(1000毫秒)
	digitalWrite(13, LOW);    // 引脚13输出低电平
	delay(1000);              // 等待一秒钟(1000毫秒)
}

5.学习串口和IO输入模式

在这里插入图片描述

void setup() 
{
	pinMode(13, OUTPUT);      // 引脚13设置为输出模式
}
void loop()
{
	digitalWrite(13, HIGH);   // 引脚13输出高电平
	delay(1000);              // 等待一秒钟(1000毫秒)
	digitalWrite(13, LOW);    // 引脚13输出低电平
	delay(1000);              // 等待一秒钟(1000毫秒)
}

6.初识赋值运算符和逻辑运算符,和布尔类型,逻辑控制
=是赋值运算符
==是关系运算符
在这里插入图片描述

//通过2脚的高低电平来实现3脚高低电平的控制(控制led亮灭)
void setup() 
{ 
  Serial.begin(9600); 
  pinMode(2, INPUT_PULLUP);//2脚设置为上拉模式
  pinMode(13, OUTPUT);//3脚设置为输出模式
}

void loop()
{  
  int buttonState = digitalRead(2);//读取2脚电平,赋值给变量buttonState
  Serial.println(buttonState);//串口打印变量buttonState的值
  if(buttonState==HIGH)//如果2脚高电平,按钮没按下
  {
       delay(100)//延时消抖
       if(buttonState==HIGH)//如果2脚高电平,按钮没按下
       {
        digitalWrite(13,LOW)//led熄灭
       }
       else                 //2脚不是高电平,按钮按下
       {
        digitalWrite(13,HIGH)//led点亮
       }
    }
}
//通过2脚的高低电平来实现3脚高低电平的控制(控制led亮灭)
bool buttonState
void setup() 
{ 
  Serial.begin(9600); 
  pinMode(2, INPUT_PULLUP);//2脚设置为上拉模式

  pinMode(13, OUTPUT);//3脚设置为输出模式
}

void loop()
{  
  buttonState = digitalRead(2);//读取2脚电平,赋值给变量buttonState
  //2脚设置为上拉模式,默认为高电平
  //不按按键,2为高电平;按下按键,2为低电平
  //不按按键,buttonState为1;按下按键,buttonState为0
  Serial.println(buttonState);//串口打印变量buttonState的值
  if(buttonState)//如果2脚为真
  {
       delay(100)             //延时消抖
       if(buttonState)        //如果2脚为真,不按按键
       {
        digitalWrite(13,LOW)  //led熄灭
       }
       else                   //2脚为非真,按按键
       {
        digitalWrite(13,HIGH) //led点亮
       }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值