fix input logic (pull-up) + add GPIO notes
This commit is contained in:
88
LED Blink Input Output/GPIO-notes-pins.md
Normal file
88
LED Blink Input Output/GPIO-notes-pins.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Digital INPUT OUTPUT
|
||||
|
||||
There are three registers which initialize Digital INPUT and DIGITAL OUTPUT port:
|
||||
|
||||
1. DDRB
|
||||
2. DDRC
|
||||
3. DDRD
|
||||
|
||||
Each pin is 1 bit of DDRx.
|
||||
|
||||
Here P means Port
|
||||
Example: PC → Port C
|
||||
|
||||
Microcontroller pins are grouped as:
|
||||
|
||||
1. PORTB → PB0–PB7
|
||||
2. PORTC → PC0–PC6
|
||||
3. PORTD → PD0–PD7
|
||||
|
||||
---
|
||||
|
||||
## Important
|
||||
|
||||
- In Arduino Uno, PC7 does not exist
|
||||
→ PORTC is only PC0–PC6
|
||||
|
||||
- PB6 and PB7 are used by 16MHz crystal
|
||||
→ DO NOT USE
|
||||
|
||||
- PC6 is RESET pin
|
||||
→ DO NOT USE as GPIO
|
||||
→ can reset system
|
||||
|
||||
- PD0 and PD1 are Serial pins (RX TX)
|
||||
→ used for USB upload and debugging
|
||||
→ DO NOT USE during development
|
||||
|
||||
---
|
||||
|
||||
## SPI (just remember)
|
||||
|
||||
- PB3 → MOSI
|
||||
- PB4 → MISO
|
||||
- PB5 → SCK
|
||||
|
||||
→ used for SPI and programming
|
||||
→ can be used as GPIO but avoid if SPI used
|
||||
→ PB5 has onboard LED
|
||||
|
||||
---
|
||||
|
||||
## I2C (just remember)
|
||||
|
||||
- PC4 → SDA
|
||||
- PC5 → SCL
|
||||
|
||||
→ used for I2C communication
|
||||
|
||||
---
|
||||
|
||||
## Safe pins for Digital I/O
|
||||
|
||||
- PORTD → PD2–PD7
|
||||
- PORTB → PB0–PB2 (PB3–PB5 usable but SPI)
|
||||
- PORTC → PC0–PC5 (PC4 PC5 shared with I2C)
|
||||
|
||||
---
|
||||
|
||||
## Use with care
|
||||
|
||||
- PB3 PB4 PB5 → SPI pins
|
||||
- PC4 PC5 → I2C pins
|
||||
|
||||
---
|
||||
|
||||
## Final
|
||||
|
||||
Best pins to use:
|
||||
|
||||
PD2–PD7
|
||||
PB0–PB2
|
||||
PC0–PC5
|
||||
|
||||
Avoid:
|
||||
|
||||
PB6 PB7 → crystal
|
||||
PC6 → reset
|
||||
PD0 PD1 → serial
|
||||
Reference in New Issue
Block a user