만들기81 [아두이노] esp8266 이용시 핀모드와 시리얼모니터 오류 esp8266과 모터를 이용해서 움직이는 로봇을 만들었다. 하지만, 모터에 사용하는 pinMode를 지정하고 serial.being을 사용하여 코드를 짜면 시리얼모니터가 작동하거나 모터가 작동하지 않았다. pinMode 코드와 serial.begin 코드 위치에 따라 결과가 달라져서 무엇이 문제일까 찾아보다가 해결할 수 있었다. serial 통신은 esp8266와 RX, TX 선을 사용해서 시리얼 모니터에서 데이터를 보여준다. 하지만, esp8266에는 핀이 많이 없어서 모터에 사용하는 pinMode를 정의하는 도중 시리얼통신에 사용되는 TX 핀을 사용해버려서 시리얼모니터가 나오지 않았다. (GPIO1 을 모터에 사용하면 시리얼모니터에 데이터가 출력되지 않는다) 모터에 할당한 pinMode에서 GPIO1.. 2021. 6. 29. 아두이노 시리얼모니터와 핀모드 아두이노 모터를 컨트롤 하는 과정에서 어떤 경우에 시리얼 모니터에 값이 출력되지 않았다. 비슷한 코드에서 어떤 경우에는 되고 어떤 경우에는 안되서 이것저것 비교하면서 살펴보니 문제(?)를 찾을 수 있었다. 먼저, 시리얼 모니터가 작동하지 않았을 때는 pinMode가 Serial.begin()보다 나중에 정해져 있었다. Serial.begin이 pinMode보다 뒷쪽에 있을 경우에는 시리얼 모니터에서 응답하지 않았다. 작동할때 void setup(){ // 스텝모터 PWM 제어핀 출력 설정 pinMode(15,OUTPUT); /* PWM pin for Speed Control */ pinMode(3,OUTPUT); /* Motor control pin 1 */ pinMode(1,OUTPUT);/* Moto.. 2021. 6. 28. 아두이노 DC모터 움직이기( 건전지 전류용량 차이) AA 건전지의 전류용량 평균 2500 mAh 9V 사각 배터리는 500mAh 의 전류용량을 가진다. 그래서 큰전류를 필요로 하는 모터의 경우에는 AA배터리를 사용하는 것이 더 좋다. 일반 3V 소형 모터의 경우 무부하기준 350mA 정도가 필요하다. https://www.devicemart.co.kr/goods/view?no=12237284 3V 소형 DC모터 [MCU-001] 소형DC모터 / 전압 1.5V-4.5V / 전류 350mA / 모터속력 : 5400rpm www.devicemart.co.kr 2021. 6. 26. [밸런싱로봇] PID 제어 이해하기 (1) 밸런싱로봇을 만들면서 로봇이 넘어지지 않도록 모터를 컨트롤 하기위해 PID 제어가 사용되었다. PID 제어는 피드백제어의 일종으로 현재상태와 이전상태의 차이를 고려하여 시스템을 제어하는 방법이다. PID는 각각 비례(proportional), 적분(Integral) 그리고 미분(Derivative)제어를 나타낸다. 위 식은 PID제어를 수학적으로 나타낸 것으로 왼쪽부터 비례제어(P), 적분제어(I) 그리고 미분제어(D)를 나타낸다. 각 K 상수에 따라 시스템에 미치는 영향력을 조절할 수 있다. 비례제어(P) 비례제어는 목표값과 현재값의 차이를 계산하고 그 오차에 비례하여 시스템의 움직임을 조절하는 제어방법이다. 예를 들어, 바닥에 있는 드론을 50m 상공에 위치시킨다고 생각해보자 드론이 공중에 정지해 있.. 2021. 6. 25. esp 8266에서 DHT 온습도센서 2147483647 혹은 nan 오류 DHT 온습도 센서는 가장 간단하게 사용되는 아두이노 센서이다. 사용법도 간단해서 DHT 라이브러리를 다운받고 data 케이블을 디지털핀에 연결해서 데이터를 받으면 작동한다. 하지만, 데이터 출력값이 2147483647 로 나오면서 작동하지 않는 경우가 있다. 2147483647 은 int 정수 32비트로 나타낼수 있는 최댓값인데 DHT센서로부터 데이터가 정상적으로 수신되지 않을 때 시리얼모니터로 정수값을 출력하면 나타나는 오류이다. DHT 센서의 오류원인 1. 센서의 종류 DHT 센서는 DHT11과 DHT22가 있는데 아두이노 IDE에서 센서종류를 정의할때 다르게 작성하면 올바른 데이터가 수집되지 않는다. 2. 전원 DHT 센서는 3 - 5.5 혹은 6V 의 전압에서 작동하는데 전원이 부족하거나 연결이.. 2021. 6. 25. MPU 6050 센서값 보정하기 ( 90% 이해) MPU 6050을 SDA와 SCL을 통해서 ESP8266에 연결한 이후 데이터를 받아보면 가속도, 온도, 그리고 자이로값이 받아진다. 하지만 이 값들은 각 센서의 raw 데이터(가공되지 않은 데이너, (전압의 변화))이기 때문에 우리가 알고있는 중력가속도(g), 섭씨온도, 각속도로 변경시켜줘야한다. 값을 변경시키기 위해서는 센서의 데이터시트를 참고해야한다. https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Register-Map1.pdf 다음 문서의 29페이지부터 31페이지까지 가속도센서, 온도센서, 자이로센서에 대한 레지스터 주소와 설명이 나와있다. 각센서에서 주어지는 값을 변환하는 공식에 대해서 살펴보면 온도의 경우 340를 나누고 36... 2021. 6. 22. 이전 1 ··· 9 10 11 12 13 14 다음