arduino入门

1,arduino开发板主要用于处理输入输出信号;

2,第一个案例:利用arduino IDE编辑代码控制LED灯闪烁;

void setup(){         仅仅执行一次

  PinMode(13,output);  //设置引脚模式,13号为输出;

}

void loop(){     //循环执行,不停止

digitalWrite(13,HIGH);   //设置数字输出,13号引脚高电平,此时灯亮;

delay(1000);   //延迟1000ms之后执行下一步函数;

digitalWrite(13, LOW);  //设置13号引脚为低电平,此时灯灭;

delay(1000);   //延迟函数;

}

3,第二个案例:流水灯控制;

将6个小灯插到面包板上,其中长引脚分别分配arduino的6,7,8,9,10,11接口;短引脚全部都接到面包板的蓝线上,然后在面包板的蓝线中的一个接口连接到arduino的GND接口。代码如下:

void setup(){

pinMode(6,output);

pinMode(7,output);

pinMode(8,output);

pinMode(9,output);

pinMode(10,output);

pinMode(11,output);

}

void loop(){
digitalWrite(6, LOW);

digitalWrite(7,HIGHT);

delay(200);

digitalWrite(7, LOW);

digitalWrite(8,HIGHT);

delay(200);

digitalWrite(8,LOW);

digitalWrite(9,HIGHT);

}

4,开关元件;

  (1)开关元件有四个脚,内部电路是这样的,连接的时候要么对角线,要么等侧连接;

(2)还有一种是震动开关:只要震动,里面的电线接触,就接通;没有正负极

(3)第三种开关,干簧管。磁铁一旦靠近就接通。

### Arduino 控制四位数码管 为了实现四位数码管分别显示不同数字,采用动态扫描技术可以有效解决问题。通过让各个数码管依次轮流点亮并迅速切换所显示的数字,在视觉上形成连续稳定的多位数字显示效果[^2]。 下面是一个完整的Arduino控制四位数码管的例子: #### 所需材料 - Arduino UNO套件 - 计算机 - 4位数码管 - 4个220欧姆限流电阻 - 面包板 - 杜邦线等[^1] #### 示例代码 ```cpp // 定义连接到数码管各段的引脚号 const int digitPins[] = {9, 8, 7, 6}; // 数码管选通端口定义 const int segmentPins[] = {A0, A1, A2, A3, A4, A5, 10, 11}; // a,b,c,d,e,f,g,dp byte numbers[][7] = { {1,1,1,1,1,1,0}, // 0 {0,1,1,0,0,0,0}, // 1 {1,1,0,1,1,0,1}, // 2 {1,1,1,1,0,0,1}, // 3 {0,1,1,0,0,1,1}, // 4 {1,0,1,1,0,1,1}, // 5 {1,0,1,1,1,1,1}, // 6 {1,1,1,0,0,0,0}, // 7 {1,1,1,1,1,1,1}, // 8 {1,1,1,1,0,1,1} // 9 }; void setup() { for (int i=0; i<4; i++) pinMode(digitPins[i], OUTPUT); for (int i=0; i<8; i++) pinMode(segmentPins[i], OUTPUT); Serial.begin(9600); } void loop() { displayNumber(5, 6, 7, 8); } void clearLEDs(){ for(int i=0;i<4;i++){ digitalWrite(digitPins[i], HIGH); } } void pickDigit(byte n){ for(int i=0;i<4;i++){ if(i==(n-1)){ digitalWrite(digitPins[i], LOW); }else{ digitalWrite(digitPins[i], HIGH); } } } void pickNumber(byte num){ byte segments[7]; memcpy(segments,numbers[num-1],sizeof(segments)); for(int i=0;i<7;i++){ digitalWrite(segmentPins[i],segments[i]); } } void displayNumber(byte d1, byte d2, byte d3, byte d4){ static unsigned long lastTime; static byte currentDigit; if(millis()-lastTime>2){ lastTime=millis(); clearLEDs(); switch(currentDigit){ case 0: pickDigit(1); pickNumber(d1); break; case 1: pickDigit(2); pickNumber(d2); break; case 2: pickDigit(3); pickNumber(d3); break; case 3: pickDigit(4); pickNumber(d4); break; } currentDigit=(currentDigit+1)%4; } } ``` 此代码实现了对四个独立位置上的数字进行循环刷新的功能,从而可以在四位数码管上显示出不同的数值组合。每次只激活一个数码管,并设置其应显示的具体字符;当完成一次更新后立即转向下一个数码管执行同样的操作,利用人眼的视觉暂留效应达到稳定显示的目的。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值