Arduino 数码管和+LED灯设计 (红绿灯)

Arduino 数码管和+LED灯设计 (红绿灯)

写在前面
这里用到的是一位共阴极数码管,管脚图在之前的一位数码管设计文章里面发过,其实在网上也很容易找到引脚图的。

说正经的
这次依旧是没有什么技术或者代码问题,很简单的一个设计,最大的作用可能就是大家可以试一试自己整合代码的能力(doge)
数码管引脚设置:7, 6, 4, 2, 1, 9, 10, 5;
LED灯引脚设置:3, 11, 12;

代码

int setPins[] = {7, 6, 4, 2, 1, 9, 10, 5};  //端口设置
byte digits[10][8] = {
// a, b, c, d, e, f, g,h.
  {1, 1, 1, 1, 1, 1, 0, 0},  // 0
  {0, 1, 1, 0, 0, 0, 0, 0},  // 1
  {1, 1, 0, 1, 1, 0, 1, 0},  // 2
  {1, 1, 1, 1, 0, 0, 1, 0},  // 3
  {0, 1, 1, 0, 0, 1, 1, 0},  // 4
  {1, 0, 1, 1, 0, 1, 1, 0},  // 5
  {1, 0, 1, 1, 1, 1, 1, 0},  // 6
  {1, 1, 1, 0, 0, 0, 0, 0},  // 7
  {1, 1, 1, 1, 1, 1, 1, 0},  // 8  
  {1, 1, 1, 1, 0, 1, 1, 0}   // 9  
};   
 void num(int n){
  for (int i=0; i<8; i++)
  digitalWrite(setPins[i], digits[n][i]);
 }
 void Traffic_lights(int t){
    if(t==3){
      num(3);
      delay(1000);
      num(2);
      delay(1000);
      num(1);
 delay(1000);
      num(0);
    }
    if(t==2){
      num(2);
      delay(1000);
      num(1);
      delay(1000);
      num(0);
      }
  }
 void setup()
{
  for (int i=0; i< 8; i++){
  pinMode(setPins[i], OUTPUT);  //端口初始化为输出
  }
pinMode(3, OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}
void loop(){
 digitalWrite(3,HIGH);
 Traffic_lights(3);
 digitalWrite(3,LOW);
 digitalWrite(11,HIGH);
 Traffic_lights(2);
 digitalWrite(11,LOW);
 digitalWrite(12,HIGH);
 num(3);
 delay(500);
 digitalWrite(12,LOW);
 delay(500);
 digitalWrite(12,HIGH);
 num(2);
 delay(500);
 digitalWrite(12,LOW);
 delay(500);
 digitalWrite(12,HIGH);
 num(1);
 delay(500);
 digitalWrite(12,LOW);
 delay(500);
}

显示效果
红灯持续亮三秒,数码管显示321;绿灯持续亮2s,数码管显示21;黄灯每秒闪烁一次,数码管显示321。

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个问题是关于如何用Arduino控制蜂鸣器和LED的。 需要使用Arduino板、蜂鸣器和LED等器件进行连接和编程控制。具体的步骤包括连接电路、编写代码、上传程序等等。 关于具体操作细节,可以参考相关的Arduino教程和资料。 ### 回答2: arduino是一种高性能控制板,经常用于嵌入式开发。它可以通过编程实现各种功能。本文将介绍如何使用arduino控制蜂鸣器和led。 首先,我们需要将蜂鸣器和led连接到arduino板上。连接蜂鸣器不难,只需要将蜂鸣器的正极连接到数字引脚2,将负极连接到arduino板的GND。连接led也很简单,将正极连接到数字引脚9,将负极连接到GND。 在编程前,我们需要知道怎样控制输入和输出。在本例中,我们将使用digitalRead()输入读取和digitalWrite()输出信号。输入信号指的是按键按下的信号,输出信号指的是输出到蜂鸣器或led的信号。 在arduino中,数字输入和输出信号可以通过digitalRead()和digitalWrite()函数读取和写入。在连接了按键的电路中,按键被当做一个数字输入,读取它的状态之后控制蜂鸣器和led。 以下是示例代码: int LED = 9; // 设置LED的数字引脚为9 int buzzer = 2; // 设置蜂鸣器的数字引脚为2 int button = 7; // 设置按键的数字引脚为7 void setup() { pinMode(buzzer, OUTPUT); // 将蜂鸣器引脚设置为输出 pinMode(LED, OUTPUT); // 将LED引脚设置为输出 pinMode(button, INPUT); // 将按键引脚设置为输入 } void loop() { int buttonVal = digitalRead(button); // 读取按键状态 if (buttonVal == HIGH) { // 如果按键按下 digitalWrite(LED, HIGH); // 点亮LED tone(buzzer, 1000); // 产生1000Hz的声音 } else { // 如果按键未按下 digitalWrite(LED, LOW); // 熄灭LED noTone(buzzer); // 不发声 } } 以上代码会在按键按下时点亮LED并发出声音。当按键未按下时,LED熄灭且蜂鸣器不发声。这是一个基本的arduino控制按键的例子,您可以根据需求进行变更,例如更改按键连线和数字引脚。 总之,使用arduino进行蜂鸣器和LED的控制是一种非常实用的技能。如果您需要了解更多详细的借口实现,可以查看arduino官方文档。希望本文能对你的制作有所帮助! ### 回答3: Arduino按键控制蜂鸣器LED是一个非常简单而有趣的项目。首先,我们需要连接硬件,这包括连接一个蜂鸣器和一个LED,之后我们需要连接一个按钮。一旦我们将它们连接到Arduino板上,我们就可以开始编程。 我们需要使用Arduino IDE来开发代码,然后使用USB将代码上传到Arduino板中。下面是一些示例代码和解释: 首先,我们需要定义引脚来控制蜂鸣器和LED,这可以通过以下代码完成: const int buzzerPin = 8; // 蜂鸣器引脚 const int ledPin = 13; // LED引脚 const int buttonPin = 2; // 按钮引脚 接下来,我们需要设置引脚模式,以便Arduino知道各个引脚的作用: void setup() { pinMode(buzzerPin, OUTPUT); // 设置蜂鸣器引脚为输出模式 pinMode(ledPin, OUTPUT); // 设置LED引脚为输出模式 pinMode(buttonPin, INPUT); // 设置按钮引脚为输入模式 } 现在,我们可以编写一个函数来控制蜂鸣器: void beep(int onTime, int offTime) { digitalWrite(buzzerPin, HIGH); // 设置蜂鸣器引脚为高电平,发出声音 delay(onTime); // 开启持续时间 digitalWrite(buzzerPin, LOW); // 关闭蜂鸣器引脚 delay(offTime); // 停止持续时间 } 接下来,我们可以编写一个函数来控制LED: void blink(int onTime, int offTime) { digitalWrite(ledPin, HIGH); // 设置LED引脚为高电平,发出亮光 delay(onTime); // 开启持续时间 digitalWrite(ledPin, LOW); // 关闭LED引脚 delay(offTime); // 停止持续时间 } 现在我们可以编写主程序了,通过按下按钮来控制蜂鸣器和LED。当我们按下按钮时,蜂鸣器和LED都会发出信号。以下是完整的代码: const int buzzerPin = 8; // 蜂鸣器引脚 const int ledPin = 13; // LED引脚 const int buttonPin = 2; // 按钮引脚 void setup() { pinMode(buzzerPin, OUTPUT); // 设置蜂鸣器引脚为输出模式 pinMode(ledPin, OUTPUT); // 设置LED引脚为输出模式 pinMode(buttonPin, INPUT); // 设置按钮引脚为输入模式 } void beep(int onTime, int offTime) { digitalWrite(buzzerPin, HIGH); // 设置蜂鸣器引脚为高电平,发出声音 delay(onTime); // 开启持续时间 digitalWrite(buzzerPin, LOW); // 关闭蜂鸣器引脚 delay(offTime); // 停止持续时间 } void blink(int onTime, int offTime) { digitalWrite(ledPin, HIGH); // 设置LED引脚为高电平,发出亮光 delay(onTime); // 开启持续时间 digitalWrite(ledPin, LOW); // 关闭LED引脚 delay(offTime); // 停止持续时间 } void loop() { int buttonStatus = digitalRead(buttonPin); // 读取按钮状态 if (buttonStatus == HIGH) { // 如果按钮被按下 beep(100, 100); // 发出蜂鸣器信号 blink(100, 100); // 发出LED信号 } } 简而言之,在该项目中,我们使用按钮控制了蜂鸣器和LED。当按下按钮时,Arduino会通过控制蜂鸣器发出声音,同时通过LED发出亮光,这个项目可以作为初学者了解Arduino编程的基础。如果你想进一步拓展这个项目,可以调整蜂鸣器和LED的频率和持续时间,或者编写更高级的代码控制多个LED和蜂鸣器,并且可以将其与其他传感器集成起来来控制更多的设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值