The TM1637 is a commonly used display driver chip designed to control 7-segment LED displays. It's often used to interface with digital clocks, temperature displays, and other numeric output devices. The chip handles the multiplexing of the display, making it easier to control and display numbers or characters with minimal pin usage on microcontrollers or embedded systems. It communicates via a simple 2-wire interface, making it quite popular among hobbyists and in various electronic projects due to its ease of use and versatility.
To display text on a TM1637 display using an ESP32 board and MicroPython, you'd need to perform several steps:
1. MicroPython Firmware Installation:
Flash MicroPython firmware onto your ESP32 board. You can use tools like esptool to accomplish this.
2. Library Installation:
Obtain the TM1637 MicroPython library files (e.g., tm1637.py) compatible with MicroPython.
3. Hardware Connection:
Ensure proper wiring between the TM1637 display and the ESP32 board (clock, data pins, etc.).
4. File Transfer:
Use tools like Thonny and UpyCraft or the built-in file editor on a MicroPython-compatible board to transfer the tm1637.py library file and your script.
5. Writing MicroPython Code:
Write the MicroPython code to control the TM1637 display.
To use the TM1637 display with ESP32 card, you'll need the following components:
ESP32 Board:
The ESP32 is a powerful microcontroller widely used in various embedded applications, IoT (Internet of Things) projects, and prototyping due to its extensive features and capabilities.
TM1637 Display
This display is used for displaying numbers, symbols and letters.
Jumper Wires:
To make the physical connections between the components.
Connect the TM1637 Display to ESP32 card as follows:
1- Connect the VCC pin of the TM1637 display to 3.3V pin of ESP32
2- Connect the GND pin of the TM1637 display to GND pin of ESP32
3- Connect the CLK pin of the TM1637 display to GPIO 2 of ESP32
4- Connect the DIO pin of the TM1637 display to GPIO 4 of ESP32
To program an ESP32 board using MicroPython to display text on a TM1637 display, you'll need to perform the following steps:
1- MicroPython Firmware: Ensure that your ESP32 board is flashed with MicroPython firmware. You can use tools like esptool to flash the firmware onto the board.
2- TM1637 MicroPython Library: Obtain the MicroPython library for the TM1637 display. This library should include necessary methods to control the display.
Use tools like Thonny and UpyCraft or the built-in file editor on a MicroPython-compatible board to transfer the tm1637.py library file and your script.
Use a code structure similar to the following example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
import tm1637 from machine import Pin tm = tm1637.TM1637(clk=Pin(2), dio=Pin(4)) # all LEDS on "88:88" tm.write([127, 255, 127, 127]) tm.write(bytearray([127, 255, 127, 127])) tm.write(b'\x7F\xFF\x7F\x7F') tm.show('8888', True) tm.numbers(88, 88, True) # all LEDS off tm.write([0, 0, 0, 0]) tm.show(' ') # write to the 2nd and 3rd segments only tm.write([119, 124], 1) # _Ab_ tm.write([124], 2) # __b_ tm.write([119], 1) # _A__ # display "0123" tm.write([63, 6, 91, 79]) tm.write(bytearray([63, 6, 91, 79])) tm.write(b'\x3F\x06\x5B\x4F') tm.show('1234') tm.number(1234) tm.numbers(12, 34, False) # display "4567" tm.write([102, 109, 125, 7]) tm.write([102], 0) # 4___ tm.write([109], 1) # _5__ tm.write([125], 2) # __6_ tm.write([7], 3) # ___7 # set middle two segments to "12", ie "4127" tm.write([6, 91], 1) # _12_ # set last segment to "9", ie "4129" tm.write([111], 3) # ___9 # show "AbCd" tm.write([119, 124, 57, 94]) tm.show('abcd') # show "COOL" tm.write([0b00111001, 0b00111111, 0b00111111, 0b00111000]) tm.write([0x39, 0x3F, 0x3F, 0x38]) tm.write(b'\x39\x3F\x3F\x38') tm.write([57, 63, 63, 56]) tm.show('cool') tm.show('COOL') # display "dEAd", "bEEF" tm.hex(0xdead) tm.hex(0xbeef) tm.show('dead') tm.show('Beef') # show "12:59" tm.numbers(12, 59) tm.show('1259', True) # show "-123" tm.number(-123) tm.show('-123') # Show Help tm.show('Help') tm.write(tm.encode_string('Help')) tm.write([tm.encode_char('H'), tm.encode_char('e'), tm.encode_char('l'), tm.encode_char('p')]) # Scroll Hello World from right to left tm.scroll('Hello World') # 4 fps tm.scroll('Hello World', 1000) # 1 fps # Scroll all available characters tm.scroll(list(tm1637._SEGMENTS)) # all LEDs dim tm.brightness(0) # all LEDs bright tm.brightness(7) # converts a digit 0-0x0f to a byte representing a single segment # use write() to render the byte on a single segment tm.encode_digit(0) # 63 tm.encode_digit(8) # 127 tm.encode_digit(0x0f) # 113 # 15 or 0x0f generates a segment that can output a F character tm.encode_digit(15) # 113 tm.encode_digit(0x0f) # 113 # used to convert a 1-4 length string to an array of segments tm.encode_string(' 1') # bytearray(b'\x00\x00\x00\x06') tm.encode_string('2 ') # bytearray(b'[\x00\x00\x00') tm.encode_string('1234') # bytearray(b'\x06[Of') tm.encode_string('-12-') # bytearray(b'@\x06[@') tm.encode_string('cafe') # bytearray(b'9wqy') tm.encode_string('CAFE') # bytearray(b'9wqy') tm.encode_string('a') # bytearray(b'w\x00\x00\x00') tm.encode_string('ab') # bytearray(b'w|\x00\x00') # used to convert a single character to a segment byte tm.encode_char('1') # 6 tm.encode_char('9') # 111 tm.encode_char('-') # 64 tm.encode_char('a') # 119 tm.encode_char('F') # 113 # display "dEAd", "bEEF", "CAFE" and "bAbE" tm.hex(0xdead) tm.hex(0xbeef) tm.hex(0xcafe) tm.hex(0xbabe) # show "00FF" (hex right aligned) tm.hex(0xff) # show " 1" (numbers right aligned) tm.number(1) # show " 12" tm.number(12) # show " 123" tm.number(123) # show "9999" capped at 9999 tm.number(20000) # show " -1" tm.number(-1) # show " -12" tm.number(-12) # show "-123" tm.number(-123) # show "-999" capped at -999 tm.number(-1234) # show "01:02" tm.numbers(1, 2) # show "0102" tm.numbers(1, 2, False) # show "-5:11" tm.numbers(-5, 11) # show "12:59" tm.numbers(12, 59) # show temperature '24*C' tm.temperature(24) tm.show('24*C') # show temperature works for range -9 to +99 tm.temperature(-10) # LO*C tm.temperature(-9) # -9*C tm.temperature(5) # 5*C tm.temperature(99) # 99*C tm.temperature(100) # HI*C |
Upload the code to ESP32 board.
Following these steps should enable you to display text on a TM1637 display using an ESP32 board programmed with MicroPython.
Educational robotics refers to the use of robots and robotics technology to promote learning in educational settings. It involves the integration of technology, engineering, and computer science into the classroom, allowing students to engage in hands-on, project-based learning experiences.
In this context, our website represents an excellent resource for parents, teachers and children who wish to discover robotics.
Zaouiet Kontech-Jemmel-Monastir-Tunisia
+216 92 886 231
medaliprof@gmail.com
Robotic site created by MedAli-Teacher info