Three-channel thermometer with ds18b20

Once I had to create a three-channel thermometer with ds18b20. I can't help but share with those in need.... However, in fairness, it should be noted that the firmware was written overnight, so it's not very readable.... But the device works - that's the main thing :).

To create it, we will need:

microcontroller atmega8 - 1 piece.

ds18b20 sensors - 3 pieces (as planned, you can have fewer, the firmware will still work);

three-digit segment displays - 3 pieces.

connectors:

bh-16 ("female", "male") - 1 piece.

bh-10 ("female", "male") - 1 piece.

10uF capacitor - 1 piece.

10nF capacitor - 1 piece.

~470 Ohm resistor - 7 pieces.

4.7 Ohm resistor - 1 piece.

power connector - 1 piece.

That's about it. The circuit board has a place for a quartz crystal, but it is not used, everything is clocked by the internal generator at a frequency of 8 MHz.

term

In the archive, you will find the layout in Sprint Layout. The firmware is compiled there, as well as the source code for Code VisionAVR (just in case =)).

To connect the temperature sensors, the bh-10 connector is used (9 pins are used), and the bh-16 connector is used to connect the segment displays. In principle, you can solder everything directly, but I did it this way for convenience. The connection scheme is as follows:

bh-10:

ds18b20 1: 1 - VCC, 2 - GND, 3 - DQ

ds18b20 2: 4 - VCC, 5 - GND, 6 - DQ

ds18b20 3: 7 - VCC, 8 - GND, 9 - DQ

bh-16:

A - 4, B - 6, C - 8, D - 10, E - 12, F - 16, G - 14

Cathodes: signs (1 digit):

1 - 15, 2 - 13, 3 - 11

Digits:

1_2 (first display, 2 digits) - 9 (9 pin bh-16)

1_3 - 7, 2_2 - 5, 2_3 - 3, 3_2 - 1, 3_3 - 2

Overall, I ended up with a thermometer with a measuring range of (-55, 100) degrees.

When switched on, it gives a greeting or an error message (if no sensors are connected). The device is designed so that the indicators are located next to each other for the possibility of displaying messages. It also includes displaying high/low temperature messages. Dynamic display is used.

Source code: Term