본문 바로가기

전체 글

(61)
AVR Studio 4 .elf파일 누락 빌드 과정에서 다음과 같은 에러가 발생했다해결방법은 avr-gcc와 make 파일의 경로를 재지정 해주면 된다. Project > Configuartion Options로 들어가서  Custom Options에서 Toolchain을 체크해제하고 ...을 눌러 각 경로를 지정한다.복사 붙여넣기는 되지 않으니 경로를 찾아야 한다. avr-gcc : C:\WinAVR-20100110\bin\avr-gcc.exemake : C:\WinAVR-20100110\utils\bin\make.exe  확인을 누르고 정상적으로 빌드가 되는지 확인한다.
7 세그먼트 const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9};// 숫자 0부터 9까지를 7세그먼트 디스플레이에 표시하기 위한 비트 패턴unsigned char LED_7[] = { 0x3F, // 0 0x06, // 1 0x5B, // 2 0x4F, // 3 0x66, // 4 0x6D, // 5 0x7D, // 6 0x07, // 7 0x7F, // 8 0x6F // 9};// 숫자를 입력받아 해당하는 7세그먼트 비트 패턴을 반환하는 함수unsigned char LED_7seg(char c) { if ((c >= '0') && (c > i) & 0x01); // 패턴의 비트를 세그먼트 핀에 적용 }}void setup() { // 각 핀을 출력으로..
조이스틱 Module //x,y축은 아날로그 신호 입력int joystick_x = A0; int joystick_y = A1; //z축은 디지털 신호로 입력을 받는다int joystick_z = 2; void setup() { //아날로그 신호는 자동으로 입력핀으로 지정되어 디지털핀만 핀모드 지정 pinMode(joystick_z, INPUT); Serial.begin(9600); } void loop() { //조이스틱 입력값 받기 int x = analogRead(joystick_x); int y = analogRead(joystick_y); int z = digitalRead(joystick_z); //시리얼 모니터에 출력 Serial.print(x); Serial.print(","); Seri..
적외선 인체물체 감지센서 int ledPin = 12; // LED 핀번호 int inputPin = 8; // 센서 핀번호 int pirState = LOW; // PIR 모션 int val = 0; void setup() { pinMode(ledPin, OUTPUT); // LED 를 출력 모드 pinMode(inputPin, INPUT); // 센서를 입력 모드 Serial.begin(9600); } void loop() { digitalWrite(ledPin,LOW); delay(1000); int sensor = digitalRead(inputPin); Serial.println(sensor); // sensor HIGH(1)일 경우(센서에 움직임이 ..
초음파 센서 //초음파 연결핀 설정int TrigPin = 12; int EchoPin = 11; //거리를 담을 변수int cm = 0; void setup() { Serial.begin(9600); //초음파가 나오는곳 pinMode(TrigPin, OUTPUT); //초음파가 들어오는곳 pinMode(EchoPin, INPUT); } void loop() { digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); // 초음파센서 함수 pulseln에 상수 58을 나눈다. cm = pulseIn(EchoPin, HIGH) /..
릴레이 제어 int Relay = 8; void setup() { pinMode(Relay, OUTPUT); } void loop() { digitalWrite(Relay, HIGH); // 릴레이의 D2 LED 켜기 delay(500); digitalWrite(Relay, LOW); // 릴레이의 D2 LED 끄기 delay(500); } 현재 코드는 릴레이 상의 LED를 제어하는 코드이다. 릴레이는 전기회로 개폐기 스위치 역할을 한다. 작은 전기 신호를 사용하여 큰 전류나 전압을 제어한다.
서보모터 제어 #include //서보모터 라이브러리 Servo myservo; int potpin = 0; //포텐시오미터의 analog 값 A0 int val; void setup() { myservo.attach(9); // 서보모터의 PWM 9 번 신호 } void loop() { val = analogRead(potpin); // 서보모터 회전 범위 map(변환하려는 입력 값, 입력 값의 최소값, 입력 값의 최대값, 출력 값의 최소값, 출력 값의 최대값) val = map(val, 0, 1023, 0, 180); myservo.write(val); // value 값에 따라 서보모터 위치 설정 delay(15); } 서보모터의 출력 최대값은 180이다.
모터 드라이버 L298N 모듈을 이용한 DC 모터 제어 //모터 A 핀 설정int IN1 = 7; int IN2 = 6;//모터 B 핀 설정int IN3 = 5; int IN4 = 4; void setup() { //모터 A 출력 pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); //모터 B 출력 pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); //동작 확인용 시리얼 모니터 통신 시작 Serial.begin(9600); }void loop() { // 모터A 정회전 테스트 Serial.println("모터A 정회전"); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); delay(3000); // 3초간 회전 digitalWri..