SSAFY/관통 PJT

관통 PJT #보드설명

ballbig 2024. 5. 19. 20:00
728x90

 

An핀과 ~n
  • An 핀 (아날로그 핀)
    • 주로 입력용: A0, A1, A2 등과 같은 아날로그 핀은 아날로그 입력을 읽는 데 주로 사용됩니다. 아날로그 신호(예: 센서 값)를 10비트 디지털 값으로 변환합니다.
    • 특정 보드에서의 추가 기능: 일부 아두이노 보드 (예: Arduino Due)에서는 아날로그 핀이 아날로그 출력을 제공하기도 합니다. 그러나 일반적인 아두이노 (예: Arduino Uno)에서는 주로 입력으로 사용됩니다.
  • ~n 핀 (PWM 핀)
    • 출력용: ~3, ~5, ~6, ~9, ~10, ~11 등과 같은 PWM 핀은 PWM 신호를 출력하는 데 사용됩니다. 이 핀들은 디지털 출력 핀으로서의 기본 기능을 가지며, 특정 기능을 통해 아날로그 출력을 흉내낼 수 있습니다.
    • PWM (Pulse Width Modulation): PWM은 디지털 신호를 이용하여 아날로그 출력을 모방하는 방식입니다. 이를 통해 LED의 밝기를 조절하거나 모터의 속도를 제어하는 등 다양한 응용이 가능합니다.
      요약

 

아두이노 나노의 PWM
  • 아두이노 나노의 PWM 핀
    • D3
    • D5
    • D6
    • D9
    • D10
    • D11

[exampel Code]

int ledPin = 9;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  analogWrite(ledPin, 128); // 0-255 범위의 값을 설정 (128은 약 50%)
  delay(1000);
}

 

 

ESP32의 PWM
  • ESP32의 PWM 채널 수: 최대 16개.
  • PWM 해상도: 최대 16비트.
  • PWM 주파수: 유연하게 설정 가능.
  • 사용법: ledcSetup(), ledcAttachPin(), ledcWrite() 함수를 사용하여 PWM 설정 및 제어.

[example Code]

const int pwmPin = 18;  // PWM 출력을 사용할 핀 번호
const int pwmChannel = 0;  // 사용할 PWM 채널 (0~15)
const int pwmFreq = 5000;  // PWM 주파수 (Hz)
const int pwmResolution = 8;  // PWM 해상도 (비트)

void setup() {
  // PWM 채널 설정
  ledcSetup(pwmChannel, pwmFreq, pwmResolution);
  
  // PWM 채널을 핀에 연결
  ledcAttachPin(pwmPin, pwmChannel);
}

void loop() {
  // PWM 신호의 듀티 사이클 설정 (0~255 범위에서, 해상도가 8비트인 경우)
  ledcWrite(pwmChannel, 128);  // 50% 듀티 사이클
  
  delay(1000);
  
  // 듀티 사이클 변경
  ledcWrite(pwmChannel, 255);  // 100% 듀티 사이클
  
  delay(1000);
}

 

 

 

ESP8266의 PWM
  • ESP8266의 PWM 핀 : 6개
    • GPIO0 (D3)
    • GPIO2 (D4)
    • GPIO4 (D2)
    • GPIO5 (D1)
    • GPIO12 (D6)
    • GPIO13 (D7)
    • GPIO14 (D5)
    • GPIO15 (D8)
  • 이 핀들은 analogWrite() 함수를 통해 PWM 출력을 제어할 수 있습니다. 
  • ESP8266의 기본 PWM 해상도는 10비트로, 듀티 사이클 값은 0에서 1023 사이의 범위를 가집니다.

[example Code]

const int pwmPin = 2;  // PWM 출력을 사용할 핀 번호 (GPIO2)

void setup() {
  pinMode(pwmPin, OUTPUT);
}

void loop() {
  // PWM 신호의 듀티 사이클 설정 (0~1023 범위에서)
  analogWrite(pwmPin, 512);  // 약 50% 듀티 사이클
  
  delay(1000);
  
  // 듀티 사이클 변경
  analogWrite(pwmPin, 1023);  // 100% 듀티 사이클
  
  delay(1000);
}

 

 

아두이노 전원 공급

https://m.blog.naver.com/dokkosam/221361217816

 

[아두이노 QnA] 아두이노 보드의 외부 전원?

아두이노 보드의 외부 전원? 안녕하세요. 아토플래닛의 가현쌤입니다. 가현쌤과 오래 공부하신 분들이라면 ...

blog.naver.com