달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'아두이노/기본'에 해당되는 글 3

  1. 2016.02.08 헤더파일 만들기
  2. 2016.02.08 부트로더
  3. 2016.02.08 최소한의 필수 회로
2016. 2. 8. 21:57

헤더파일 만들기 아두이노/기본2016. 2. 8. 21:57

프로그램을 할때 #include <뭐시기.h> 로 라이브러리를 쓰죠?

이때 직접만든 라이브러리를 쓰려면 어떻게 해야 할까요?

 

라이브러리에다가 저장 시키고 싶은 함수:

예를 들어, 아두이노에서 Serial.print함수를 써서 여러변수의 출력값을 보려면 이렇게 코드를 짜야합니다.

Serial.print(val1);

Serial.print(","); 

Serial,print(val2);

Serial.print(",");

Serial.print(val3);

Serial.print(","); 

Serial,print(val3);

Serial.println(",");

음.. 굉장히 보기 싫고 귀찮네요 전.. 

그래서 visual studio에서 처럼 출력하고 싶은 마음이 간절해 짐니다.

printf("%d, %d, %d, %d ", val1, val2, val3, val4);

 

이때 요 함수를 쓰면  ​위에서 처럼 쓸수 있습니다!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#define ARDBUFFER 16
 
int printt(char *str, ...)
{
  int i, count=0, j=0, flag=0;
  char temp[ARDBUFFER+1];
  for(i=0; str[i]!='\0';i++)  if(str[i]=='%')  count++;
 
  va_list argv;
  va_start(argv, count);
  for(i=0,j=0; str[i]!='\0';i++)
  {
    if(str[i]=='%')
    {
      temp[j] = '\0';
      Serial.print(temp);
      j=0;
      temp[0] = '\0';
 
      switch(str[++i])
      {
        case 'd': Serial.print(va_arg(argv, int));
                  break;
        case 'l': Serial.print(va_arg(argv, long));
                  break;
        case 'f': Serial.print(va_arg(argv, double));
                  break;
        case 'c': Serial.print((char)va_arg(argv, int));
                  break;
        case 's': Serial.print(va_arg(argv, char *));
                  break;
        default:  ;
      };
    }
    else 
    {
    
        Serial.print(str[i]);
        
    }
  };
  Serial.println();
  return count + 1;
}

이 함수를 아두이노 소스에서 붙여 넣기 하면 되죠. 

그러나!! 이 함수는 자주!! 쓸것이기 때문에 라이브러리에다가 이 함수를 저장해서 계속 쓰고 싶습니다.

 

 

라이브러리 만들기:

자! 그럴때는 일단 아두이노 라이브러리에 폴더하나를 만듭니다. 

저는 myfuc이라고 했습니다.

 

폴더안에 (폴더와 같은 이름.h) 인 메모장을 만듭니다.

저는 myfuc.h 입니다.

이때 생각 하셔야 할께 #incldue의 의미가 단순이 파일을 복사 붙이기 한다는 사실!

 

이 폴더안에 위에 printt함수를 복사해주고 맨~ 위에 #include "Arduino.h"를 써줍니다. 

그러면 완료!!

 

 

 

 

 

출처:

-라이브러리

https://www.inkling.com/read/arduino-cookbook-michael-margolis-2nd/chapter-16/recipe-16-4 

http://arduino.cc/en/Hacking/LibraryTutorial 

http://playground.arduino.cc/code/library

-printt함수

http://jangsalt.tistory.com/entry/%EA%B0%80%EB%B3%80-%EC%9D%B8%EC%88%98-vastart-vaend-vaarg-valist

http://forum.falinux.com/zbxe/index.php?document_srl=406096&mid=gcc 

'아두이노 > 기본' 카테고리의 다른 글

부트로더  (0) 2016.02.08
최소한의 필수 회로  (0) 2016.02.08
:
Posted by youjin.A
2016. 2. 8. 21:56

부트로더 아두이노/기본2016. 2. 8. 21:56

1. 하드웨어 

원리

위에건 뉴시티제품의 usbISP입니다.  

사진처럼 1번 스위치를 왼쪽으로 돌려주세요~ 

USBISP의 6개의 핀을 아두이노의 빨간색 동그라미쳐진 핀에 연결합니다.

USBISP의 VCC는 아두이노의 VCC에

USBISP의 GND는 아두이노의 GND에

USBISP의 RST는 아두이노의 RESET에

USBISP의 SCK는 아두이노의 SCK에... 아시겠죠^^

아두이노에 빨간색 동그라미의 핀순서는 왼쪽 그림과 같습니다.

 

STEP1

그냥 선으로 연결해도 되지만 매번 귀찮기 때문에 납땜을~

초록색선은 점프했습니다~

 

STEP2

이제 USBISP와 아두이노를 연결해보겠습니다~

 

STEP3

다음으로 컴퓨터와 연결하겠습니다~

 

 

 

2. 소프트웨어

우선 USBISP의 드라이버를 설치 안했다면 해야되요!!

http://cafe.naver.com/newtc 

여기서 AD- USDISP V3.5 윈도우용 다운

 

AVR STUDIO4를 사용합니다.

http://blog.naver.com/ryumr?Redirect=Log&logNo=110074109653에서

AVR STUDIO4.18 다운~

클릭
AVR클릭

 

1)메인 설정

장치를 아두이노 328로 설정하고 프리퀀시를 115.2로 낮게 설정. 

 

2)퓨즈 설정

 

3)부트로더 프로그래밍

칩이 328이고, 우노로 부트로더하고 싶다면 파일은

아두이노폴더\hardware\arduino\bootloaders\optiboot\optiboot_atmega328.hex 

 

4. 락비트 설정

 

5. 테스트

Blink예제로 테스트 해보세요~



**다른 방법

http://oogundam.tistory.com/73

'아두이노 > 기본' 카테고리의 다른 글

헤더파일 만들기  (0) 2016.02.08
최소한의 필수 회로  (0) 2016.02.08
:
Posted by youjin.A
2016. 2. 8. 21:55

최소한의 필수 회로 아두이노/기본2016. 2. 8. 21:55

ATmega328의 핀 배치:


 

최소한의 필수 회로: 

 
 
 
1. 전원 공급
2. OSC
3. 리셋에 풀업저항
ATmega328 1개,

100nF 커패시터 1개,

10K 저항 1개,

16MHz 클록 크리스털

 

 

 

 

 

 


 

 FT232 연결:

 

리셋에 0.1uF 커패시터를 달아줘야 한다.

 

 

 

 

-드라이버 다운로드:

http://www.eleparts.co.kr/EPX8N7KL

 

 

 

 

 

참고:

http://plughouseblog.blogspot.kr/2010/03/arduino-breadboard-diy.html

'아두이노 > 기본' 카테고리의 다른 글

헤더파일 만들기  (0) 2016.02.08
부트로더  (0) 2016.02.08
:
Posted by youjin.A