You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/micropython/01.basics/05.digital-analog-pins/digital-analog-pins.md
+13-18Lines changed: 13 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,23 +7,23 @@ micropython_type: basics
7
7
8
8
In this chapter we will learn about managing digital and analog pins.
9
9
10
-
All the compatibles boards have a series of pins, most of these pins work as a general-purpose input/output (GPIO) pin. There are Digital Pins and Analog Pins depending by the signal. We will learn how to use the inputs and outputs.
10
+
All the compatible boards have a series of pins, most of these pins work as a general-purpose input/output (GPIO) pin. There are Digital Pins and Analog Pins depending on the signal. We will learn how to use the inputs and outputs.
11
11
12
-
There are essentially two types of pins, analog and digital pins. Digital pins can be set to either HIGH (usually 5V or 3.3V) or LOW (0V). You can use that to e.g. read a button state or to toggle an LED.
12
+
There are essentially two types of pins, analog and digital pins. Digital pins can be set to either HIGH (usually 5V or 3.3V) or LOW (0V). You can use that to e.g. read a button state or toggle an LED.
13
13
14
14
***Important: unfortunately, the MicroPython implementation does not match the regular pinout of your board. This means, that if you want to use for example, digital pin (5), it might be digital pin (27) on one board, or digital pin (14) on another. Please visit the [Board API article](/micropython/basics/board-api) to see what the pin map for your board is.***
15
15
16
16
## Digital Pins
17
17
18
-
Digital signals have two distinct values: HIGH (1) or LOW (0). You use digital signals in situations where the input or output will have one of those two values. For example you can use a digital signal to turn an LED on or off.
18
+
Digital signals have two distinct values: HIGH (1) or LOW (0). You use digital signals in situations where the input or output will have one of those two values. For example, you can use a digital signal to turn an LED on or off.
19
19
20
20
### Digital Write
21
21
22
22
In this section we will introduce the `machine` module to control the state of a pin. In this example, we will name the pin `myLED`.
23
23
24
24
In MicroPython we can declare a `Pin` with two arguments: Pin number, such as `25`, which defines the number of the pin that you would like to control, and `Pin.OUT`, to declare a pin as output.
25
25
26
-
Finally, to turn set the pin to a high or low state, we set the `value` to either `1` or `0`.
26
+
Finally, to turn the pin to a high or low state, we set the `value` to either `1` or `0`.
27
27
28
28
```python
29
29
from machine import Pin #import pin function
@@ -36,7 +36,7 @@ myLED.value(0) #set pin to a low state (0) / OFF
36
36
37
37
To create the classic "blink" example, we can also import the `time` module, and create a `while` loop.
38
38
39
-
The following examples blinks the onboard LED every second.
39
+
The following example blinks the onboard LED every second.
40
40
41
41
```python
42
42
from machine import Pin
@@ -90,34 +90,29 @@ while True:
90
90
91
91
## Analog Pins
92
92
93
-
An example of analog pin is the ADC class, that supplies an interface to analog-to-digital converters, and figures a single endpoint that can sample a continuous voltage and convert it to a discretised value.
93
+
An example of the analog pin is the ADC class, which supplies an interface to analog-to-digital converters, and figures a single endpoint that can sample a continuous voltage and convert it to a discretized value.
94
94
95
95
There are four methods to use inside the ADC class: `ADC.init`, `ADC.block()`, `ADC.read_16()` and `ADC.read_uv()`.
96
96
97
97
### Analog Read
98
98
99
-
To read an analog pin, we can use the `ADC.read_u16` command. This reads the specified analog pin, and return an integer in the range 0 - 65535. For this, we need to import `ADC` and `Pin` from the `machine` module.
99
+
To read an analog pin, we can use the `ADC.read_u16` command. This reads the specified analog pin and returns an integer in the range 0 - 65535. For this, we need to import `ADC` from the `machine` module.
100
100
101
-
```python
102
-
import machine
103
-
import time
101
+
***Note: This is currently only available on the nightly build***
104
102
105
-
# Make sure to follow the GPIO map for the board you are using.
106
-
# Pin 29 in this case is the "A3" pin on the Nano 33 BLE / BLE Sense
107
-
adc_pin = machine.Pin(29)
108
-
adc = machine.ADC(adc_pin)
103
+
```python
104
+
from machine importADC
109
105
110
106
whileTrue:
111
-
reading = adc.read_u16()
112
-
print("ADC: ",reading)
113
-
time.sleep_ms(500)
107
+
adc = ADC("A4")
108
+
adc.read_u16()
114
109
```
115
110
116
111
## PWM (Pulse Width Modulation)
117
112
118
113
[PWM](/learn/microcontrollers/analog-output) is used to produce analog results with digital means, by switching ON/OFF a signal rapidly.
119
114
120
-
As a result, you can simulate a specific voltage written to a pin. In the example below, we write `30000` in a range between 0 - 65535 (16 bits), which if you connect an LED to the pin, it will be on at about "half" capacity.
115
+
As a result, you can simulate a specific voltage written to a pin. In the example below, we write `30000` in a range between 0 - 65535 (16 bits), which if you connect an LED to the pin, will be on at about "half" capacity.
121
116
122
117
For this, we need to import `PWM` and `Pin` from the `machine` module.
0 commit comments