본문 바로가기

ESPRESSIF

(90)
[ESP32 xBee EVM] Arduino I2C 테스트 - OLED SSD1306 에 IP 출력하기 [xBee EXP EVM] 보드를 이용하여 테스트 하였다. ESP32의 WiFi 연결시 할당 받은 IP Address를 OLED (SSD1306) 에 표시 하기 #include #include #include #include #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) Adafruit_S..
[ESP32 xBee EVM] Arduino I2C 테스트 - PCF8574, 거리 측정 센서 VL53L01 [ESP32 xBee EVM] 보드의 I2C는 IO22(SCL), IO22(SDA) 에 할당되어 있다. ESP32 I2C SDA (default : GPIO 21) SCL (default : GPIO 22) I2C GPIO 확장 PCF8574 SSM 모듈 보드와 거리 측정 센서 VL53L01 모듈을 이용하여 거리값에 따라 LED 거리정보를 측정해 보자 #include #include #define PIN_LED1 13 #define PCF_8574_ADDR 0x20 void write8(uint8_t Address, uint8_t Value) { Wire.beginTransmission(Address); Wire.write(Value); Wire.endTransmission(); } uint8_t rea..
ESP32 Arduino 성능측정 ESP32를 이용하여 Arduino에서 CPU 성능을 테스트 해 보았다. 역시 많이 느리군... 우선 Arduino 에서 제공하는 GPIO 제어 함수를 이용해 보면 112ns(3.2Mhz) 로 출력 된다. #define PIN_OUT 5 void setup() { pinMode(PIN_OUT, OUTPUT); } // the loop function runs over and over again forever void loop() { //delay(1); digitalWrite(PIN_OUT, 1); digitalWrite(PIN_OUT, 0); } ESP32의 GPIO 제어 레지스터에 직접 출력하면 62ns 정도로 출력된다. ESP8266이용한 Arduino 성능 측정 실험의 75ns 와 비교 하면 조금..
ESP32 Xbee EVM - ESP32 Arduino 개발 환경 설정 환경설정에서 ESP32를 위한 JSON 파일을 등록 한다. https://dl.espressif.com/dl/package_esp32_index.json 보드 매니저에서 ESP32 패키지를 설치 한다. ESP32 모듈을 설정하고 컴파일 해 보면 잘 동작 하는것을 확인 할 수 있다.
ESP32 xBee EVM 보드 제작 ESP32 모듈을 무선 기능을 가진 [xBee EVM] 형태의 핀맵으로 제작 했다. ESP8266 XBee 모듈보다 모든면에서 우수하기 때문에 다양한 응용분야에 적용할 수 있을것 같다. 표준화 핀맵을 사용하여 ESP2866에서 사용했던 ESP8266, ESP32용 다양한 확장 테스트 보드를 사용할 수 있다. ESP32 모듈 회로도
#ESP8266 I2C SSD1306 OLED 테스트 ESP ArduinoEXP 보드에는 I2C 인터페이스의 SSD1306 OLED 모듈을 연결하여 디스플레이 할 수 있다. SSD1306 OLED를 제어 하기위한 라이브러리로 Adafruit_SSD1306, Adafruit_GFX 를 많이 사용한다. 용량은 좀 크지만 간한히 사용할 수 있으니 일단 설치 해 보자 설치 후 예제를 적당히 수정하면 간단히 OLED에 텍스트를 표시 할 수 있다. #include #include #include #include #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD130..
#ESPArduinoEXP - ESP8266 SPI 테스트 (40Mhz) ESP8266의 SPI는 IO12(SO), IO13(SI), IO13(CLK) 에 HSPI으로 할당 되어 있다. 특징으로 ESP8266의 SPI 클럭속도는 80Mhz로 상당히 빠르다고 하니 한번 테스트 해 보았다. ESP8266 SPI 테스트 코드 #include void setup() { pinMode(15, OUTPUT); digitalWrite(15, 1); Serial.begin(115200); SPI.begin(); SPI.setFrequency(40000000); } int i = 0; void loop() { Serial.println(i); SPI.transfer(i++); delay(500); } 40Mhz로 설정하고 SPI.transfer() 함수를 호출 하면 SCLK 핀으로 출력되는 ..
ESP8266 I2C 테스트 - PCF8574 제어 ESP8266 데이터 시트를 보면 IO14(SCL), IO2(SDA) 로 설정되어 있다. SPI 와 겹치기 때문에 다른 핀으로 할당 할 필요가 있다. ESP8266 Arduino 핀 설정(pins_arduino.h)을 보면 디폴트로 IO5(SCL), IO4(SDA) 로 할당 되어 있다. 물론 소프트웨어 I2C라 변경 하능은 한데 디폴트를 사용하면 초기화 시 별도로 지정해 주지 않아도 된다. #define PIN_WIRE_SDA (4) #define PIN_WIRE_SCL (5) static const uint8_t SDA = PIN_WIRE_SDA; static const uint8_t SCL = PIN_WIRE_SCL; ESP8266 I2C 초기화 #include void setup() { Wire.b..