Arduino 21

[Arduino] 아두이노 가변저항 사용해서 LED 밝기 조절하기

가변 저항은 스위퍼를 돌려서 0 ~ 1023 값을 받을 수 있다. 가변 저항에서 얻은 값으로 LED 밝기를 조절 해 보자. 회로도 저항은 220옴을 사용하면 된다. 코드 구현 가변 저항 값이 커질 수록 LED 밝기가 올라간다. map함수 = 가변저항 최대값(1023) / LED 최대값(255)의 근사치다. 쉽게 말하면 가변저항 값을 LED 값으로 변환한다. #define LED_PIN 11 void setup( ) { pinMode(LED_PIN, OUTPUT); } void loop( ) { int readVal= analogRead(A0); readVal = map(readVal, 0, 1023, 0, 255); //가변저항 값 -> led 값으로 변환 analogWrite(LED_PIN, readV..

Arduino 2024.02.02

[Arduino] 아두이노 DC 모터(L298N) 제어하기

DC 모터 (L298N) DC 모터는 PWM((Pulse Width Modulation)을 이용해서 0 ~ 255 까지 속도를 제어 할 수 있다. 숫자가 낮을 수록 회전수가 적어져 속도가 느려진다. 또 한 DC 모터를 제어하기 위해서 드라이버가 필요한데 회로도에 나와있는 L298D다. (회로도에는 L293D라 되어있지만 L298D가 명칭임.) L298D는 DC모터 뿐만 아니라 Servo 모터를 제어 할 수 있다. 회로도 DC모터가 회전 하지 않을 때 아래 방법으로 해결. 1. 회전 속도가 낮아 안 돌아감 -> 1. 손으로 한번 돌려 볼것, 2. 코드에 속도를 255로 해볼것. 2. DC모터의 노란색, 초록색 선을 반대로 연결 -> 바꿔서 연결 해 볼 것. 코드 구현 DC모터를 255 속도로 1초마다 정방..

Arduino 2024.02.02

[Arduino] 아두이노 7세그먼트 사용해서 숫자 카운트하기

7세그먼트 7세그먼트로 숫자나 문자를 나타낼 수 있다. 하지만 대부분 간단한 숫자를 나타내는데 사용한다. 회로도 복잡하지만 최대한 보기 쉽게 그려놨다. 세그먼트 on, off하기 1초마다 세그먼트의 전부가 on, off 하는 코드다. on을 하면 세그먼트에 8이 나올 것이며 off를 하면 아무것도 나오지 않는다. #define A_PIN 2 #define DP_PIN 9 void setup() { for(int i = A_PIN; i

Arduino 2024.02.02

[Arduino] 아두이노 푸시 버튼으로 LED 제어하기

푸시 버튼을 누르면 LED에서 빛이 나오는 예제 회로도 저항은 220옴을 사용하면 된다. 코드 구현 푸시 버튼 핀 모드를 INPUT_PULLUP으로 구현을 했다. 누르고 있으면 LED ON 누르지 않으면 LED OFF #define PUSH_PIN 9 #define LED_PIN 10 void setup() { pinMode(PUSH_PIN, INPUT_PULLUP ); pinMode(LED_PIN, OUTPUT) Serial.begin(9600); } void loop() { int value = digitalRead( PUSH_PIN ); Serial.println( value ); if(value == 0) // 버튼이 눌리고 있으면 digitalwrite(LED_PIN, HIGH) else dig..

Arduino 2024.02.02

[Arduino] 아두이노 푸시 버튼(push button) 사용하기, INPUT, INPUT_PULLUP

푸시 버튼은 여러 이름으로 불린다. ex) 버튼, 스위치 푸시 버튼을 제어하는 방법에는 두가지가 있다. 1. INPUT : 푸시 버튼을 한번 누르면 0 2. INPUT_PULLUP : 푸시 버튼을 누르고 있으면 0, 떼면 1 INTPUT과 INPUT_PULLUP 의 회로도는 조금 다르다. INPUT 회로도 INPUT 예제 푸시 버튼의 상태를 시리얼 모니터에 출력한다. 프로그램을 실행 시키면 시리얼 모니터에 0, 1, 0, 0, 1 이런 식으로 값이 나온다. 이것은 플로팅 값이라고 하는데 0 과 1 중 정해지지 않은 값이 랜덤으로 나오는 것이다. 이 상태에서 버튼을 한번 누르면 0으로 고정 된 값이 나온다. #define PUSH_PIN 9 void setup() { pinMode( PUSH_PIN, IN..

Arduino 2024.02.02

[Arduino] 아두이노 부저(Buzzer) 능동부저, 수동부저

부저의 종류 1. 능동 부저 2. 수동 부저 차이점 능동 부저 : 한 가지 음만 낼 수 있다. 수동 부저 : 여러 음을 낼 수 있다. (계이름으로 멜로디를 만들 수 있다.) 두 개의 부저를 구별하는 방법은 부저를 뒤집어 보면 보면 다르게 생겼다. 둘 중 뭔지 모르겠으면 바꿔서 껴보면 된다. 부저가 켜졌을 때 여러개의 음을 낼 수 있으면 수동 부저다. 회로도 검은색 선이 +, 빨간색 선이 - 다. 능동 부저, 수동 부저 둘 다 똑같이 연결 하면 된다. 능동 부저로 한 음만 내기 능동 부저가 1초에 한번 씩 소리를 내는 예제다. 능동 부저는 애초에 한 음만 낸다. #define BUZ_PIN 13 void setup( ) { pinMode(BUZ_PIN, OUTPUT); } void loop( ) { dig..

Arduino 2024.02.02

[Arduino] 아두이노 초음파 센서(HC-SR04) 사용하기

초음파 센서의 값을 받아서 시리얼 모니터에 출력하는 예제다. 초음파 센서 거리 구하는 순서 1. Trigger에서 초음파를 쏜다. 2. 물체를 만나면 초음파가 반사된다. 3. Echo 에서 반사된 초음파를 읽어서 거리를 계산한다. 회로도 Trigger 가 13번 핀, Echo가 12번 핀이다. 만약 작동이 안되면 Trigger 핀과 Echo핀을 서로 바꿔서 해보면 된다. 코드 구현 TRIGGER_PIN : 초음파를 쏜다. ECHO_PIN : 물체를 만나 반사 되는 초음파를 받는다. #define TRIGGER_PIN 13 #define ECHO_PIN 12 void setup() { Serial.begin (9600); pinMode (TRIGGER_PIN, OUTPUT); pinMode (ECHO_PI..

Arduino 2024.02.02

[Arduino] 아두이노 시리얼 모니터 값 읽기, 부저 울리기

시리얼 모니터에 NICE를 적으면 부저가 1초간 울리는 예제다. 회로도 부저에서 검은색 선이 +, 빨간색 선이 - 다. 코드 구현 readStringUntil( ) 함수 : 시리얼 모니터에서 작성한 문자를 가져오는데 공백이 나오기 전 까지의 문자만 가져온다. 예를 들어 시리얼 모니터에서 NICE를 작성하고 엔터를 누르면 NICE\n 이 될거고 공백을 제외한 NICE만 가져온다. #define BUZ_PIN 13 void setup( ) { pinMode(BUZ_PIN, OUTPUT); Serial.begin(9600); //시리얼 모니터 사용 } void loop() { if(Serial.available() > 0)//시리얼 모니터 값이 0 보다 크면(값이 들어오면) { String Read = Ser..

Arduino 2024.02.02

[Arduino] 아두이노 LED 아날로그핀에서 제어하기

LED는 아날로그 핀에서도 digitalwrite를 사용해서 제어가 가능하다. 회로도 저항은 220옴을 사용 하면된다. A0 ~ A5번까지가 아날로그 핀이며 LED를 사용할 수 있다. 코드 구현 LED가 1초마다 깜빡거리는 코드다. #define LEDA0 A0 void setup() { pinMode( LEDA0, OUTPUT ); } void loop() { digitalWrite(LEDA0, HIGH); delay(1000); digitalWrite(LEDA0, LOW); delay(1000); }

Arduino 2024.02.02