Hello everyone
I'm having an issue with a 7-segment display connected via I2c to an Arduino Nano.
The display does not work even with example code, and if I run an I2C scanner code it shows the display having all the possible addresses.
What do you think could cause this issue?
Please let me know.
Have a nice day.
What example code?
What 7-segment display are you using.
What project are you trying to do?
https://learn.sparkfun.com/tutorials/using-the-serial-7-segment-display/all
I'm using the I2C scanner from the Wire library.
The display is a DFRobot Gravity Display ( https://www.robotshop.com/eu/en/dfrobot-gravity-4-digital-led-segment-display-module-red.html)
I've used the code from the library made by DFRobot for this display.
If you search "DFrobot display" you should find it.
Right now I just wanted to test if the display worked, its implementation in my project is something I'll do when it works.
@valerio
Got an "Oops, sorry. That page can't be found." For the link you gave so I can't see the project you are doing. Maybe the forum messed with the link? Is this it? Or maybe it is the brackets. Not a project I see just the display module?
https://www.robotshop.com/eu/en/dfrobot-gravity-4-digital-led-segment-display-module-red.htmll
Found another link if it is the same.
https://wiki.dfrobot.com/4-Digital%20LED%20Segment%20Display%20Module%20%20SKU:%20DFR0645-G_DFR0645-R
Don't know how it compares with display which I can get from Jaycar.
https://www.jaycar.com.au/8-digit-7-segment-display-module/p/XC3714
The other link you sent me is correct (the one on the DFrobot wiki).
Do you know what could cause the address issue?
@valerio Remove the trailing ) from the URL
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, 360, fairly knowledge in PC plus numerous MPU's & MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.
@valerio It's still there, here is the correct one (TIP hover over yours, and look down at the status bar to se the trailing ). Also, it is always good practice to try it and if a problem immediately edit your post.
https://www.robotshop.com/eu/en/dfrobot-gravity-4-digital-led-segment-display-module-red.html
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, 360, fairly knowledge in PC plus numerous MPU's & MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.
@valerio Just a hunch, but first check your I2C scanner with another known working I2C device to see if you get the results expected. If it does work then look carefully at the device in question to see if there are jumpers (not likely) or solder pads (likely) It should be obvious what to do but if not check the seller/manufacturer web page for instructions. (it will likely involve desoldering and resoldering zero ohm resistors otherwise known as jumpers)
You will likely need lit high magnification goggles and either a desolder air gun or a soldering iron and tiny tweezers.
I hope it's just your scanner sketch setup is wrong because those jumpers are a bear to mess with.
I looked at the web site you posted and while I can see some suspect jumpers, the picture is not good enough to tell. Many of these type of devices have the I2C address printed on the board, so look and see if that is the case.
Good luck.
First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, 360, fairly knowledge in PC plus numerous MPU's & MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
My personal scorecard is now 1 PC hardware fix (circa 1982), 1 open source fix (at age 82), and 2 zero day bugs in a major OS.
@valerio
FYI @zander
Do you know what could cause the address issue?
Not yet. I don't have the module to play with.
What code are you using that shows an address issue?
The default address seems to be 0x48 which you might need to change only if there is conflict with other modules. So if you use this address does it work?
This address can be changed to 0xE2, 0xE4, 0xE6 with different combinations of 2 welding points that in the back of the display.
/*! * @file ledPrint.ino * @brief Display experiment of the digital tube * @n Experiment phenomenon: The digital tube displays "HALO",and in one second, displays "H.A.L.O.", then show value of the variable val after one second * @copyright Copyright (c) 2010 DFRobot Co.Ltd ( http://www.dfrobot.com ) * @license The MIT License (MIT) * @author [Actor](wenzheng.wang@dfrobot.com),[TangJie](jie.tang@dfrobot.com) * @version V1.0.1 * @data 2022-03-21 * @url https://github.com/DFRobot/DFRobot_LedDisplayModule */ # include "DFRobot_LedDisplayModule.h" /** * DFRobot_LedDisplayModule Constructor * Parameter &wire Wire * In default, the IIC address of 8 bits digital tube is 0xE0 * The IIC address of 8 bits digital tube can be changed by combining A1 and A0 * 1 1 1 0 | 0 A1 A0 0 * 1 1 1 0 | 0 0 0 0 0xE0 * 1 1 1 0 | 0 0 1 0 0xE2 * 1 1 1 0 | 0 1 0 0 0xE4 * 0 0 1 0 | 0 1 1 0 0xE6 */ //DFRobot_LedDisplayModule LED(&Wire, 0xE0); /** * DFRobot_LedDisplayModule Constructor * In default, the IIC address of 4 bits digital tube is 0x48 */ DFRobot_LedDisplayModule LED(&Wire, 0x48); void setup() { Serial.begin(115200); /*Wait for the chip to be initialized completely, and then exit*/ while(LED.begin(LED.e4Bit) != 0) { Serial.println("Failed to initialize the chip , please confirm the chip connection!"); delay(1000); } /** * Set the display area to 1, 2, 3, 4 * It can show 4 bits, the region of each parameter is 1~4 * Please resend the display value if the display area is changed */ LED.setDisplayArea(1,2,3,4); } void loop() { /** * Display "HALO" * At present, it only supports showing the numbers 0 to 9, capital letters A, B, C, D, E, F, H, L, O, P, U and dash-, * and you can also bring decimal points, such as "0." "9." "A." "-." */ LED.print("H","A","L","O"); delay(1000); LED.print("H.","A.","L.","O."); delay(1000); /** * Show a viriable value * The viriable could be both integer and decimal * Here it can be compatible with the sensor return value, such as temperature, humdity and so on */ double val = 13.25; LED.print(val); delay(1000); }
https://github.com/DFRobot/DFRobot_LedDisplayModule
This is a 4bits / 8bits digital tube. It communicates with the host via IIC to show numbers from 0 to 9, capital letters A, B, C, D, E, F, H, L, O, P, U and dash-.
The IIC address of 4 bits digital tube in default is 0x48.
The IIC address of 8 bits digital tube in default is 0xE0. This address can be changed to 0xE2, 0xE4, 0xE6 with different combinations of 2 welding points that in the back of the display.