差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
mp_adc [2021/09/28 02:13] gongyusu |
mp_adc [2023/08/01 09:11] (当前版本) group003 |
||
---|---|---|---|
行 9: | 行 9: | ||
- 还有第四个ADC用于内部温度传感器。 | - 还有第四个ADC用于内部温度传感器。 | ||
- | 电位计的连接 | + | 电位计的连接--GPIO28 |
在我们的测试中,我们将使用一个电位器在模拟输入端呈现一个可变电压,然后我们将读取该电压。我们将使用ADC0作为我们的电位计输入,但你也可以使用其他两个中的一个。 | 在我们的测试中,我们将使用一个电位器在模拟输入端呈现一个可变电压,然后我们将读取该电压。我们将使用ADC0作为我们的电位计输入,但你也可以使用其他两个中的一个。 | ||
- | ### 温度读取 | ||
- | 通过ADC通道4,读取芯片内部温度。在此过程中,使用手触摸Pi Pico表面加热,或者使用酒精喷洒芯片表面进行降温。 | ||
- | <code python> | ||
- | import machine | ||
- | import utime | ||
- | |||
- | sensor_temp = machine.ADC(4) | ||
- | conversion_factor = 3.3/(65535) | ||
- | |||
- | while True: | ||
- | read = sensor_temp.read_u16() * conversion_factor | ||
- | |||
- | temperature = 27 - (read - 0.706) / 0.001721 | ||
- | print(temperature) | ||
- | utime.sleep(2) | ||
- | | ||
- | </code> | ||
### 电位计读数 | ### 电位计读数 | ||
行 36: | 行 19: | ||
# analog-input.py | # analog-input.py | ||
- | # POT - Pico GPIO 26 ADC0 - Pin 32 | + | # POT - Pico GPIO 28 ADC2 |
# DroneBot Workshop 2021 | # DroneBot Workshop 2021 | ||
行 45: | 行 28: | ||
import utime | import utime | ||
- | potentiometer = machine.ADC(26) | + | potentiometer = machine.ADC(28) |
while True: | while True: | ||
行 54: | 行 37: | ||
这是一个简单的脚本,像往常一样,首先导入用于GPIO操作的machine库和用于时间函数的utime库。 | 这是一个简单的脚本,像往常一样,首先导入用于GPIO操作的machine库和用于时间函数的utime库。 | ||
- | 然后我们定义我们的电位器连接。请注意我们如何使用 "ADC "来表示我们要将GPIO 26针作为模拟输入。当然这只适用于具有模拟输入能力的三个GPIO引脚。 | + | 然后我们定义我们的电位器连接。请注意我们如何使用 "ADC "来表示我们要将GPIO 28针作为模拟输入。当然这只适用于具有模拟输入能力的三个GPIO引脚。 |
在True循环中,我们只需打印从电位器上得到的值,然后延迟几秒钟再做一次。 | 在True循环中,我们只需打印从电位器上得到的值,然后延迟几秒钟再做一次。 | ||
行 62: | 行 45: | ||
这可能看起来很奇怪,但正如我们将在下一个脚本中看到的那样,能够传递具有相同数值数据类型的值实际上是有用的。 | 这可能看起来很奇怪,但正如我们将在下一个脚本中看到的那样,能够传递具有相同数值数据类型的值实际上是有用的。 | ||
+ | ### 温度读取 | ||
+ | 通过ADC通道4,读取芯片内部温度。在此过程中,使用手触摸Pi Pico表面加热,或者使用酒精喷洒芯片表面进行降温。 | ||
+ | <code python> | ||
+ | import machine | ||
+ | import utime | ||
+ | |||
+ | sensor_temp = machine.ADC(4) | ||
+ | conversion_factor = 3.3/(65535) | ||
+ | |||
+ | while True: | ||
+ | read = sensor_temp.read_u16() * conversion_factor | ||
+ | |||
+ | temperature = 27 - (read - 0.706) / 0.001721 | ||
+ | print(temperature) | ||
+ | utime.sleep(2) | ||
+ | | ||
+ | </code> | ||
+ | |||
+ | ### from Maker Pi | ||
+ | <code python> | ||
+ | # This code reads the analog value on GP26 and print out on serial. | ||
+ | # --- | ||
+ | # Connection: Analog In = GP28 | ||
+ | # --- | ||
+ | # Hardware: | ||
+ | # 1. Cytron Maker Pi RP2040 (www.cytron.io/p-MAKER-PI-RP2040) | ||
+ | # - Any RP2040 boards should work too. | ||
+ | # --- | ||
+ | import machine | ||
+ | import utime | ||
+ | |||
+ | analog = machine.ADC(28) | ||
+ | |||
+ | while True: | ||
+ | print(analog.read_u16()) | ||
+ | utime.sleep(0.2) | ||
+ | </code> | ||
+ | |||
+ | ## 返回目录 | ||
+ | |||
+ | [[pico_micropython|MicroPython编程PICO训练板]] |