/* * Authors : Kerem Yollu & Edwin Koch * Date : 07.03.2021 * * Description : * TODO : Write description or doxygene * */ #include #include #include #include #include #include "./management/command/commandManager.h" // hardwareinterfaces #include "./communication/i2c/i2c.hpp" // drivers #include "./drivers/bh1750/bh1750.h" #include "./drivers/pf8574/pf8574lcd.h" #include "./drivers/pca9685/pca9685.h" #include "./drivers/mcp4725/mcp4725.hpp" #include "./drivers/pca9555/pca9555.h" #include "./periferals/gpio/gpio.hpp" #include "./algorithms/bitgestion.h" CommandManager commander; I2C i2c; char char_array[TOTAL_CHAR_CAP]; int initPlatform() { lcd_init(&i2c); Gpio gpio; return 0; } void pca9555_test() { Pca9555 gpioExpander(&i2c); } void pca9685_test() { Pca9685 pwmGenarator(&i2c); pwmGenarator.setOnDutyPercent(0,50); for(int i = 3 ; i <= 255; i++) { pwmGenarator.setPwmRaw(i); strcpy(char_array, "Pwm Freq: "); lcd_display_string(1,0,char_array,0); std::string Msg = std::to_string(pwmGenarator.getPwmFreq()); strcpy(char_array, Msg.c_str()); lcd_display_string(1,10, char_array, 7); strcpy(char_array, "Hz"); lcd_display_string(1,18, char_array, 7); usleep(200000); } } void pca9685_motor() { Pca9685 pwmGenarator(&i2c); pwmGenarator.setPwmFreq(1500); strcpy(char_array, "Pwm Freq: "); lcd_display_string(1,0,char_array,0); std::string Msg = std::to_string(pwmGenarator.getPwmFreq()); strcpy(char_array, Msg.c_str()); lcd_display_string(1,10, char_array, 7); strcpy(char_array, "Hz"); lcd_display_string(1,18, char_array, 7); int i = 0; for(i = 0 ; i <= 100; i++) { pwmGenarator.setOnDutyPercent(0,i); pwmGenarator.setOnDutyPercent(2,i); usleep(20000); } for(i = 100 ; i >= 0; i--) { pwmGenarator.setOnDutyPercent(0,i); pwmGenarator.setOnDutyPercent(2,i); usleep(20000); } } void mcp4725_test() { uint8_t i = 0; std::cout << "mcp4725 dac test" << std::endl; MCP4725 dac(&i2c); dac == 0x0000; for(i = 20 ; i > 0; i--) { std::cout << static_cast(i) << std::endl; std::cout << "on" << std::endl; dac = 0xFFFF; usleep(2000000); std::cout << "off" << std::endl; dac = 0x0000; usleep(2000000); } /* MCP4725 dac(//MCP4725::pwrd_md::normal, MCP4725::i2c_addr::addr_0x6, std::bind(&foo, std::placeholders::_1)); //MCP4725::pwrd_md g = MCP4725::pwrd_md::normal; MCP4725 dac(MCP4725::i2c_addr::addr_0x6, std::bind(&I2C::writeBuffer, &i2c, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)); */ } void dac_test_1() { uint16_t value = 0; MCP4725 dac(&i2c); std::cout << "set dac value: "; std::cin >> value; dac = value; } void dummy() { } void bh1750_test() { Bh1750 lightSens(&i2c); while(1) { // std::cout << "value "<< lightSens.continious(BH1750_CONTINUOUS_HIGH_RES_MODE_1,1) << " Lux" <