arduino 一些小案例

346 阅读1分钟

点亮LED

int pin = 5; //LED的管脚
 
void setup() { 
  pinMode(pin, OUTPUT); //设置管脚为输出模式
}
 
void loop() { 
  digitalWrite(pin, 1); //向管脚写入1, 设置为高电平, 则LED灯亮 
}

LED闪烁

int pin = 13; //连接LED的IO脚
 
void setup() { 
  pinMode(pin, OUTPUT); //设置管脚为输出模式
}
 
void loop() { 
  digitalWrite(pin, HIGH); //将管脚设置为高电平, 则LED灯亮 
  delay(1000); //等待1000毫秒
  digitalWrite(pin, LOW); //将管脚设置为低电平, 则LED灯灭 
  delay(1000); //等待1000毫秒,也就是1秒
}

流水灯

int BASE = 8;
int NUM = 6;


void setup()
{
  for (int i =BASE; i < BASE + NUM; i ++) {
    pinMode(i,OUTPUT);
  }
}

void loop()
{
  for (int i =BASE; i < BASE + NUM; i ++) {
        digitalWrite(i,HIGH);
        delay(1000);
        digitalWrite(i,LOW);
  }
}

上升流水灯

int BASE = 8;
int NUM = 6;
int index = 0;

void setup()
{
  for (int i =BASE; i < BASE + NUM; i ++) {
    pinMode(i,OUTPUT);
  }
}

void loop()
{
  for (int i =BASE; i < BASE + NUM; i ++) {
    digitalWrite(i,LOW);

  }
  for (int i =BASE; i < BASE + NUM; i ++) {
    digitalWrite(i,HIGH);
       delay(1000);
  }
}

来回流水灯

int BASE = 8;
int NUM = 6;


void setup()
{
  for (int i =BASE; i < BASE + NUM; i ++) {
    pinMode(i,OUTPUT);
  }
}

void loop()
{
  for (int i =BASE; i < BASE + NUM; i ++) {
        digitalWrite(i,1);
        delay(1000);
        digitalWrite(i,0);
  }
  for (int i =BASE + NUM -1; i >  BASE; i --) {
        digitalWrite(i,1);
        delay(1000);
        digitalWrite(i,0);
  }

}

定时器中断

#include <MsTimer2.h>

#include <MsTimer2.h>     //定时器库的头文件
 
int tick = 0; //计数值
 
//中断服务程序
void onTimer()
{
  Serial.print("timer ");
  Serial.println(tick++);
}
 
void setup()
{
  Serial.begin(9600); //初始化串口
  MsTimer2::set(1000, onTimer); //设置中断,每1000ms进入一次中断服务程序 onTimer()
  MsTimer2::start(); //开始计时
}
 
void loop()
{
  
}