본문 바로가기

프로그래밍/아두이노

(13)
아두이노에서 Json 사용하기 ArduinoJson 은 Arduino 에서 Json 을 사용할 수 있는 라이브러리입니다.#ads_1https://github.com/bblanchon/ArduinoJson 해당 페이지에 예제가 있지만 Json 동적생성에 대한 자료가 조금 부족해 보여 테스트를 해보았습니다. [ [ {"aaa":"AAA","aab":"AAB"}, {"aba":"ABA","abb":"ABB"} ], [ {"baa":"BAA","bab":"BAB"}, {"bba":"BBA","bbb":"BBB"} ] ]위와 같은 2차원 배열로 구성된 json을 만들어서 loop에서 출력하는 예제입니다#ads_2#include //Json버퍼를 만든다 StaticJsonBuffer jsonBuffer; //200은 버퍼크기 //다른곳에서도 사..
아두이노 기초강좌 - 10. IR 센서 본 강좌는 지인의 사이트에서 허락받고 퍼온 강좌입니다.다른곳으로 불펌하시면 곤란합니다.그리고 제가 아두이노를 그리 잘 알지는 못합니다.저한테 물어보시는것도 곤란.... ^^ #ads_1IR 센서 (Infrared rays Sensor) 는 적외선 센서입니다.적외선 리모콘을 누르면 센서가 신호를 수신하여 아두이노에 전달합니다. 실제로 테스트 해볼때는 원리에 대해서 자세히 알지 않아도 IRremote 라는 라이브러리를 사용하면 간단하게 해결할 수 있습니다. 하지만 수신이 어떻게 이루어지는 대충이라도 알고 넘어갑시다 적외선 신호포멧은 NEC, SONY, RC5, RC6 등 여러가지가 있으나 대표적으로 NEC(아시아 태평양 연안), RC5(유럽 등) 포멧이 주로 이용됩니다. 삼성과 LG는 NEC포멧을 사용합니다..
아두이노 기초강좌 - 9. 시리얼 통신 본 강좌는 지인의 사이트에서 허락받고 퍼온 강좌입니다.다른곳으로 불펌하시면 곤란합니다.그리고 제가 아두이노를 그리 잘 알지는 못합니다.저한테 물어보시는것도 곤란.... ^^ #ads_1강좌를 계획없이 생각나는대로 중구난방 적다보니 처음에 했어야할 시리얼 통신을 빼먹었더라구요그래서 이제서야 들어가게 되었습니다. 시리얼 통신에 대해 자세히 살펴 봅시다. 시리얼통신이라는 건 말그대로 직렬통신입니다. 장비와 병렬로 통신하면 속도가 빠르지만 아두이노에는 핀 개수가 한정되어 있습니다. 장비별로 핀개수가 다르면 그에 다 맞춰야 하는 불편함이 있고 비용도 증가하겠죠? 또한 병렬통신은 원거리에는 약합니다. 그런 단점으로 인해 컴퓨터 내부와 같이 가까운 거리는 병렬통신을 많이 쓰고 원거리에는 직렬통신 즉, 시리얼 통신을 ..
아두이노 기초강좌 - 8. 디지털 입/출력 본 강좌는 지인의 사이트에서 허락받고 퍼온 강좌입니다.다른곳으로 불펌하시면 곤란합니다.그리고 제가 아두이노를 그리 잘 알지는 못합니다.저한테 물어보시는것도 곤란.... ^^#ads_1오늘은 디지털 입/출력이네요아날로그는 입력 출력장을 나눴는데 디지털은 입/출력으로 한장으로 묶어 버렸습니다.그동안 한 내용들이 중복되기도 하고 별거 없거든요 ㅋ #ads_2위 그림 이제 익숙하시죠? 버튼을 풀업저항으로 연결한겁니다.단지 아날로그 핀이 아니라 디지털 2번 핀으로 연결해논것 밖에 없습니다. 디지털 입/출력을 사용하기 위해서는 아날로그 입/출력과 달리 절차가 필요합니다.절차라 해봐야 간단합니다. 2번핀을 입력핀으로 쓸때​pinMode(2, INPUT); 2번핀을 출력핀으로 쓸때​pinMode(2, OUTPUT); ..
아두이노 기초강좌 - 7. 아날로그 출력 본 강좌는 지인의 사이트에서 허락받고 퍼온 강좌입니다.다른곳으로 불펌하시면 곤란합니다.그리고 제가 아두이노를 그리 잘 알지는 못합니다.저한테 물어보시는것도 곤란.... ^^#ads_1아날로그 출력은 입력에 비해 그렇게 간단하지는 않습니다.말은 아날로그 출력이지만 실제로는 디지털 출력입니다. 아두이노는 디지털로만 출력할 수 있기 때문이죠.그럼 어떻게 아닐로그 출력을 흉내 낼까요? 아래 그림을 보세요 [그림 1] 컴퓨터가 신호를 출력하는 펄스의 모습입니다. HIGH 면 1, LOW 는 0 이죠아두이노 출력이 5V니까 HIGH이면 5V, LOW이면 0V겠죠? 이 펄스를 이용합니다. 다시 아래 그림을 보세요 [그림 2] 1에 해당하는 HIGH 신호 즉, Ton 이 길고 0에 해당하는 Toff 가 짧죠?바로 이걸..
아두이노 기초강좌 - 6. 아날로그 입력 본 강좌는 지인의 사이트에서 허락받고 퍼온 강좌입니다. 다른곳으로 불펌하시면 곤란합니다. 그리고 제가 아두이노를 그리 잘 알지는 못합니다. 저한테 물어보시는것도 곤란.... ^^ #ads_1 아날로그로 입력받는 방법을 알아봅시다 오늘의 주인공은 가변저항입니다 요놈인데요. 손톱만한건데 무지 크게 나와서 웬지 비싸보이네요 ㅋ모양과 크기는 여러가지가 있는데 저한테 있는건 튼실한 요놈이네요~ 왼쪽, 오른쪽 핀이 각각 VCC와 GND이고요 극성은 없기 때문에 아무 방향으로나 연결하시면 됩니다.저항은 원래 극성이 없습니다.(극성 있는것도 존재하는지는 몰것습니다요)중간다리가 신호단자입니다. 위에 손잡이를 왼쪽 오른쪽으로 돌리면 저항값이 바뀌게 되어있습니다. 자 그럼 아두이노에 연결해서 손잡이를 돌릴때마다 달라지는 저..
아두이노 기초강좌 - 5. 아두이노 메모리의 이해 본 강좌는 지인의 사이트에서 허락받고 퍼온 강좌입니다.다른곳으로 불펌하시면 곤란합니다.그리고 제가 아두이노를 그리 잘 알지는 못합니다.저한테 물어보시는것도 곤란.... ^^ #ads_1아두이노 제품군의 스팩을 보면 아래와 같이 나옵니다. MicrocontrollerATmega328 Operating Voltage5V Input Voltage (recommended)7-12V Input Voltage (limits)6-20V Digital I/O Pins14 (of which 6 provide PWM output) Analog Input Pins6 DC Current per I/O Pin40 mA DC Current for 3.3V Pin50 mA Flash Memory32 KB (ATmega328) of..
아두이노 기초강좌 - 4. 버튼 입력받기 본 강좌는 지인의 사이트에서 허락받고 퍼온 강좌입니다.다른곳으로 불펌하시면 곤란합니다.그리고 제가 아두이노를 그리 잘 알지는 못합니다.저한테 물어보시는것도 곤란.... ^^#ads_1버튼을 누르면 아두이노 2번핀으로 신호를 받아들이는 회로를 만들어 봅시다 버튼을 눌렀을때 5V (Volt)버튼을 뗏을때 0V 이렇게 생각할 수 있겠죠? 그럼 5V의 전기를 어디서 끌어와 써야 하는데 SMPS나 어댑터가 없다면 곤란하겠죠?아날로그 핀 위에 보시면 5V 출력핀이 있습니다. 이걸 쓰도록 하죠. 자 그럼 핀들을 어떻게 연결해야 할까요? [그림 1] 회로는 이렇게 연결하시고 아두이노 프로그래밍을 아래와 같이 코딩해보죠 #define BTN_PIN 2 void setup() { Serial.begin(9600); pin..