아두이노에서도 당연하게  다양한 변수를 사용하여 값을 표현이 가능하다.

 

다양한 변수 와 값이 잘 이해가 안된다면 아래를 확인하기 바람.

 

아마 처음 아두이노를 접하거나 책을 처음 봤다면 int가 무엇을 의미하는지 모르고 썻을 것 같다.

 

int ledpin 은 뭐지? 이런 식으로, 

 

아두이노 어플리케이션에서 int 라는 것은 integer의 약어 이다.  integer는 정수를 의미하고

 

16비트값을 나타낸다. 16비트라는것은 2진수로 숫자를 표시할때 나타낼수 있는 숫자의

 

크기를 의미한다.

 

사용하고자 하는 어플리케이션 종류에 따라서 int 말고 다른 유형을 사용하니

 

한번 설명 하고 넘어가고자 한다.

 

숫자 유형 바이트 범위
void 0 null
boll / boolean 1 True / False
char 1 -128 ~ 127
unsigned char 1 0 ~ 255
byte 1 0 ~ 255
int 2 (16bit) -32768 ~32767
unsigned int 2 (16bit) 0~65535
word 2 0 ~ 65535
long 4 (32bit) -2147483648 ~ 2147483647
unsigned long 4(32bit) 0 ~ 4294967295
flaot 4(32bit) -3.4028235E+38 ~ 3.4028235E+38 
double 4(32bit) 3.4028235E+38 ~ 3.4028235E+38

 

C언어를 조금 다루어 봤던 사람들은 flaot과 double 유형이 같다는것에 의아해 할것이지만

 

아두이노에서는 같은 유형으로 취급된다.

 

 

'프로젝트 > 아두이노' 카테고리의 다른 글

6.아두이노의 배열  (0) 2020.04.05
5.아두이노 숫자 유형에 관하여.  (0) 2020.04.01
3.자주 사용하는 아두이노 함수  (0) 2020.03.24
2. 아두이노 프로그램의 구조  (0) 2019.01.03
1. Blink 예제  (0) 2018.10.28

 

 

 

지금 까지의 경험으로

 

아두이노를 사용하는 사람들은 

 

처음 임베디드 보드를 접한 사람이 대부분일 것이다. 임베디드 보드라고 보는게 정확한지는 

 

모르겠지만. 내가 지켜본 사람들의 대다수는 C를 제대로 모른 상태에서 아두이노를 

접한상태에서 뭔가를 만들려고 하기 때문에 쉽다라는 생각으로 접근하는 것 같다.

 

최대한 쉽게 설명을 해야 겠다는 생각으로,

 

Serial.println(Value);

아두이노 IDE의 시리얼 모니터에 값(Value)를 나타낸다. 

 

pinMode(pin, mode);

디지털 값을 읽거나 ( 입력) 쓰도록( 출력) 디지털 핀을 구성한다.

 

digitalRead(pin);

입력으로 설정된 핀의 디지털 값(High 또는 Low)를 읽는다. 

 

digitalWrite(pin, value);

출력으로 설정된 핀에 디지털 값(High 또는 Low) 를 쓴다.

 

 

'프로젝트 > 아두이노' 카테고리의 다른 글

5.아두이노 숫자 유형에 관하여.  (0) 2020.04.01
4.아두이노 기본 변수 사용하기  (0) 2020.03.29
2. 아두이노 프로그램의 구조  (0) 2019.01.03
1. Blink 예제  (0) 2018.10.28
아두이노 시작하기  (0) 2018.10.26



아두이노 프로그램을 스케치 라고 부름니다.


스케치라는 말은 아두이노가 초기에  아티스트와 디자이너가 사용했지 때문에


아이디어를 빠르고 쉽게 실현할수 있는 방법이라는 의미로 스케치라는 용어가 사용되었다고 합니다.



일반적인  아두이노 프로그램의 구조는


setup함수와 loop함수로 구성됨니다.


setup 함수는 보드의 설정을 구성하는 것처럼  한번만 실행하는 코드를  함수에  넣습니다.


loop 함수는 setup함수가 실행된 후 계속적으로 실행되야 하는 코드를 함수에 넣습니다.


처음 blink에서 봤던 예제로 한번더 설명을 하겠습니다.




------------------------------------------------


const int ledPin = 13;  // LED를 디지털 핀 13번에 연결한다.




void setup() {                  // 한번만 실행될 setup 함수 


  // initialize digital pin LED_BUILTIN as an output.


  pinMode(led_pin, OUTPUT); //  13번 핀을 출력으로 설정한다.  


}

 // setup 함수는 한번만 실행



// the loop function runs over and over again forever



void loop() {        // loop 함수는 반복해서 계속 실행


  digitalWrite(led_pin, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(1000);                       // wait for a second

  digitalWrite(led_pin, LOW);    // turn the LED off by making the voltage LOW

  delay(1000);                       // wait for a second


}

------------------------------------------------



아두이노 IDE에서 코드를  아두이노에 업로드를 하면 보드를 켤때마다 위의 코드가


순차적으로 실행이 된다.



먼저 setup함수가 실행되고 loop 함수가 실행된다.



loop함수의 digitalWrite(led_pin, HIGH) 가 실행되고  delay - > digitalWrite(led_pin, LOW) -> delay 가 실행되면 끝나지 않고 다시 


digital Write(led_pin,HIGH)가 실행된다.











'프로젝트 > 아두이노' 카테고리의 다른 글

5.아두이노 숫자 유형에 관하여.  (0) 2020.04.01
4.아두이노 기본 변수 사용하기  (0) 2020.03.29
3.자주 사용하는 아두이노 함수  (0) 2020.03.24
1. Blink 예제  (0) 2018.10.28
아두이노 시작하기  (0) 2018.10.26


기본적인 설명은 Arduino Uno를 기준으로 설명하겠습니다.


아두이노에는 기본적으로 LED가 달려있습니다.




https://store.arduino.cc/usa/arduino-uno-rev3


물론 USB를 연결하면 바로 켜지는 전원 LED도 있고 데이터 전송용 LED도 있지만  지금 말할것은 


우리가 제어할수 있는 LED입니다.


위의 사진과 같이 UNO를 기준으로 저 위치에 우리가 제어 할수 있는 LED가 있습니다. 


13번에 연결되어 있고 친절하게 저항도 붙어져 있습니다.



Blink 예제는 아래를 따라 가면 불러올수 있습니다.





기본적으로 아두이노를 깔면 예제코드를 같이 다운로드 하게 되어 있습니다.



그러면 다음 예제 코드를 해석해보겠습니다.


// <- 코드가 아닌 주석으로 제가 쓰는 것입니다.


----------------------------------------------------

void setup() {   // 앞으로 실행될 코드의 핀설정 

  

  pinMode(LED_BUILTIN, OUTPUT); //핀모드 설정 , 기본적으로 LED_BUILTIN 이라는 변수는 pin 13을 의미 합니다. 

   //pin 13을 앞으로 LED_BUILTIN으로 부름니다.

 

}



void loop() {  //loop는 의미 그대로  계속 실행한다는 의미를 가지고 있습니다. 계속 실행됨니다.

  digitalWrite(LED_BUILTIN, HIGH);   // LED_BUILTIN을 ON으로 설정

  delay(1000);                       // 1초동안 대기

  digitalWrite(LED_BUILTIN, LOW);    // LED_BUILTIN을 OFF로 설정

  delay(1000);                       // 1초동안 대기

}

----------------------------------------------------



13번 핀에 연결된 LED를 계속 깜빡깜빡하는 코드입니다.


처음 void setup에서 핀을 설정하고


설정된 핀으로 loop를 실행하는 구조 입니다.


그러면 LED는 1초동안 켜졌다가, 1초 동안 꺼졌다가 다시 1켜지는걸 확인할수 있습니다.


그리고 delay(1000)의 1000의 의미는 1초 입니다.  1s = 1000ms 



혹시 LED가 안켜진다면 불량입니다. 교체 하세요.




LED큐브 만들기는


https://github.com/VectStudio/LED_CUBE 를 기반으로 작성됨니다. 


https://www.youtube.com/watch?v=T5Aq7cRc-mU 도 참고 합니다.




첫번째 과정은 코딩보다는 준비물입니다. 



1.  LED (큐브용 LED 512개 예비용으로 더 있어도 상관없습1니다.) 

2.  아두이노 ( UNO 말고 다른 버전도 상관없습니다.  짭도 상관없어요.)

3.  브래드보드 (처음에만 부품테스트 할때 필요)

4.  5V 전원공급장치 ( 5V 10A )

5.  드라이버

6.  커터

7.  인두기 , 납 

8.  리드선 

9.  리본케이블

10.  LED큐브를 고정시킬 판자

11.  만능기판 

12.  IC (SN74HC595)  9개

13.  PN2222A TR 16개

14.  전원스위치.( ON/OFF용)

15.  220옴 저항 (70개 정도 - 테스트용도. 예비용까지)

16.  녹색 LED , 빨간색 LED


여기 까지가 준비물인것 같습니다.


한번 작성하면서 필요 한게 있으면 더 쓰도록 하겠습니다.






'프로젝트 > LED큐브' 카테고리의 다른 글

8x8x8 큐브 with 아두이노  (0) 2018.10.26


예전에 한번 LED큐브를 만든적이 있는데 그때는 ATmega128을 이용해서 만들었습니다.


개고생 하면서 만들었던 기억이 있는데


유투브에 멋진 작품이 있어서 만들기 까지 어떤게 필요한지 어떤방식으로 만들었는지 알아 보겠습니다.


https://www.youtube.com/watch?v=T5Aq7cRc-mU






자료는 Github에 올라와 있기 때문에 쉽게 구할수 있었습니다.


https://github.com/VectStudio/LED_CUBE


아무튼 첫번째는 8x8x8 LED큐브 입니다.



'프로젝트 > LED큐브' 카테고리의 다른 글

LED 큐브 만들기 첫번째.  (0) 2018.10.28





요즘 회사다니면서 언젠가는 아두이노로 재미있는걸 만들어 봐야지 라고 생각했는데 생각만큼 실행력이 없었네요.


요즘 유툽에서 미디어아트 관련 영상을 볼때마다 나도 저런거 만들어 보고 싶다라는 생각이 들어서 블로그에 한번 공부한 것들을 올려보려 합니다.



많은 사람들이 알고 있는 내용이지만 


아두이노는 소프트웨어나 전자공학등 공학을 전문적으로 공부하지 않은 사람들도 쉽게 사용할수 있습니다.


물론 공부를 했다면 더 좋습니다.


기본적인 예제 따라하기, 인터넷에 올라와 있는 내용을 따라하는것은 문제가 되지 않지만


내가 무엇인가 구상을 하고 설계를 해볼려고 한다면 공학적인 지식이 필요합니다.





아두이노공부를 위해서 소프트웨어에 관한 지식과 전자공학에 관한 것도 풀이를 하려 합니다.


물론 저는 소프트웨어를 전공하지 않았기에 잘 모르는 것도 있지만


설명을 하면서 저도 배우는것도 있기에 한번해보려 합니다.



설치나 아두이노가 뭔지는 위키에 더 자세하게 나와 있기 때문에



건너 뛰고 예제풀이부터 시작하려 합니다.



시간날때마다 계속올리겠습니다.






중국에서 직구를 하면서 의문을 가졌던 것이 있다.


왜 무료 배송일까.


이런생각을 하면서 알리익스프레스에서 항상 무료배송주문을 하였다. 이 블로그의 몇몇 포스트도 직구제품을 리뷰한것이 있다

.


배송기간은 매번 2주에서 4주 길게는 2달까지 걸려봤지만 . 잊고 지내다보면 도착한다는 알리배송인것 처럼.


그냥 그런가 보다라고 생각하고 주문을 하였다.


그런데 아까 읽은 기사를 보고 의문이 완전 해소가 되었다. 



 http://m.fnnews.com/news/201803211304005244


'해외 직구 무료 배송의 비결은 ?' 


기사의 제목처럼 왜 무료 인지 알려주는 기사 내용이었다.



무료 배송의 비결은 3가지고 나눠볼수 있다.




첫번째 . 상대적으로 낮은 제품 가격.


사람들이 생각하기로 중국인터넷 쇼핑몰에 올라와 있는 제품들은 상대적으로 가격이 싸다.  하지만 이것도 들여다 보면 


같은 제품이라도 어느 셀러는 가격이 비싸고, 어느 셀러는 가격이 싸다. 그리고 배송비가 붙는곳이 있고 없는 곳이 있다.


우리가 마치 네이버에서 쇼핑항목을 볼때 가격은 낮으나 배송비가 2만원 씩 붙는 것처럼  배송비를 장난 치는 곳이 있다.



여기서 무료배송인 제품을 생각해보자.  중국 셀러도 장사를 하는 사람들이다. 


무료배송이라면 제품값에 당연히 배송비가 포함이 되어 있다. 땅파서 장사하는 사람없다.


알리익스프레스에서 제품을 몇번 받아 봤지만 우편봉투에 제품을 넣어 보내는 셀러도 있다.


우표를 붙여서, 당연히 우편값이 들어간다.   


3달러에 제품을 구매 하면 1달러는 배송비라고 생각하면 될것 같다.


그래도 한국보다 싸기 때문에 사람들은 구매를 한다고 볼수 있다.




두버째. 중국 정부의 우정사업 지원.


중국정보의 정책적인 우정사업지원도 한 몪을 하고 있다고 한다.


국내외 상거래 활성화와 수출기업을 독려 하기 위해 우편요금 조정, 세재혜택 등 여러 가지 지원책을 펼치고 있다고 한다.


기사내용에서 중국의 시외 우편요금은 한국보다 400원 가량 비싸다고 한다.


이런 내용을 보면 정부의 지원이 크다고 볼수 있을것 같다. 






세번째. 중국 물류 시장의 규모경제, 무한 경쟁.


중국의 배송물량과 물류업체들의 경쟁이 비용을 절감하고 있다고 한다.


2016년 중국에 등록된 물류 전문업체만 1500개가 있다고 한다. 지금은 더 늘어 났을지도 모른다.


많은 기업들이 달려들면 그만큼 가격은 낮아진다. 


그리고 기사의 내용에서는 서비스보다는 물량에 따른 단가 인하중심 영업을 한다고 한다.


우리처럼 배송장 하나하나 추적을 하면서 일일이 출발했는지 어디쯤 갔는지 서비스하기 보단 이런건 넘어가고


물량을 많이 받아 가격을 떨어뜨리는 영업전략을 하고 있다고 한다.





위와 같이 3가지의 이유를 합치면 무료배송이 가능한 이유가 나온다.


우리나라 내수시장에서는 하나의 택배를 보내면 2500원이 기본요금이지만  중국에서는 몇 백원으로 해외배송까지 가능할수 있다.


물론 무게가 거의 나가지 않는 물품에 한해서.






그러면 얼마나 싸질수 있는가. 그리고 왜 늦게 오는가에 대한 답도 적혀 있다.



아까 3번째 이유처럼 대량으로 배송을 한다.  컨테이너 하나를 채울때까지 배송하지 않고 기다린다고 한다. ( 배송이 늦어지는 이유 )


40피트 컨테이너 하나에 가로x세로x높이가 각각 20cm 부피의 소포 8300개를 적재할수 있다고 하는데


이 컨테이너의 홍콩 - > 인천 해상 운임은 550 달러라고 한다. 그러면 소포당 가격은 7센트(75원)이하라고 생각할수 있다.




결론을 내어보면 3가지 이유로 인해 배송비가 싸지고. 


비행기가 아닌 배를 이용한 배송으로( 그것도 컨테이너 다채울때까지 기다림) 으로 배송이 늦어진다는걸 알수 있다.




 

















+ Recent posts