Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ардуино вопрос по коду

матвей казец Ученик (69), на голосовании 5 месяцев назад
Я хотел сделать графический калькулятор и становится вопрос, как писать код, посоветуйте библиотеки и хотя бы +- алгоритм на несколько предложений как бы это сделать? Просто у меня идей мало, а в интернете нет похожих кодов, все пишут только обычные калькуляторы. Так же я вывожу на экран информацию о графике, поэтому вопрос, как ещё интерфейс прогать для того, чтобы выводить, какие библиотеки или модули использовать?
Голосование за лучший ответ
Татьяна Просветленный (36384) 6 месяцев назад
 #include     // Core graphics library 
#include // Hardware-specific library for ILI9341
#include // For touch screen functionality

#define TFT_CS 10
#define TFT_RST 9
#define TFT_DC 8
#define STMPE_CS 6

// The TFT display
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);

// Touch screen
#define TS_MINX 150
#define TS_MINY 120
#define TS_MAXX 920
#define TS_MAXY 940
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);

void setup() {
Serial.begin(9600);
tft.begin();
tft.setRotation(3);
tft.fillScreen(ILI9341_BLACK);

// Draw basic interface
drawInterface();
}

void loop() {
TSPoint p = ts.getPoint();
if (p.z > ts.pressureThreshhold) {
// Map touch screen coordinates to display coordinates
int x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width());
int y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height());

// Handle touch events, e.g., check if a button was pressed
handleTouch(x, y);
}
}

void drawInterface() {
tft.fillScreen(ILI9341_BLACK);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.setCursor(10, 10);
tft.println("Graphing Calculator");

// Draw buttons, text fields, etc.
}

void handleTouch(int x, int y) {
// Handle touch screen input
}
Этот код демонстрирует базовую инициализацию и отрисовку интерфейса. Вы можете расширить его, добавив кнопки, поля ввода и обработку математических выражений. Для рисования графиков используйте функции drawLine, drawPixel, drawRect и другие из библиотеки GFX.
Для расчета и построения графиков вам потребуется написать функцию, которая будет принимать математическое выражение, рассчитывать значения и рисовать точки на экране.
Код рисования простого графика:

 void drawGraph() { 
tft.drawLine(0, tft.height() / 2, tft.width(), tft.height() / 2, ILI9341_WHITE); // x-axis
tft.drawLine(tft.width() / 2, 0, tft.width() / 2, tft.height(), ILI9341_WHITE); // y-axis

for (int x = 0; x < tft.width(); x++) {
int y = sin(x * 0.1) * 50 + tft.height() / 2;
tft.drawPixel(x, y, ILI9341_RED);
}
}
Celtic HammerМудрец (16455) 6 месяцев назад
Похожие вопросы