본문 바로가기

분류 전체보기210

아두이노 버턴과 키패드- #2 TTP229라는 아두이노 키패드 이다. 소스코드가 간단해서 쉽게 할 수 있을것 같다. 특징이라면 가격이 저렴하고 정전식, 손가락이 큰 사람이 누르기는 주위해야 할 정도. 소스 코드를 어떻게 수정하냐에 따라 동시 버턴도 가능하다. 본인은 동시 버턴은 불필요하고 16Key 까지 입력을 위해서 아래 3번 모듈을 쇼트 시켰다. 나름 쇼트하는 방식으로 여러가지 모드를 구현하게 만들수 있는것 같다. 아직까지는 그렇게 까지는 필요 없어서 단순하게 접근했다. 연결방식은 간단하지만 설명을 하자면 4핀 연결이고 전원, GND, SCL, SDO 연결이다. SCL이 있다고 I2C연결은 아니다. /* Define the digital pins used for the clock and data */ #define SCL_PIN .. 2020. 2. 23.
아두이노 버턴과 키패드- #1 버턴을 공부하다 보면 단순한 버턴이지만, 사실 공부 할게 많다. 버턴을 구현한다는게 완전한 하드웨어만으로도 완전한 소프트웨어만으로 구현하기는 어렵다, 조금 공부하다 보면 신경쓸것이 많다. 하드웨어적인 디바운스나 채트링이라는 현상 때문에 골치 꺼리가 발생한다. 사실 이것만 공부하다 보면 지루해 질수도 있다. 그래도 버턴과 키패드는 다른것과 결합해서 필수적으로 사용하는 경우가 많으니 많이 공부해야 한다. 사실 본인도 귀찮아서 소프트웨어적으로만 구성하거나 통신이라는 편법으로 제어 하기도 한다. 앞에서 자주 보았겠지만 귀찮음의 산물이다. 하드웨어적인것은 재미는 있는데 그 물리적인 연결이 귀찮은게 사실이다. 그래도 틈틈히 공부하기 바란다. 일단 키패드의 종류만 알아보자. 본인이 가지고 있는것이 모두는 아니니, 참.. 2020. 2. 23.
아두이노 Serial MP3 모듈 -#3 이전 소스코드에서 공부해야 할 것은 3가지다. 1. 메뉴 출력함수 2. 시리얼 명령창 입력 함수 3. 메인 루프 단순한 시리얼 출력 문장이다. 이것 모르는 사람은 없을것으로 본다. void display_menu() { Serial.print("==========MP3 PLAY 프로그램==========\n\n"); Serial.print(" SERIAL MP3 module \n"); Serial.print("********************\n"); Serial.print("* 1.play *\n"); Serial.print("* 2.NEXT_SONG *\n"); Serial.print("* 3.PREV_SONG *\n"); Serial.print("********************\n"); S.. 2020. 2. 6.
아두이노 Serial MP3 모듈 -#2 이전에 했던것이 그냥 001로 시작하는 mp3파일을 플레이 시키는것 이외에는 아무것도 없다. 여기서 부터 이제 공부를 해야 한다. 버턴을 달아서 mp3를 play하는 예제는 많으니 아두이노 시리얼 모니터 창을 이용해서 할 것이다. 일단 명령어는 처음곡 플레이, 이전곡, 다음곡 3개만 넣도록 하자. 나머지 볼률 업다운, 램덤 재생정도는 스스로 할 수 있을것 같다. //code rearranged by Javier Muñoz 10/11/2016 ask me at javimusama@hotmail.com #include #define ARDUINO_RX 2//should connect to TX of the Serial MP3 Player module #define ARDUINO_TX 3//connect to.. 2020. 2. 6.
아두이노 Serial MP3 모듈 -#1 아두이노 하다가 이론 공부만 한것 같아서, 간단하게 집에 있는 모듈을 찾다 보니, MP3 모듈이 두개 있다. 한개는 시리얼 방식이고 한개는 I2C 방식 같다. 물론 나도 아직 연결을 해보지는 않았다. 조금씩 공부하기로 하자. 아무래도 시리얼 방식이 연결할것이 많이 없어서 만만해 보인다. 딱히 어려운것은 없으니 따라서 해보자. 그리고 어떻게 아두이노 모듈을 공부하는지 방법도 중간 중간 기술 할까 한다. 1. 일단은 구글에서 Serial MP3 Player로 검색하자. 아래 주소로 쓸만한 내용과 소스코드가 있다. https://www.hackster.io/javier-munoz-saez/arduino-mp3-player-catalex-2effef 나도 처음이나 그냥 읽어 보자. 그리고 소스코드를 카피해서 아.. 2020. 2. 6.
아두이노에서 문장 만들기 #2 자 그러면 약간의 응용으로 가죠. 검색하면 구글맵을 이용해서 네비게이션 처럼 구글맵을 출력하는 HTML 코드가 있습니다. 그것을 문장으로 만들어 보죠. void Web_Page1(ESP8266& wifi) { // start sending the HTML String webpage; String result; char buf1[256]; webpage = "\r\n"; webpage += "\r\n"; webpage += "\r\n"; webpage += " \r\n"; webpage += " \r\n"; webpage += "\r\n"; webpage += "\r\n"; BT.print(result = getStatus(wifi.send(connectionId, webpage ))); delay(500.. 2020. 2. 4.
아두이노에서 문장 만들기 #1 코드를 작성 할때 다른 사람들이 보기 편하게 작성하면 보는 사람도 편합니다. 그런데 보기 짜증나게 작성하면 정말 보기 싫어 합니다. 그 중에 대표적인게 문장을 만드는경우 입니다. 아두이노에서 문장을 만드는 일이 많습니다. 문장을 출력 하는일은 잘 없지만, 1. HTML언어로 문장을 만들어야 웹브라우저에서 볼수 있습니다. 2. HTML문장으로 데이터를 전송하여 MYSQL DB에 데이터를 삽입 할때도 문장이 필요합니다. 2.2 여기서 HTTP 전송양식이 XX같아서 정확히 작성하지 않으면 정말 지랄 맞는것 처럼 되지 않습니다. 2.3 심지어는 POST 방식은 줄바꿈 개수까지도 정확해야 합니다. 결국 작성한 내용을 출력해서 확인하는 방법이 제일 좋습니다. 아래와 같이 했을경우 문제점이 무엇일까요 ? 내용을 확인.. 2020. 2. 4.
아두이노 reset -#4 이 방법은 약간 하드웨어적인 방법인것 같다. 아두이노의 리셋핀에 디지털 출력핀을 연결해서 리셋했다. 이전에도 이야기 했지만, 로우을 걸어 주면 리셋된다. 하이를 걸어주면 리셋되게 할 것 같은데, 어째던 만든사람 마음이니 그냥 넘어 가자. 그래서 그런지 시작하자 말자 high를 걸어 주어야 한다. 안 그러면 리셋이 무한 반복 될것이다. #define BAUD 115200 void setup() { digitalWrite(2, HIGH); delay(200); Serial.begin(BAUD); Serial.print("ARDUINO RESET TEST!!! \n"); pinMode(2, OUTPUT); delay(200); } void loop() { software_reset(); } void softw.. 2020. 1. 27.
아두이노 reset -#3 이 방법도 소프트웨어적인 방법이다. 그래도 시발점, 트리거를 위해서 2번핀에 풀다운 버턴을 하나 달았다. 소스코드에서 함수를 호출 한다. 딜레이를 준이유는 직접하면 알겠지만, 한번 누르면 여러번 리셋된다. 그것을 방지하기 위한것이고, 리셋하는 함수는 실제로 한줄이다. 큰 어려움은 없을것 같다. #define BAUD 115200 void (*reset_fun) (void) = 0; void setup() { Serial.begin(BAUD); pinMode(2, INPUT); Serial.print("ARDUINO RESET TEST!!! \n"); } void loop() { int v1= digitalRead(2); if(v1== HIGH) software_reset(); } void software.. 2020. 1. 27.