如何控制arduino的一个引脚电压输出

如何控制arduino的一个引脚电压输出,第1张

首先设置在setup函数中设置该引脚的接口为输出格式,即:

pinMode(pin,OUTPUT)

然后在loop循环中使用digitalWrite命令赋予该引脚高电平,即:

digitalWrite(pin,HIGH)

如果是模拟接口,将digital换为analog即可。引脚电压一般不单独使用,实际使用要根据程序实例变化。

使用pinMode(pin, mode)来设置GPIO口工作模式,mode可选比较多INPUT、OUTPUT、INPUT_PULLUP、INPUT_PULLDOWN模式(输入、输出、上拉输入、下拉输入,另外还有开漏等模式),具体是否能设置对应模式还得参考技术规格书(一般的GPIO0 ~ 33可以设置为输出,基本上都可以设置为输入,GPIO6 ~ 11一般不推荐使用,因为这几个口接了存储程序用的Flash,不当使用可能引起程序崩溃);

使用digitalWrite(pin, value)来设置输出状态,value可选值为HIGH或LOW,即1和0;

使用digitalRead(pin)来读取GPIO口电平,返回值为HIGH或LOW,即1和0;

题外话:请注意ESP32的IO12,这个IO口上上电时的电平会决定外部flash(存放程序的那颗)的工作电压,上电时该脚为高则认为flash工作于1.8V,为低则认为flash工作于3.3V。常用的像是Wroom-32系列模块该脚内部已下拉,即flash是工作于3.3V的,若外部电路接强上拉则可能导致模块工作异常。

外部中断

外部中断使用方式如下:

使用attachInterrupt(uint8_t pin, void (*)(void), int mode)或attachInterruptArg(uint8_t pin, void (*)(void*), void * arg, int mode)来设置外部中断,输入参数有gpio号、中断触发时的回调函数、回调函数输入参数、外部中断触发模式(RISING、FALLING、CHANGE……上升沿、下降沿、改变时、低电平、高电平等);

使用detachInterrupt(uint8_t pin)来关闭外部中断;

使用示例

使用下面代码进行测试:

// IO14 输出

// IO12 下拉输入模式 电平改变触发中断

// 使用导线连接 IO14 和 IO12

void callBack(void)

{

int lv = digitalRead(12)//读取加载到IO12上的电平

Serial.printf("触发了中断,当前电平是: %d\n", lv)

}

void setup()

{

Serial.begin(115200)

Serial.pr

本文仅为入门实验,甚至谈不上研究的程度。目的是:记录如何烧录程序到 Arduino 主板,以及通过一些简单例程,找到 Arduino 开发的感觉。

开发环境:Ardunio IDE(用于编译、上传运行代码)、VS Code 这种实时的文本编辑器(方便查看、编写代码,编写后再将代码复制到 Arduino IDE 中保存)。

Arduino 驱动:在 Win10 环境,应该会自动安装。插上 Arduino 稍后一会,就能直接上传代码。

1、Hello World例程:

打开 Arduino IDE,另存临时工程。用 VS Code 编辑 .ino 源文件:

int ledpin = 13 //定义数字接口13,对应 Arduino 数字 I/O 13口,库中的 LED_BUILTIN 常量

void setup()

{

// 通过串口收发数据

Serial.begin(9600)//设置串口的波特率

pinMode(ledpin, OUTPUT) //设置13口为输出模式。使用 Arduino 上面的 I/O 口,都需要类似设置

}

void loop()

{

// int val = Serial.read() //读取 pc 发送给 Arduino 的数据

digitalWrite(ledpin, HIGH)//13口输出高电平

delay(500)//延迟0.5秒

digitalWrite(ledpin, LOW) //13口输出低电平

delay(500)

Serial.println("Hello World")

}

编写好保存后,用 Arduino IDE 上传代码后,只要 Arduino 通电,代码就会在主板上运行了。

最后打开 Arduino IDE 的串口工具,即可看到 Arduino 不断发送的数据;随便用个小灯泡,阴极接地,阳极接13口,可以看到小灯泡正在 Blink。

2、使用模拟接口,读取模拟值:

Arduino 有 A0-A5,共6个模拟口,模拟口也可以复用为数字接口14-19。至于是当作模拟口,还是用作数字接口,取决于使用 digital 还是 analog 函数。

例程:

int potpin = 0

int val = 0

void setup()

{

// 通过串口收发数据

Serial.begin(9600)//设置串口的波特率

}

void loop()

{

val = analogRead(potpin)

Serial.println(val)

delay(2000)

}

电路图如下(其中 R2 为可变电阻)。通过可调电阻改变电流大小,从而改变 A0 的模拟值,读取并输出串口。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7893022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存