§ Схема

Привожу здесь информацию о плате Arduino и ее распиновке.

Legendarium
  • AVR - Обозначения пинов в даташите AVR
  • DIGITAL - Эти пины могут принимать либо 0, либо 1
  • ANALOG - Аналоговые пины
  • POWER - Питание
  • SERIAL - USART, то есть, универсальный последовательный асинхронный протокол приемо-передачи
  • SPI - Это протокол SPI
  • I2C - Протокол I2C здесь
  • PWM - Пин поддерживает ШИМ (Широтно-Импульсную-Модуляцию)
  • INTERRUPT - На этот пин реально навесить внешнее прерывание

§ ICSP


ICSP - внутрисхемное программирование, так расположено, чтобы было удобнее прошивать другие устройства.

§ Обозначение пинов в AVR

I/O Имя Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
0x0B PORTD PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD0
0x0A DDRD DDRD7 DDRD6 DDRD5 DDRD4 DDRD3 DDRD2 DDRD1 DDRD0
0x09 PIND PIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND1 PIND0
0x08 PORTC PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0
0x07 DDRC DDRC6 DDRC5 DDRC4 DDRC3 DDRC2 DDRC1 DDRC0
0x06 PINC PINC6 PINC5 PINC4 PINC3 PINC2 PINC1 PINC0
0x05 PORTB PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0
0x04 DDRB DDRB7 DDRB6 DDRB5 DDRB4 DDRB3 DDRB2 DDRB1 DDRB0
0x03 PINB PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0
Суть такова:
  • PORTx - Это ВЫВОД
  • PINx - Это ВВОД
  • DDRx - Здесь устанавливается направление. Если =0, то это ставится соответствующий бит порта на ввод, иначе, если =1, то бит устанавливается на вывод
Если поставить бит в PORTx, то:
  • Если соответствующий бит в DDRx =1, будет +5V HIGH, иначе LOW<
  • Бит в DDRx =1, то слабая подтяжка поставится на HIGH, иначе на LOW (зависит от того, что в PORTx)
Принять бит можно из PINx