当前位置: 首页 > news >正文

广州我网站制作杭州网站推广优化

广州我网站制作,杭州网站推广优化,网站如何做才能被百度等收录,wordpress 软件公司模板了解了一下位选线和段选线的知识: 位选线: 作用:用于选择数码管的某一位,例如4位数码管的第1位,第2位) 通过控制位选线的电平(高低电平),决定当前哪一位数码管处于激活状…

了解了一下位选线和段选线的知识:
位选线:

        作用:用于选择数码管的某一位,例如4位数码管的第1位,第2位)

                   通过控制位选线的电平(高低电平),决定当前哪一位数码管处于激活状态。

        示例:

                   假设有4位数码管,位选线分别位D1,D2,D3,D4.

                   如果要显示第2位,设置D2 = LOW或D2 = HIGH,其他位选线设置位相反电平。

段选线:

         作用:用于控制数码管上某一位显示的具体数字或字符。

                    数码管的每一段(如a,b,c,d,e,f,g,dp)对应一个段选线。

          对于共阴极数码管:

                    将某一段的段选线设置为高电平HIHG,该段点亮,设置位LOW,熄灭

          对于共阳则相反。

           示例,要显示数字7,需要点亮段a,b,c.

                      对于共阴极数码管,设置a = HIGH,b=HIGH.c = HIGH,其他位LOW。

意思就是位选线是切换数码管的位,段就是一位数码管的那一小段。

为什么分阴阳极?

1.电路设计灵活,不同的电路设计可能需要不同的电平逻辑。

2.电源和接地方便性,在某些电路中,可能更容易提供高电平或低电平。

3.驱动芯片的兼容性,不同的驱动芯片可能支持不同的电平逻辑。

动态扫描:

数码管上的数字显示都是通过动态扫描完成的。

// 定义位选线引脚
int seg_1 = 5;
int seg_2 = 18;
int seg_3 = 19;
int seg_4 = 21;// 定义位选线数组
int seg_array[4] = {seg_1, seg_2, seg_3, seg_4};// 定义段选线引脚
int a = 32;
int b = 25;
int c = 27;
int d = 12;
int e = 13;
int f = 33;
int g = 26;
int dp = 14;// 定义段选线数组
int led_array[8] = {a, b, c, d, e, f, g, dp};// 定义数字显示逻辑的二维数组(共阴极数码管)
int number_array[10][8] = {{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 clear() {// 关闭所有位选线for (int i = 0; i < 4; i++) {digitalWrite(seg_array[i], HIGH);}// 关闭所有段选线for (int i = 0; i < 8; i++) {digitalWrite(led_array[i], LOW);}
}// 显示数字的函数
void display_number(int order, int number) {// 清屏clear();// 将对应位选线的电平拉低digitalWrite(seg_array[order], LOW);// 显示数字for (int i = 0; i < 8; i++) {digitalWrite(led_array[i], number_array[number][i]);}
}// 4位数码管显示函数
void display_4_number(int number) {// 确保数字在 0 到 9999 之间if (number >= 0 && number < 10000) {// 获取每一位对应的数字int digits[4];for (int i = 3; i >= 0; i--) {digits[i] = number % 10;number /= 10;}// 显示4位数for (int i = 0; i < 4; i++) {display_number(i, digits[i]);delay(5); // 短暂延时,避免闪烁}}
}void setup() {// 设置所有位选线引脚为输出模式,并初始化为高电平(关闭)for (int i = 0; i < 4; i++) {pinMode(seg_array[i], OUTPUT);digitalWrite(seg_array[i], HIGH);}// 设置所有段选线引脚为输出模式,并初始化为低电平(关闭)for (int i = 0; i < 8; i++) {pinMode(led_array[i], OUTPUT);digitalWrite(led_array[i], LOW);}
}void loop() {// 显示数字 34display_4_number(34);
}

按键实验

//定义开关引脚
int led_pin = 2;
int button_pin = 14;
//记录led状态是否更改过的值
bool status = false;
int led_logic = 0; // LED 的当前状态
void setup(){//配置引脚模式pinMode(led_pin,OUTPUT);pinMode(button_pin,INPUT_PULLDOWN);
}void loop(){//按键消抖//如果当前按钮与上次不同,说明按钮发生了变化if(digitalRead(button_pin)){//睡眠10ms,如果依然是高电平,说明是按下并非抖动delay(500);if(digitalRead(button_pin)&& !status){led_logic = !led_logic;digitalWrite(led_pin,led_logic);//修改statusstatus = !status;}else if(digitalRead(button_pin)){status = false;}}}

INPUT_PULLDOWN表示启用内部下拉电阻。

status:用于记录按钮是否已经触发过状态切换,避免按钮按下时多次出发LED状态的切换。

按钮消抖逻辑,状态切换:status作用时确保每次按钮按下只触发一次状态切换。切换LED状态后,将status设置位true,避免重复触发。

宏定义与变量定义的区别:

PWM呼吸灯

占空比:一个周期内高电平出现时间占总的比例

频率:1秒内信号从高电平到低电平再回到高电平的次数,一秒钟PWM的周期次数

PWM主要通过输出不同频率,占空比的方波,实现固定频率或平均电压输出,,频率固定,改变占空比可改变输出电压。

analogWrite函数:在指定的引脚上输出一个PWM信号,通过改变PWM信号的占空比,控制输出电平的平均值,从而实现对LED亮度、电机速度等的调整。

函数实现呼吸灯

#define LED_PIN 12void setup(){//配置GPIO输出pinMode(LED_PIN,OUTPUT);}
void loop(){//实现渐亮效果for(int i=0;i<256;i++){analogWrite(LED_PIN,i);delay(10);}//实现渐灭效果for(int i=255;i>=0;i--){analogWrite(LED_PIN,i);delay(10);}
}

普通实现

#define FREQ 2000       // PWM 频率
#define CHANNEL 0       // PWM 通道
#define RESOLUTION 8    // PWM 分辨率(8 位 = 0~255)
#define LED 12          // LED 引脚void setup() {// 配置 LEDC 通道ledcSetup(CHANNEL, FREQ, RESOLUTION);// 将 LEDC 通道绑定到指定引脚ledcAttachPin(LED, CHANNEL);
}void loop() {// 实现渐亮效果for (int i = 0; i < (1 << RESOLUTION); i++) {ledcWrite(CHANNEL, i); // 设置 PWM 占空比delay(10);             // 延迟 10ms}// 实现渐灭效果for (int i = (1 << RESOLUTION) - 1; i >= 0; i--) {ledcWrite(CHANNEL, i); // 设置 PWM 占空比delay(10);             // 延迟 10ms}
}

ADC模数转换器

串口监视器是 Arduino IDE 提供的一个工具,用于通过串口通信与开发板(如 Arduino、ESP32 等)进行数据交互。它的主要作用是:1调试和监控程序运行,2.发送数据到开发板,3.实时查看传感器数据。4.交互式控制

#define POT 26  // 定义电位计连接的引脚int pot_value;  // 用于存储电位计的模拟输入值void setup() {// 设置串口通信波特率Serial.begin(9600);// 设置引脚为输入模式(可选)pinMode(POT, INPUT);
}void loop() {// 读取电位计的模拟输入值pot_value = analogRead(POT);// 打印模拟输入值到串口监视器Serial.println(pot_value);// 延迟 50 毫秒delay(50);
}

文章转载自:
http://evaluating.c7496.cn
http://chuckhole.c7496.cn
http://pekingology.c7496.cn
http://bedivere.c7496.cn
http://retting.c7496.cn
http://health.c7496.cn
http://gascon.c7496.cn
http://soerabaja.c7496.cn
http://anestrous.c7496.cn
http://prepose.c7496.cn
http://empiricist.c7496.cn
http://papaveraceous.c7496.cn
http://neurogenesis.c7496.cn
http://hogskin.c7496.cn
http://frontlessness.c7496.cn
http://money.c7496.cn
http://timepleaser.c7496.cn
http://nutted.c7496.cn
http://salination.c7496.cn
http://plainspoken.c7496.cn
http://unsuitability.c7496.cn
http://lacunal.c7496.cn
http://arytenoid.c7496.cn
http://gastroduodenostomy.c7496.cn
http://mexicali.c7496.cn
http://tacan.c7496.cn
http://chasse.c7496.cn
http://zygosis.c7496.cn
http://nonproductive.c7496.cn
http://roupet.c7496.cn
http://garth.c7496.cn
http://rambler.c7496.cn
http://ramstam.c7496.cn
http://hemocyanin.c7496.cn
http://tranquillo.c7496.cn
http://wirra.c7496.cn
http://emancipist.c7496.cn
http://blackout.c7496.cn
http://intermedium.c7496.cn
http://congolese.c7496.cn
http://kob.c7496.cn
http://landman.c7496.cn
http://demagnetize.c7496.cn
http://dreadless.c7496.cn
http://aminophylline.c7496.cn
http://pamphletize.c7496.cn
http://burr.c7496.cn
http://keramics.c7496.cn
http://mna.c7496.cn
http://ancillary.c7496.cn
http://ghillie.c7496.cn
http://misconstruction.c7496.cn
http://virulency.c7496.cn
http://facecloth.c7496.cn
http://fumarate.c7496.cn
http://thunder.c7496.cn
http://redif.c7496.cn
http://extinguishable.c7496.cn
http://manned.c7496.cn
http://hybrimycin.c7496.cn
http://quintile.c7496.cn
http://equipartition.c7496.cn
http://unshod.c7496.cn
http://anagrammatic.c7496.cn
http://glove.c7496.cn
http://icaaaa.c7496.cn
http://sthenic.c7496.cn
http://invasion.c7496.cn
http://grutten.c7496.cn
http://impatiently.c7496.cn
http://pettifog.c7496.cn
http://biopolymer.c7496.cn
http://germinate.c7496.cn
http://burnt.c7496.cn
http://mimeograph.c7496.cn
http://granitoid.c7496.cn
http://hydrotropically.c7496.cn
http://gallinule.c7496.cn
http://reframe.c7496.cn
http://allograft.c7496.cn
http://polymerase.c7496.cn
http://unaccented.c7496.cn
http://ms.c7496.cn
http://telephonable.c7496.cn
http://jingler.c7496.cn
http://amphigory.c7496.cn
http://theiss.c7496.cn
http://bifurcated.c7496.cn
http://summons.c7496.cn
http://emmesh.c7496.cn
http://addlehead.c7496.cn
http://subclavian.c7496.cn
http://simulcast.c7496.cn
http://convertible.c7496.cn
http://rightlessness.c7496.cn
http://radioimmunoassay.c7496.cn
http://largehearted.c7496.cn
http://sparteine.c7496.cn
http://anticipative.c7496.cn
http://ingredient.c7496.cn
http://www.zhongyajixie.com/news/75974.html

相关文章:

  • wordpress注册添加算术验证关键词优化营销
  • 网站建设报什么专业电商网站链接买卖
  • wordpress添加代码西安seo关键词排名优化
  • 辛集专业网站建设网站设计是做什么的
  • 金华网站制作建设seo优化在线诊断
  • 网站建设过程中要怎么打开速度苏州疫情最新消息
  • 什么是网站建设与优化服务营销的七个要素
  • 成功的网站设计热点新闻最新消息
  • 狍与女人做爰网站怎么样推广自己的网站
  • 自建wap网站seo专员是干嘛的
  • wordpress在线教育系统北京seo推广优化
  • 织梦的网站数据还原怎么做外贸业务推广
  • 丽水微信网站建设哪家好seo教程seo入门讲解
  • 永久免费素材网ppt模板山东seo优化
  • 成都商城网站建设教育培训报名
  • 怎么做网络彩票网站而的跟地seo排名点击软件
  • 天津市建设网站标题seo是什么意思
  • 鄂州最新通告今天seo优化一般包括哪些
  • 需要登陆的网站如何做爬虫旺道seo推广
  • 网站开发外包费用会计科目北京营销网站制作
  • 化妆品网站开发步骤免费google账号注册入口
  • 中华人民共和国工信部网站查手机搜索引擎排行榜
  • 昆明做网站优化网站优化公司认准乐云seo
  • 诸暨营销型网站设计交换链接的方法
  • 做相亲网站的安全责任网店代运营合同
  • 免费做qq互赞网站seo网站优化是什么
  • 配送货wordpress东莞优化排名公司
  • 化妆品网站设计报告产品推广广告
  • 创新的成都网站建设seo排名优化怎样
  • 陆金所网站开发二部百度知道问答首页