Arduino连接开关

①需要的组件:面包板×1、控制板×1、专用跳线×3、10K电阻×1、开关×1

 ②连接图和代码以及注释:

 ③开关说明:

我们可以看到一个开关有四个"脚" ,我们把四个脚分别称为A,B,C,D。在按下开关之前AD、BC分别相连,然后中间是断开的,也就是说在按下开关之前AD与BC是不相连的,当按下开关后这它们之间就相连了

 

④电阻:

有两个起作用的电阻一个叫上拉点电阻与一个叫下拉电阻,在上面的图中我们用到的电阻是上拉电阻,下拉电阻我们没有用到。那什么叫上拉电阻什么叫下拉电阻呢?我们从它们的名称就可以认识到它们,这里我只做个解释,1. 上拉电阻:连接方式:引脚 ←→ 电源(比如5V)之间接一个电阻。效果: 无按键操作时,引脚被电阻拉到高电平(HIGH);按下按键(引脚接地)时引脚变成低电平(LOW)
​2.下拉电阻:- 连接方式:引脚 ←→ 地(GND)之间接一个电阻。 效果: 无按键操作时,引脚被电阻拉到低电平(LOW);按下按键(引脚接电源)时,引脚变成高电平(HIGH)。     

 

⑤Arduino UNO的数字端口,模拟端口,复位端口的区别:
1. 数字端口(Digital Pins)
- 标识:UNO上标着 0~13 的引脚(比如你之前用的引脚2、13)。
- 功能:
- 支持数字输入/输出(通过 pinMode(引脚, INPUT/OUTPUT) 设置);
- 部分引脚有扩展功能:比如 3、5、6、9、10、11 支持PWM输出(模拟输出效果), 0、1 是串口通信引脚(别乱接外设)。
- 用途:接按键、LED、继电器等数字设备。
2. 模拟端口(Analog Pins)
- 标识:UNO上标着 A0~A5 的引脚。
- 功能:
- 核心是模拟输入(通过 analogRead(引脚) 读取0~5V的电压,转成0~1023的数字值);
- 也可以当数字端口用(设置 pinMode(A0, INPUT/OUTPUT) ,此时A0等价于数字引脚14)。
- 用途:接电位器、温度传感器等输出模拟信号的设备。
3. 复位端口(Reset Pin)
- 标识:UNO上标着 RESET 的引脚(或板上的复位按钮)。
- 功能:
- 给这个引脚接低电平(接地),会触Arduino重启(和按复位按钮效果一样);
- 正常工作时保持高电平(默认通过板载电路接了电源)。
- 用途:远程重启Arduino,或配合其他电路实现复位功能。

 

⑥可能会遇到的问题与解决办法:

1、电阻问题。我们在连接电路时可能会忘记连接电阻,这个时候+5v就会直接连接到接地口(上图),那么控制板就会永远离开我们。这时候我们就要连接一个合适的电阻

2、线路问题。有时候我们已经把所有的事情都弄好了但是控制板或者LED灯并没有亮,这是因为有些面包板中间是断开的,这时就我们只需用跳线把断开的部分连接起来就可以解决了

 

 

### Arduino 连接 OLED 显示屏并实现开关控制 为了实现Arduino连接OLED显示屏并通过开关进行控制,可以采用I2C或SPI接口来连接OLED显示屏。对于具体的硬件设置和编程逻辑,下面提供了一个基于I2C接口的实例。 #### 硬件准备 - Arduino控制器(如Uno) - 基于SSD1306芯片的小型OLED显示屏模块 - 按钮或其他形式的开关组件若干 - 杜邦线若干根 #### 软件库安装 确保已安装`Adafruit_SSD1306`以及依赖库`Adafruit_GFX`,可以通过Arduino IDE中的库管理器轻松完成这一步骤[^1]。 #### 示例代码展示 以下是完整的Arduino程序示例,该程序实现了通过按钮切换显示状态的功能: ```cpp #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); const int buttonPin = 2; // the number of the pushbutton pin int ledState = LOW; // the current state of the output pin int lastButtonState = LOW; // the previous reading from the input pin int currentState; void setup() { pinMode(buttonPin, INPUT); Serial.begin(9600); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); for(;;); } delay(2000); } void loop(){ int reading = digitalRead(buttonPin); if (reading != lastButtonState){ lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay){ if (reading != currentState){ currentState = reading; if (currentState == HIGH){ ledState = !ledState; if (ledState == HIGH){ display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.print("LED ON"); display.display(); } else{ display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.print("LED OFF"); display.display(); } } } } lastButtonState = reading; } ``` 这段代码展示了如何配置一个简单的电路,其中包含一块支持I2C通信协议的OLED屏幕和一个按键作为输入设备。当按下按键时,会触发一次事件改变当前的状态,并更新OLED上的文字提示以反映最新的操作结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值