Analog Ephemeris.

by leonmartinville in Circuits > Arduino

2785 Views, 35 Favorites, 0 Comments

Analog Ephemeris.

20230112_154530.jpg
Ephémeride analogique test

the objective of this assembly is to display in a small frame and in an analog way the data of the ephemeris of the day according to a place of residence previously entered.

follow this link short vidéo.

Preliminary note:

I distribute this project in a spirit of sharing, the realization of some of my projects would be impossible without the support of the internet and its many contributors, their benevolence and their disinterestedness. It's just an elevator pitch.

Making a publication requires work, I may have forgotten some points, I apologize in advance.

I think this realization is a time-consuming DIY, the assembly is not easy and requires a few tools, I use JST connectors for example. This project requires 3D printing, PCB manufacturing, component soldering, wiring, fitting brass parts, painting, etc.




Analog ephemeris.


Here is a project carried out in 2022 on the basis of an arduino mega 2560, a DS3231 type RTC clock, a 4X20 character LCD display in IC2 and 5 stepper motors.

the objective of this assembly is to display in a small frame and in an analog way the data of the ephemeris of the day according to a place of residence previously entered.

The age of the moon or its phase or its percentage of illumination, these designations are grouped together graphically.

time of sunrise, time of culmination and sunset. A Cartesian representation of the day/night ratio throughout the year.

The moon is lit by LEDs whose lighting is set to the sunset/sunrise time.


I intentionally limited the localization of seizures to metropolitan France, indeed the difficulty of this type of display is to preserve the readability of the information.

In absolute terms, in extreme latitudes and depending on the time of year, the sun does not set or rise. Therefore, it is difficult to graduate a legible dial of low amplitude.

In the same way, it would be necessary to reverse the direction of rotation of the moon as well as the alternation day / night in the southern hemisphere.

But nothing prevents you from modifying the program to extend the geographical coverage, without difficulty if you stay in the same latitude band. In the same way, it is possible by extending the time range of the dials to increase the display latitude.

In order to minimize the play in the gears, I intentionally reversed the graduation of the moon dial, the rotation of the moon is correct for the northern hemisphere, but the phase indications are normally anti-clockwise.


For the moment, the assembly processes summer/winter time with an external slider. The assembly time must be set to winter time (UT+1).


I used for the astronomical calculations, the libraries and some of the code from JR Remington for the lunar calculations and the code from "Bricoleau" for the solar calculations. I would like to thank them very much for putting their work online. It seems to me that they are based on the work of Jean de Meeus.

The graphic part was developed under Inkscape, the mechanical part under Freecad, the electronics under kicad EDA.


ecran.png

-The presentation framework:

The dimensions are that of a frame available in major DIY stores.


-Graphic part:

Made in Inkscape, as attachments, the .png facade made in thick paper. The inskape .isk file is attached for possible modifications. An stl file offers a tool for cutting the facade.



20221121_124632.jpg
20221122_165314.jpg
illustrationraccordement.png

-Electronics:


the artwork presents options that I did not use (supernumerary BP). In order to control the 28 BYJ-48 motors I could have limited the number of ULN2003 drivers, but the tests I conducted led me to use one ULN2003 driver per motor. Problem of instability during the tests.

Attached is the double-sided artwork.

For the RTC3231 clock, remember to remove the resistor in the illustration if you are not using a LIR2032 type battery.

For space reasons, the 7805 regulator is welded on the opposite side.

On all assemblies of this type, it is useful to add in the supply line an ipsotherm wedged at 40° on the radiator of the 7805 regulator for safety reasons.


20221127_114749.jpg
20221127_114756.jpg
20221128_185747.jpg
20221128_185827.jpg
20230105_180250.jpg

-Mechanical :

all the STL files as well as an assembly under freecad, allows you to visualize the assembly of the various elements.

Some elements are manufactured manually, the supply of these parts is however not common (brass tube and rod). They can be found with scale model suppliers, for example.

I use ball bearings, but by modifying the 3D printing files it is possible to remove them to make rotations plastic on plastic.

For the internal lighting of the moon, the LEDs are oriented towards the black part of the moon which has been previously painted white in order to diffuse the light. The 2 half spheres were assembled by gluing.




-Closing the cabinet:

I did not represent the rear closure of the box. It can be done in many ways.

You have to make a cutout for the display, the RTC module and the push buttons, but can these sets be removable on a separate plate?

here are the all the files

https://drive.google.com/drive/folders/1lFKdiV5p1kLjDtHCUgW9g7yEYAN9f9Vv?usp=sharing

-Programming:

You will notice that this is not my forte...

The program is broken down into a simple function call.

Enter date, time, place in latitude longitude (this data is easily found under Google map)

/!\ attention, the longitude "WEST" is entered in positive and the longitude "EAST" is entered in negative.

Note on 28BYJ-48 PtoP motor pinout

(be careful, the wiring of the motors is sometimes reversed, the pinout must be adapted to the actual wiring of the motor used. Carry out tests from one motor to another)

ex: Stepper word_lever= Stepper(stepssteps,44,40,42,38); the order of pinout 40,42 on this motor is reversed


the limit switches are on the following inputs:


int FdC_lev = 39; //limit switch lifted

int FdC_mid = 41; // noon limit switch

int FdC_cou = 43; //limit switch lying down

int FdC_dur = 45; //limit switch duration

int FdC_lun = 47; //moon limit switch

int FdC_hiv = 49; // switch summer time winter time



the "moon origin" limit switch is of the (magnetic ILS) type with a special origin treatment.


The display is updated in 2 stages: Every day for the moon and sun functions, only a few days a month for the day length function.


It is necessary to think of turning off the outputs of the PtoP motors in the programming, this is the role of the following lines. If this execution is not addressed, the motors may remain energized and they heat up.

Ex :

digitalWrite(38,LOW);digitalWrite(40,LOW);digitalWrite(42,LOW);digitalWrite(44,LOW);



there are two versions of the program. A version limited to France and a version without limits. The indications will be false, for the Southern Hemisphere and for latitude values ​​greater than 55° North


With the sketch: "testforinstructable.ino", you can test at least the output values of the calculation algorithms.

by modifying the values of line 317

 line 317 >>>> testerEphemeride(1, 11, 2014, 30, -2, 17, 40, 48, 51, 28);


 //testerEphemeride(day,month,year,number of days, long°, long min, long sec, Lat°, lat min, lat sec);

the entry is annotated.

Enter the day, the month, the year (on 2 digits) and the number of days that the month has such as January 31, February 28 etc.

First enter the longitude with the sign - if the longitude is "EAST"

(EAST of the Greenwich meridian) degree, minute, second.

Then enter the latitude, degree, minute, second.

you will be able to read the output on the serial port of the arduino interface set at 9600 baud


A link to the arduino forum and the work of "Mr Bricoleau"

https://forum.arduino.cc/t/calcul-ephemeride-precis-lever-et-coucher-de-soleil/266532

Project cost :

I used an Arduino clone to keep the cost down. The circuits were made by JLCPCB.

Ladle the cost of realization amounts to around 200 euros.


Thank’s :

J.Remington pour sa methode cos phase de lune ultra légère

https://forum.arduino.cc/t/simple-lunar-clock/421406/30


Petre Rodan <2b4eda@subdimension.ro>

https://github.comarduino minuterie longue/rodan/ds3231