#include <Adafruit_ILI9341.h>
#include <Adafruit_GFX.h>
#include <SPI.h>
#include <math.h>
#define TFT_RST 8
#define TFT_DC 9
#define TFT_CS 10
#define SUN_RADIUS 30
#define EARTH_RADIUS 10
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
void clearScreen() {
tft.fillScreen(ILI9341_BLACK);
}
void drawSun(int x, int y, int radius) {
tft.fillCircle(x, y, radius, ILI9341_RED); // Filled circle represents the Sun
}
void drawEarth(int sunX, int sunY, double angle) {
int earthX = sunX + int(cos(angle) * (SUN_RADIUS + 30)); // Adjust the distance from the Sun
int earthY = sunY + int(sin(angle) * (SUN_RADIUS + 30));
tft.fillCircle(earthX, earthY, EARTH_RADIUS, ILI9341_BLUE); // Filled circle represents the Earth
}
void solarSystemAnimation(int numFrames, int frameDelay) {
int sunX = tft.width() / 2;
int sunY = tft.height() / 2;
for (int i = 0; i < numFrames; i++) {
double angle = i * 1.1; // Adjust the rotation speed by changing the multiplier
clearScreen();
drawSun(sunX, sunY, SUN_RADIUS);
drawEarth(sunX, sunY, angle);
delay(frameDelay);
}
}
void setup() {
tft.begin();
tft.setRotation(3);
tft.fillScreen(ILI9341_BLACK);
clearScreen();
solarSystemAnimation(360, 1000); // Earth revolving around the Sun for a full orbit with a delay of 20 milliseconds
}
void loop() {
// Your main code (if any) goes here
}
code by arvind.
https://wokwi.com/projects/409549322819657729 अरविन्द पाटील 21/11/23 .