2차원 배열 동적할당하기 2편
·
C, C++
안녕하세요. 2차원 배열 동적할당하기 두 번째글입니다. 1편에서 처럼 2차원 배열을 표현하게 되면 column끼리는 바이트가 순차적입니다. 하지만 row끼리는 다른 메모리 공간에서 할당받게 됩니다. 메모리 공간이 순차적이지 않기 때문에 배열에 접근할 때마다 불필요한 동작이 생기게 됩니다. 메모리 공간을 활용하기 위해 다른 방법을 사용하도록 하겠습니다. 그림과 같이 일차원 배열을 마치 이차원 배열처럼 표현할 수 있습니다. 장점 : 메모리가 1편처럼 끊어지지 않습니다. 단점 : 1. 배열을 사용할 때 인덱스가 복잡하다는 것입니다. int* mat; mat = (int*)malloc(sizeof(int) * column * row); // 배열의 크기만큼 메모리 할당 for (int i = 0; i < col..
아두이노, 안드로이드를 블루투스로 연결해서 센서값 읽어오기!(2)
·
📟 Embeded SW/Arduino
안녕하세요! 아두이노, 안드로이드 블루투스 실습 두번 째 시간입니다. 오늘은 안드로이드 스튜디오로 센서 값을 받아오는 어플을 만들어 보도록 하겠습니다. 아마 많은 분들께서 Code-jun님의 블루투스 예제를 보셨을거라고 생각합니다. 실제로도 라이브러리가 상당히 잘 만들어져 있어 사용하는데 어려움이 없다고 생각합니다. 저는 이번에 Code-jun님이 올리신 라이브러리 예제를 통해 블루투스 무선통신을 하도록 하겠습니다. https://blog.codejun.space/13 아두이노, 안드로이드 블루투스 통신하기 아두이노로 미세먼지 측정기를 만들던 도중 안드로이드와 연동하여 데이터를 주고 받고 싶어 제작하던 중 유용한 정보가 될 것 같아 포스팅 합니다. 이번 개발환경은 DESKTOP과 TEST DEVICE를 ..
2차원 배열 동적 할당하기 1편
·
C, C++
c언어에서 2차원배열을 만드는 방법은 이와 같습니다. arr[3][3] = {0, }; 그러면 3X3 2차원 배열이 생성됩니다. 하지만 가로의 크기와 세로의 크기를 컴파일 이전 시간에 미리 정해줘야 합니다. 즉, 가로 안에 상수가 들어가야합니다. 만약 실행 도중에 사용자가 원하는 크기만큼의 배열을 만들고 싶으면 어떻게 해야할까요? 아마 가장 보편적으로 알려져 있는 방법입니다. scanf("%d", column); scanf("%d", row); int **arr; arr = (int**) malloc ( sizeof(int*) * column); for(int i=0; i
아두이노, 안드로이드를 블루투스로 연결해서 센서값 읽어오기!(1)
·
📟 Embeded SW/Arduino
안녕하세요. 아두이노에 관해 3번 째 글입니다. 이번에는 블루투스와 아두이노를 연결해서 센서값을 읽어 활용하는 예제입니다. 저는 HT21UD 온습도 센서를 사용해 온도('C), 습도(%)를 아두아노에서 읽어와 블루투스를 통해 안드로이드에 보내볼 생각입니다. 자 우선, HT21UD에 대해 설명해보자면, 위에 말처럼 온도와 습도를 읽어오는 센서입니다. 1. HT21UD 저는 HT21UD의 라이브러리의 예제를 약간 제 식대로 바꾸도록 하겠습니다. 라이브러리는 아래에 남겨 두도록 하겠습니다. https://github.com/sparkfun/SparkFun_HTU21D_Breakout_Arduino_Library/ sparkfun/SparkFun_HTU21D_Breakout_Arduino_Library HTU2..
[C]행렬식 N X N : 삼각행렬 활용
·
C, C++
#include #include #include double factor; int n, i, j, k; int main() { printf(" \n 행렬의 사이즈 n = "); scanf_s(" %d", &n); float** a; a = (float**)malloc(sizeof(float*) * n); a[0] = (float*)malloc(sizeof(float) * n); for (i = 1; i < n; i++) { a[i] = a[i - 1] + n; } printf(" 계수행렬 A(i,j)을 입력하시오 \n"); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf(" A(%d, %d) : ", i, j); scanf_s(" %f", &a[i..
millis()함수를 통해 LED 동시에 켜보자!
·
📟 Embeded SW/Arduino
안녕하세요! 두 번째 아두이노 시간입니다. 1초에 한 번씩 LED 점멸, 2초에 한 번씩 LED 점멸 동시에 작동하는 예제입니다. 과연 아래 예제와 같이 delay()함수를 사용한다면 어떻게 동작할까요? 많은 예제들을 보면 delay()함수를 사용합니다. 간단하고 편하기 때문에 많이 쓰이지만, 제대로 된 동작을 알지 못하면 상당히 위험한 함수입니다. 위 스케치를 들어서 설명하겠습니다. 1. LED_state1 = !LED_state1 : LED_state1을 False 상태로 초기화되어 있기 때문에 True값이 대입됩니다. 2. digitalWrite(pin_LED1, LED_state1) : pin_LED1의 LED를 LED_state1의 상태에 동작합니다. 3. delay(1000) : 1초동안 아두..
아두이노 delay() VS millis() 정확히 알고 쓰자!
·
📟 Embeded SW/Arduino
안녕하세요. 블로그 첫 글이네요. 이 블로그는 공부 노트와 같이 제가 공부하면서 팁과 필요한 부분을 점점 적어내려갈 예정입니다. 바로 시작하겠습니다! 아두이노는 교육용 목적으로 만들어진 C++ 기반의 언어라고 볼 수 있습니다. 초등학생부터 나이불문하고 쉽게 접할 수 있습니다. 저도 아두이노를 처음 사용할 때 예제를 따라하고 LED를 점멸하고 스위치를 눌러보고 아주 신기했던 기억이 납니다. 하지만 예제를 따라하는 것만으로는 제가 원하는 것을 만들 수 없었습니다. 저는 학부 연구생으로 평소와 같이 아두이노를 돌리고 있었습니다. 여러 센서를 붙여 delay()함수를 사용하여 한번에 여러 작동을 하려고 했으나 계속해서 실패했습니다. 제 뒤로 하드웨어 박사과정 중이신 선배님께서 delay()함수와 millis()..
18진수
'분류 전체보기' 카테고리의 글 목록 (27 Page)