ESPboy_Sub1GHzInspector/ESPboyInit.cpp
2020-10-26 15:35:36 +03:00

71 lines
1.7 KiB
C++

/*
ESPboy_Init class
for www.ESPboy.com project by RomanS
https://hackaday.io/project/164830-espboy-games-iot-stem-for-education-fun
v1.0
*/
#include "ESPboyInit.h"
ESPboyInit::ESPboyInit(){};
void ESPboyInit::begin(char *appName) {
//Serial.begin(115200); //serial init
WiFi.mode(WIFI_OFF); // to safe battery power
//DAC init and backlit off
dac.begin(MCP4725address);
delay (100);
dac.setVoltage(0, false);
//mcp23017 init for buttons, LED LOCK and TFT Chip Select pins
mcp.begin(MCP23017address);
delay(100);
for (int i=0;i<8;i++){
mcp.pinMode(i, INPUT);
mcp.pullUp(i, HIGH);}
//sound init and test
pinMode(SOUNDPIN, OUTPUT);
playTone(200, 100);
delay(100);
playTone(100, 100);
delay(100);
noPlayTone();
//LCD TFT init
mcp.pinMode(CSTFTPIN, OUTPUT);
mcp.digitalWrite(CSTFTPIN, LOW);
tft.begin();
delay(100);
tft.setRotation(0);
tft.fillScreen(TFT_BLACK);
//draw ESPboylogo
tft.drawXBitmap(30, 24, ESPboyLogo, 68, 64, TFT_YELLOW);
tft.setTextSize(1);
tft.setTextColor(TFT_YELLOW);
tft.drawString (appName, (128-(strlen(appName)*6))/2, 102);
//LCD backlit fading on
for (uint16_t bcklt=300; bcklt<4095; bcklt+=30){
dac.setVoltage(bcklt, false);
delay(10);}
//clear TFT and backlit on high
dac.setVoltage(4095, true);
tft.fillScreen(TFT_BLACK);
//LED pin LOCK OFF
mcp.pinMode(LEDLOCK, OUTPUT);
mcp.digitalWrite(LEDLOCK, HIGH);
};
void ESPboyInit::playTone(uint16_t frq, uint16_t dur) { tone(SOUNDPIN, frq, dur); }
void ESPboyInit::playTone(uint16_t frq) { tone(SOUNDPIN, frq); }
void ESPboyInit::noPlayTone() { noTone(SOUNDPIN); }
uint8_t ESPboyInit::getKeys() { return (~mcp.readGPIOAB() & 255); }